Example #1
0
 public object VisitConcat(ConcatNode con)
 {
     tabWrite("Concat");
     level++;
     con.Nodes.Select(n => n.Visit(this)).ToList();
     level--;
     return(null);
 }
Example #2
0
            public override AstNode VisitConcat(ConcatNode con)
            {
                if (con.Nodes.Count == 0)
                {
                    throw new Exception("Empty concat node =(");
                }

                if (con.Nodes.Count == 1)
                {
                    return(con.Nodes[0].Visit(this));
                }
                else
                {
                    return(base.VisitConcat(con));
                }
            }
Example #3
0
            public Tuple <State, State> VisitConcat(ConcatNode con)
            {
                var start = new State();
                var stop  = new State();

                var cur = con.Nodes[0].Visit(this);

                addLambda(start, cur.Item1);

                for (int i = 1; i < con.Nodes.Count; i++)
                {
                    var next = con.Nodes[i].Visit(this);
                    addLambda(cur.Item2, next.Item1);
                    cur = next;
                }

                addLambda(cur.Item2, stop);

                return(new Tuple <State, State>(start, stop));
            }
Example #4
0
 public virtual AstNode VisitConcat(ConcatNode con)
 {
     return(new ConcatNode(con.Nodes.Select(n => n.Visit(this))));
 }
Example #5
0
 public virtual T VisitConcat(ConcatNode con)
 {
     return(default(T));
 }