Beispiel #1
0
            public object VisitAlternation(AlternationNode alt)
            {
                tabWrite("Alt");

                level++;

                tabWrite("Left");
                level++;
                alt.Left.Visit(this);
                level--;

                tabWrite("Right");
                level++;
                alt.Right.Visit(this);
                level--;

                level--;

                return(null);
            }
Beispiel #2
0
            public override AstNode VisitAlternation(AlternationNode alt)
            {
                var left  = alt.Left.Visit(this);
                var right = alt.Right.Visit(this);

                var nodes = new List <AstNode>();

                nodes.Add(left);

                if (right is AlternationListNode)
                {
                    nodes.AddRange((right as AlternationListNode).Nodes);
                }
                else
                {
                    nodes.Add(right);
                }

                return(new AlternationListNode(nodes));
            }
Beispiel #3
0
 public Tuple <State, State> VisitAlternation(AlternationNode alt)
 {
     throw new NotSupportedException("You should use the SimplifyingRewriter in Program.");
 }
Beispiel #4
0
 public virtual AstNode VisitAlternation(AlternationNode alt)
 {
     return(new AlternationNode(alt.Left.Visit(this), alt.Right.Visit(this)));
 }
Beispiel #5
0
 public virtual T VisitAlternation(AlternationNode alt)
 {
     return(default(T));
 }