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(); }
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; }