Exemplo n.º 1
0
            public virtual string Walk(IParseTreeListener listener, IParseTree t)
            {
                counter++;
                if (t is IErrorNode)
                {
                    listener.VisitErrorNode((IErrorNode)t);
                    txt = txt + t.ToString();
                    return(txt);
                }
                else
                {
                    if (t is ITerminalNode)
                    {
                        listener.VisitTerminal((ITerminalNode)t);
                        return(txt);
                    }
                }
                IRuleNode r          = (IRuleNode)t;
                string    parentname = r.GetText();

                //Console.WriteLine("##### PARENT " + counter + "####" + parentname + "#####");
                EnterRule(listener, r);
                int n = r.ChildCount;

                for (int i = 0; i < n; i++)
                {
                    Walk(listener, r.GetChild(i));

                    Console.WriteLine("##### CHILD " + i + " of " + parentname + "####" + r.GetChild(i).GetText() + "#####");
                }

                ExitRule(listener, r);
                return(txt);
            }
Exemplo n.º 2
0
 private Tuple <String, String> CleanRefs(RecycleParser.GameContext g1, RecycleParser.GameContext g2, IParseTree t1, IParseTree t2)
 {
     //TODO
     // check for vars and locs
     // if vars or locs don't exist in rest of context, then switch to something of same type that does exist
     // if that fails, create a definition based on usage in other game
     return(new Tuple <String, String>(t1.ToString(), t2.ToString()));
 }