public void SaveContextAndUpFromAllFunctionDefs()
 {
     if (!convertion_data_and_alghoritms.statement_list_stack.Empty || SavedContext == null)
         SaveContextAndUpToNearestDefSect();
     SavedContext.func_stack = func_stack;
     func_stack = new common_function_node_stack();
 }
Example #2
0
 public void SaveContext(syntax_tree_visitor syntax_tree_visitor)
 {
     converted_type = syntax_tree_visitor.context.converted_type;
     syntax_tree_visitor.context.converted_type = null;
     statement_list_stack = syntax_tree_visitor.convertion_data_and_alghoritms.statement_list_stack;
     syntax_tree_visitor.convertion_data_and_alghoritms.statement_list_stack = new statement_list_stack();
     curr_fal = syntax_tree_visitor.context.get_field_access_level();
     current_var_defs = syntax_tree_visitor.context.var_defs;
     syntax_tree_visitor.context.var_defs = new List<var_definition_node>();
     block_stack = syntax_tree_visitor.context.block_stack;
     syntax_tree_visitor.context.block_stack = new Stack<code_block>();
     cycle_stack = syntax_tree_visitor.context.CyclesStack;
     syntax_tree_visitor.context.CyclesStack = new statement_node_stack();
     current_member_decls = syntax_tree_visitor.context.member_decls;
     syntax_tree_visitor.context.member_decls = new Hashtable();
     function_node_stack = syntax_tree_visitor.context.func_stack;
     syntax_tree_visitor.context.func_stack = new common_function_node_stack();
     current_last_created_function = syntax_tree_visitor.context.last_created_function;
     SemanticRulesThrowErrorWithoutSave = SemanticRules.ThrowErrorWithoutSave;
     SemanticRules.ThrowErrorWithoutSave = true;
 }