public object VisitConcat(ConcatNode con) { tabWrite("Concat"); level++; con.Nodes.Select(n => n.Visit(this)).ToList(); level--; return(null); }
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)); } }
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)); }
public virtual AstNode VisitConcat(ConcatNode con) { return(new ConcatNode(con.Nodes.Select(n => n.Visit(this)))); }
public virtual T VisitConcat(ConcatNode con) { return(default(T)); }