⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java.puma

📁 这是一个Linux下的集成开发环境
💻 PUMA
📖 第 1 页 / 共 2 页
字号:
   to_types  (decl_list, cur_arg_types); cur_arg_types_ptr := cur_arg_types;   Traverse (decl_list);   Traverse (type);   Texception (throws);   Traverse (block);   Traverse (next);   .constructor (env := env, next := next: field_list, modifiers := modifiers, ident := ident, pos := pos, decl_list := decl_list, throws := throws, block := block) :-   cur_method_ptr := GetCStr (ident);   to_types  (decl_list, cur_arg_types); cur_arg_types_ptr := cur_arg_types;   Traverse (decl_list);   Texception (throws);   Traverse (block);   Traverse (next);   .var_decl (env := env, next := next: field_list, modifiers := modifiers, type := type, decl_list := decl_list) :-   cur_method_ptr := null; cur_arg_types_ptr := null;   Traverse (type);   Traverse (decl_list);   Traverse (next);   .static_initializer (env := env, next := next: field_list, statement_c := statement_c) :-   cur_method_ptr := null; cur_arg_types_ptr := null;   Traverse (statement_c);   Traverse (next);   .initializer (env := env, next := next: field_list, statement_c := statement_c) :-   cur_method_ptr := null; cur_arg_types_ptr := null;   Traverse (statement_c);   Traverse (next);   .parameter (env := env, next := next: decl_list, type := type, ident := ident, pos := pos, array := array) :-   Traverse (type);   Traverse (array);   Traverse (next);   .variable (next := next, expression := noexpression (...)) :-   Traverse (next);   .variable (env := env2 (env1 := e), next := next, ident := i, pos := pos, expression := expression) :-   put_cross_ref (PAF_REF_TO_MBR_VAR, PAF_MBR_FUNC_DEF, PAF_REF_SCOPE_GLOBAL,      cur_class_ptr, cur_method_ptr, cur_arg_types_ptr,      get_class_name_2 (e->env.object), GetCStr (i), null, current_file,      (int) pos.Line, PAF_REF_WRITE);   Traverse (expression);   Traverse (next);   .variable (next := next, ident := ident, pos := pos, expression := expression) :-   put_cross_ref (PAF_REF_TO_LOCAL_VAR, PAF_MBR_FUNC_DEF, PAF_REF_SCOPE_LOCAL,      cur_class_ptr, cur_method_ptr, cur_arg_types_ptr,      null, GetCStr (ident), null, current_file, (int) pos.Line, PAF_REF_WRITE);   Traverse (expression);   Traverse (next);   .compound_stmt (env := env, statement_list := statement_list) :-   Traverse (statement_list);   .expression_stmt (env := env, expression := expression: expression_c) :-   Traverse (expression);   .var_decl_stmt (env := env, type := type, decl_list := decl_list) :-   Traverse (type);   Traverse (decl_list);   .type_decl_stmt (env := env, type_decl := type_decl) :-   Traverse (type_decl);   .if_else_stmt (env := env, expression := expression: expression_c, then := then: statement_c, Else := Else: statement_c) :-   Traverse (expression);   Traverse (then);   Traverse (Else);   .if_stmt (env := env, expression := expression: expression_c, then := then: statement_c) :-   Traverse (expression);   Traverse (then);   .while_stmt (env := env, expression := expression: expression_c, statement := statement: statement_c) :-   Traverse (expression);   Traverse (statement);   .do_stmt (env := env, statement := statement: statement_c, expression := expression: expression_c) :-   Traverse (statement);   Traverse (expression);   .break_id_stmt (env := env, expression := expression: expression_c) :-   Traverse (expression);   .continue_id_stmt (env := env, expression := expression: expression_c) :-   Traverse (expression);   .return_expr_stmt (env := env, expression := expression: expression_c) :-   Traverse (expression);   .for_stmt (env := env, for_init := for_init: statement_list, expression := expression: expression_c, for_incr := for_incr: statement_list, statement := statement: statement_c) :-   Traverse (for_init);   Traverse (expression);   Traverse (for_incr);   Traverse (statement);   .throw_stmt (env := env, expression := expression: expression_c) :-   Traverse (expression);   .synchronized_stmt (env := env, expression := expression: expression_c, statement := statement: statement_c) :-   Traverse (expression);   Traverse (statement);   .labeled_stmt (env := env, ident := ident, pos := pos, statement := statement: statement_c) :-   Traverse (statement);   .try_stmt (env := env, statement := statement: statement_c, catch_list := catch_list, finally := finally: statement_c) :-   Traverse (statement);   Traverse (catch_list);   Traverse (finally);   .switch_stmt (env := env, expression := expression: expression_c, switch_list := switch_list) :-   Traverse (expression);   Traverse (switch_list);   .statement (env := env, next := next: statement_list, statement := statement: statement_c) :-   Traverse (statement);   Traverse (next);   .switch_ (next := next, expression_list := expression_list, statement_list := statement_list) :-   Traverse (expression_list);   Traverse (statement_list);   Traverse (next);   .catch (next := next, decl_list := parameter (type := type), statement := statement) :-   Texception (type);   Traverse (statement);   Traverse (next);   .named_type (env := env, qualified_symbol := qualified_symbol) :-   Tclass (qualified_symbol);   .array_type (env := env, type := type) :-   Traverse (type);   .expression (env := env, next := next: expression_list, expression := expression: expression_c) :-   Traverse (expression);   Traverse (next);   .q: qualification (qualified_symbol := qualified_symbol, ident := ident, pos := pos) :-   id_obj: objects; id_obj := Tidentify (q);   id_obj == nnoobject;   to_types (qualified_symbol, ref_class);   put_cross_ref (PAF_REF_TO_CLASS, PAF_MBR_FUNC_DEF, PAF_REF_SCOPE_GLOBAL,      cur_class_ptr, cur_method_ptr, cur_arg_types_ptr,      null, ref_class, null, current_file, (int) qualified_symbol::pos.Line, acc);   put_cross_ref (no_of_args >= 0 \? PAF_REF_TO_MBR_FUNC \: PAF_REF_TO_MBR_VAR,      PAF_MBR_FUNC_DEF, PAF_REF_SCOPE_GLOBAL,      cur_class_ptr, cur_method_ptr, cur_arg_types_ptr,      ref_class, GetCStr (ident), null, current_file, (int) pos.Line, acc);   .q: qualification (...) :-   Tqualification (q);   .i: ident (...) :-{  Tidentify (i); };   use_object (i);   .unary (pos := pos, env := env, expression := expression: expression_c, operator := operator) :-   acc_save: int;{   switch (operator) {   case post_decr	\:   case post_incr	\:   case pre_decr	\:   case pre_incr	\:      acc_save = acc; acc = PAF_REF_WRITE;      Traverse (expression);      acc = acc_save;      break;   default		\:      Traverse (expression);   }};   .binary (pos := pos, env := env, lop := lop: expression_c, rop := rop: expression_c, operator := operator) :-   Traverse (lop);   Traverse (rop);   .assign (pos := pos, env := env, lval := lval: expression_c, rval := rval: expression_c, operator := operator) :-   acc := PAF_REF_WRITE;   Traverse (lval);   acc := PAF_REF_READ;   Traverse (rval);   .aggregate (pos := pos, env := env, expression_list := expression_list) :-   Traverse (expression_list);   .call (pos := pos, env := env, expression := expression, expression_list := expression_list: expression_list (no_of_args := n)) :-   no_of_args := n;   Traverse (expression);   no_of_args := -1;   acc_save: int; acc_save := acc; acc := PAF_REF_PASS;   Traverse (expression_list);   acc := acc_save;   .select (pos := pos, env := env1, expression := this (...), ident := ident) :-   class: [type_decl, anonymous]; class := get_current_class (env1);   object: objects;   class != NIL && class->Kind == kclass;   object := IdentifyLocal (ident, class::block->field_list.env);   use_object (qualification (pos := pos, env := env1, object := object, qualified_symbol :=       ident (object := object (object := class, ident := class::ident),	 ident := class::ident), ident := ident));   .select (pos := pos, env := env1, expression := super (...), ident := ident) :-   class: [type_decl, anonymous]; class := get_current_class (env1);   object: objects;   class != NIL && class->Kind == kclass;   class->class.extends->Kind == knamed_type;   class->class.extends->named_type.qualified_symbol->qualified_symbol.object != nnoobject;   class := class->class.extends->named_type.qualified_symbol->qualified_symbol.object->object.object;   (Tree_IsType (class, ktype_decl));   object := IdentifyLocal (ident, class::block->field_list.env);   use_object (qualification (pos := pos, env := env1, object := object, qualified_symbol :=       ident (object := object (object := class, ident := class::ident),	 ident := class::ident), ident := ident));   .select (pos := pos, env := env, expression := expression: expression_c, ident := ident) :-   no_of_args_save: short; no_of_args_save := no_of_args; no_of_args := -1;   Traverse (expression);   no_of_args := no_of_args_save;   put_cross_ref (no_of_args >= 0 \? PAF_REF_TO_MBR_FUNC \: PAF_REF_TO_MBR_VAR,      PAF_MBR_FUNC_DEF, PAF_REF_SCOPE_GLOBAL,      cur_class_ptr, cur_method_ptr, cur_arg_types_ptr,      "?", GetCStr (ident), null, current_file, (int) pos.Line, acc);   .get_class_of_expr (pos := pos, env := env, expression := expression: expression_c) :-   no_of_args_save: short; no_of_args_save := no_of_args; no_of_args := -1;   Traverse (expression);   no_of_args := no_of_args_save;   .get_class (pos := pos, env := env, type := type) :-   Traverse (type);   .subscript (pos := pos, env := env, base := base: expression_c, index := index: expression_c) :-   Traverse (base);   acc_save: int; acc_save := acc; acc := PAF_REF_READ;   Traverse (index);   acc := acc_save;   .type_compare (pos := pos, env := env, expression := expression: expression_c, type := type) :-   Traverse (expression);   Traverse (type);   .type_cast (pos := pos, env := env, type := type, expression := expression: expression_c) :-   Traverse (type);   Traverse (expression);   .new (pos := pos, env := env, type := type, expression_list := expression_list, expression := expression: expression_c) :-   Traverse (type);   Traverse (expression_list);   Traverse (expression);   .anonymous (pos := pos, env := env, type := type, expression_list := expression_list, block := block: field_list) :-   Traverse (type);   Traverse (expression_list);   prev_class: tString; prev_class := cur_class_ptr;   cur_class_ptr := s_anonymous;   Traverse (block);   cur_class_ptr := prev_class;   .conditional (pos := pos, env := env, condition := condition: expression_c, true_expr := true_expr: expression_c, false_expr := false_expr: expression_c) :-   Traverse (condition);   Traverse (true_expr);   Traverse (false_expr);   .PROCEDURE Tqualification (qualified_symbol)q: qualification (qualified_symbol := qualified_symbol) :-   no_of_args_save: short; no_of_args_save := no_of_args; no_of_args := -1;   Tqualification (qualified_symbol);   no_of_args := no_of_args_save;   use_object (q);   .i: ident (...) :-   use_object (i);   .PROCEDURE Tclass ([expression_c, type_name_list])ident (env := env, ident := ident, pos := pos, object := object) :-   object := IdentifyWhole (ident, env);   put_cross_ref (PAF_REF_TO_CLASS, PAF_MBR_FUNC_DEF, PAF_REF_SCOPE_GLOBAL,      cur_class_ptr, cur_method_ptr, cur_arg_types_ptr,      null, GetCStr (ident), null, current_file, (int) pos.Line, PAF_REF_READ);   .q: qualification (pos := pos) :-   to_types (q, ref_sym);   put_cross_ref (PAF_REF_TO_CLASS, PAF_MBR_FUNC_DEF, PAF_REF_SCOPE_GLOBAL,      cur_class_ptr, cur_method_ptr, cur_arg_types_ptr,      null, ref_sym, null, current_file, (int) pos.Line, PAF_REF_READ);   .type_name (next := next, named_type := named_type (qualified_symbol := qualified_symbol)) :-   Tclass (qualified_symbol);   Tclass (next);   .type_name (next := next) :-   Tclass (next);   .PROCEDURE Texception ([type, expression_c, type_name_list])named_type (qualified_symbol := qualified_symbol) :-   Texception (qualified_symbol);   .array_type (type := type) :-   Texception (type);   .q: qualified_symbol (pos := pos) :-   to_types (q, ref_sym);   put_cross_ref (PAF_REF_TO_EXCEPTION, PAF_MBR_FUNC_DEF, PAF_REF_SCOPE_GLOBAL,      cur_class_ptr, cur_method_ptr, cur_arg_types_ptr,      null, ref_sym, null, current_file, (int) pos.Line, acc);   .type_name (next := next, named_type := named_type) :-   Texception (named_type);   Texception (next);   .FUNCTION Tidentify (qualified_symbol) objectsqualification (qualified_symbol := qualified_symbol, ident := ident, object := object) :-   no_of_args_save: short; no_of_args_save := no_of_args; no_of_args := -1;   id_obj: objects; id_obj := Tidentify (qualified_symbol);   no_of_args := no_of_args_save;{   if (qualified_symbol::object != nnoobject) {      tTree obj = qualified_symbol::object->\object.\object;      switch (obj->Kind) {      case kvariable	\:      case kparameter	\:	 if (obj->decl.\type->Kind != knamed_type) break;	 obj = obj->decl.\type->named_type.\qualified_symbol;	 if (obj->\qualified_symbol.\object == nnoobject) {	    if (obj->Kind != kident) break;	    obj->\ident.\object = IdentifyWhole (obj->\ident.\ident, obj->\ident.\env);	    if (obj->\ident.\object == nnoobject) break;	 }	 obj = obj->\qualified_symbol.\object->\object.\object;	 if (! Tree_IsType (obj, ktype_decl)) break;      case kclass	\:      case kinterface	\:	 if (no_of_args >= 0)	    object = IdentifyMethod (ident, obj->type_decl.block->field_list.\env, no_of_args);	 else	    object = IdentifyLocal (ident, obj->type_decl.block->field_list.\env);      }   }};   RETURN id_obj;   .ident (env := env, ident := ident, object := object) :-   no_of_args >= 0;   object := IdentifyMethod (ident, env, no_of_args);   RETURN object;   .ident (env := env, ident := ident, object := object) :-   object := IdentifyWhole (ident, env);   RETURN object;   ._ :-   RETURN nnoobject;   .

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -