//copy the entire syntax tree public override Expression Apply(SequenceExpression expression, MergeParameter param) { var result = new SequenceExpression( Invoke(expression.Left, param), Invoke(expression.Right, param)); return(result); }
public Expression ParseJoin() { var left = ParseUnit(); while (true) { var right = ParseUnit(); if (right != null) { var seqExpression = new SequenceExpression(left, right); left = seqExpression; } else { break; } } return(left); }
public override EpsilonNfa Apply(SequenceExpression expression, Automaton param) { return(Connect( Invoke(expression.Left, param), Invoke(expression.Right, param), param)); }
public static RegexNode operator +(RegexNode node1, RegexNode node2) { var expression = new SequenceExpression(node1.Exp, node2.Exp); return(new RegexNode(expression)); }
public bool Equals(SequenceExpression obj) { return (Left.Equals(obj.Left) && Right.Equals(obj.Right)); }
public void Visit(SequenceExpression expression) { _returnValue = this.Apply(expression, _paramValue); }
public abstract ReturnT Apply(SequenceExpression expression, ParamT param);
public Expression ParseJoin() { var left = ParseUnit(); while(true) { var right = ParseUnit(); if (right != null) { var seqExpression = new SequenceExpression(left,right); left = seqExpression; } else break; } return left; }
public static RegexNode operator +(RegexNode node1,RegexNode node2) { var expression = new SequenceExpression(node1.Exp, node2.Exp); return new RegexNode(expression); }
public bool Equals(SequenceExpression obj) { return Left.Equals(obj.Left) && Right.Equals(obj.Right); }