public override void visit(declarations _declarations) { foreach (declaration decl in _declarations.defs) { decl.visit(this); } }
public override void visit(declarations _subprogram_definitions) { //for(int i=0;i<_subprogram_definitions.defs.Count;i++) //{ // subprogram_definition sd=_subprogram_definitions.defs[i]; // prepare_node(sd,"defs["+i.ToString()+"]"); //} prepare_collection(_subprogram_definitions.defs, "defs"); }
// From !LamdaHelper public static declarations CreateDeclarations(params declaration[] decls) { declarations res = new declarations(); foreach (declaration x in decls) { res.Add(x); } return(res); }
/*public override void visit(interface_node node) * { * var globals = node.interface_definitions.defs * .Select(def => def as variable_definitions) * .Where(varDefsObj => (object)varDefsObj != null) * .SelectMany(varDefs => varDefs.var_definitions) * .SelectMany(v => v.vars.idents); * * CollectedGlobals.UnionWith(globals); * }*/ public override void visit(declarations node) { var globals = node.defs .Select(def => def as variable_definitions) .Where(varDefsObj => (object)varDefsObj != null) .SelectMany(varDefs => varDefs.var_definitions) .SelectMany(v => v.vars.idents); CollectedGlobals.UnionWith(globals); }
public override void visit(declarations decls) { // Для обхода в правильном порядке сверху вниз var vd_s = decls.defs.OfType <variable_definitions>().ToArray(); for (int i = 0; i < vd_s.Count(); ++i) { ProcessNode(vd_s[i]); } }
public virtual void visit(declarations _declarations) { DefaultVisit(_declarations); }
public override void visit(declarations _declarations) { DefaultVisit(_declarations); pre_do_visit(_declarations); for (int i = 0; i < defs.Count; i++) visit(declarations.defs[i]); post_do_visit(_declarations); }
public virtual void post_do_visit(declarations _declarations) { }
public static SyntaxTree.program_module CreateProgramModule(statement_list statements, declarations defs) { return(InternalCreateProgramModule(statements, defs)); }
public override void visit(declarations _declarations) { visit_collection(_declarations.defs); }
// If we're at the specified context location, but we're trying to find the most // relevant part for C, then we want to pick the part in C.cs not the one in // C.NestedType.cs that contains the context location. This is because this // container isn't really used by the user to place code, but is instead just // used to separate out the nested type. It would be nice to detect this and do the // right thing. declaration = await SelectFirstOrDefaultAsync( declarations, token.GetRequiredParent().AncestorsAndSelf().Contains,
public virtual void visit(declarations _declarations) { }
public override void visit(declarations _subprogram_definitions) { get_count(_subprogram_definitions.defs); }
// If we're at the specified context location, but we're trying to find the most // relevant part for C, then we want to pick the part in C.cs not the one in // C.NestedType.cs that contains the context location. This is because this // container isn't really used by the user to place code, but is instead just // used to separate out the nested type. It would be nice to detect this and do the // right thing. declaration = await SelectFirstOrDefaultAsync(declarations, token.Parent.AncestorsAndSelf().Contains, cancellationToken).ConfigureAwait(false);
private static SyntaxTree.program_module InternalCreateProgramModule(statement_list statements, declarations defs) { block block = new block(); if (defs != null) { block.defs = defs; } statements.Add(new SyntaxTree.empty_statement()); statements.left_logical_bracket = new token_info("begin"); statements.right_logical_bracket = new token_info("end"); block.program_code = statements; program_module res = new program_module(); res.program_block = block; //res.used_units = create_standard_uses_list(); return(res); }
public static void Substitute(syntax_tree_visitor _visitor, declarations decls, statement_list _statementList) { var tree = new CapturedVariablesTreeBuilder(_visitor).BuildTree(_statementList); var substs = new CapturedVariablesSubstitutionClassGenerator(tree.RootNode).GenerateSubstitutions(); new CapturedVariablesSubstitutor(tree.IdentsReferences, substs.GeneratedScopeClassesInfo, substs.LambdasToBeAddedAsMethods, substs.SubstitutionsInfo, tree.CapturedVarsNodesDictionary, substs.ConvertingClassNonPublicMembersMapping, _visitor) .Substitute(_statementList); if (_visitor.context.converting_block() == block_type.function_block && tree.ProcedureScope != null) { if (decls != null && decls.defs != null) { foreach (var def in decls.defs.Where(d => d is const_definition || d is consts_definitions_list || d is variable_definitions)) { var constDef = def as const_definition; if (constDef != null) { var finder = new FindMainIdentsVisitor(); finder.ProcessNode(constDef.const_value); foreach (var v in finder.vars) { SymbolInfo si = _visitor.context.find_first(v.name); if (si == null) { continue; } if (tree.ProcedureScope.VariablesDefinedInScope.Any(var => var.SymbolInfo == si)) { _visitor.AddError(new UsingCapturedParameterIsNotAllowedInInitializers(_visitor.get_location(v))); } } continue; } var constDefList = def as consts_definitions_list; if (constDefList != null) { foreach (var cd in constDefList.const_defs) { var finder = new FindMainIdentsVisitor(); finder.ProcessNode(cd.const_value); foreach (var v in finder.vars) { SymbolInfo si = _visitor.context.find_first(v.name); if (si == null) { continue; } if (tree.ProcedureScope.VariablesDefinedInScope.Any(var => var.SymbolInfo == si)) { _visitor.AddError(new UsingCapturedParameterIsNotAllowedInInitializers(_visitor.get_location(v))); } } } continue; } var varDefList = def as variable_definitions; if (varDefList != null) { foreach (var d in varDefList.var_definitions) { var finder = new FindMainIdentsVisitor(); finder.ProcessNode(d.inital_value); foreach (var v in finder.vars) { SymbolInfo si = _visitor.context.find_first(v.name); if (si == null) { continue; } if (tree.ProcedureScope.VariablesDefinedInScope.Any(var => var.SymbolInfo == si)) { _visitor.AddError(new UsingCapturedParameterIsNotAllowedInInitializers(_visitor.get_location(v))); } } } } } } } }
public override void visit(declarations _declarations) { executer.visit(_declarations); if (_declarations.defs != null) foreach (dynamic x in _declarations.defs) if(x != null) this.visit(x); }