public override void visit(procedure_definition p) { if (PrintInfo) Console.WriteLine(" " + p.proc_header.name.meth_name); var ld = new FindLocalDefsVisitor(); p.visit(ld); base.visit(p); }
public override void visit(procedure_definition p) { if (PrintInfo) { Console.WriteLine(" " + p.proc_header.name.meth_name); } var ld = new FindLocalDefsVisitor(); p.visit(ld); base.visit(p); }
public override void Exit(syntax_tree_node st) { if (st is procedure_definition) { if (mids.vars.Count > 0) { d[st as procedure_definition] = new HashSet <string>(mids.vars); } var fld = new FindLocalDefsVisitor(); st.visit(fld); fld.Print(); var t = fld.ids.Intersect(mids.vars); // идентификаторы, захваченные из локального контекста } base.Exit(st); }
public override void Exit(syntax_tree_node st) { if (st is procedure_definition) { if (mids.vars.Count>0) { d[st as procedure_definition] = new HashSet<string>(mids.vars); } var fld = new FindLocalDefsVisitor(); st.visit(fld); fld.Print(); var t = fld.ids.Intersect(mids.vars); // идентификаторы, захваченные из локального контекста } base.Exit(st); }