Ejemplo n.º 1
0
        //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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 public override EpsilonNfa Apply(SequenceExpression expression, Automaton param)
 {
     return(Connect(
                Invoke(expression.Left, param),
                Invoke(expression.Right, param), param));
 }
Ejemplo n.º 4
0
        public static RegexNode operator +(RegexNode node1, RegexNode node2)
        {
            var expression = new SequenceExpression(node1.Exp, node2.Exp);

            return(new RegexNode(expression));
        }
Ejemplo n.º 5
0
 public bool Equals(SequenceExpression obj)
 {
     return
         (Left.Equals(obj.Left) &&
          Right.Equals(obj.Right));
 }
Ejemplo n.º 6
0
 public void Visit(SequenceExpression expression)
 {
     _returnValue = this.Apply(expression, _paramValue);
 }
Ejemplo n.º 7
0
 public abstract ReturnT Apply(SequenceExpression expression, ParamT param);
Ejemplo n.º 8
0
 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;
 }
Ejemplo n.º 9
0
 public static RegexNode operator +(RegexNode node1,RegexNode node2)
 {
     var expression = new SequenceExpression(node1.Exp, node2.Exp);
     return new RegexNode(expression);
 }
Ejemplo n.º 10
0
 public bool Equals(SequenceExpression obj)
 {
     return
         Left.Equals(obj.Left) &&
         Right.Equals(obj.Right);
 }