MakeSequence() public method

public MakeSequence ( Graph g1, Graph g2 ) : void
g1 Graph
g2 Graph
return void
Exemplo n.º 1
0
        void Term(out Graph g)
        {
            Graph g2; Node rslv = null; g = null;

            if (StartOf(17))
            {
                if (la.kind == 37)
                {
                    rslv = tab.NewNode(Node.rslv, null, la.line);
                    Resolver(out rslv.pos);
                    Notify(27); // Coco-Plugin: notify parsercustomization
                    g = new Graph(rslv);
                }
                Factor(out g2);
                if (rslv != null)
                {
                    tab.MakeSequence(g, g2);
                }
                else
                {
                    g = g2;
                }

                while (StartOf(18))
                {
                    Factor(out g2);
                    tab.MakeSequence(g, g2);
                }
            }
            else if (StartOf(19))
            {
                g = new Graph(tab.NewNode(Node.eps, null, 0));
            }
            else
            {
                SynErr(48);
            }
            if (g == null)     // invalid start of Term
            {
                g = new Graph(tab.NewNode(Node.eps, null, 0));
            }
        }