예제 #1
0
        void RelationalTerm(out Expression exp)
        {
            Expression right = null, left = null; RelationalBinOp op = RelationalBinOp.Equal;

            ArithmeticExpression(out left);
            exp = left;
            if (StartOf(3))
            {
                switch (la.kind)
                {
                case 30: {
                    Get();
                    op = RelationalBinOp.Equal;
                    break;
                }

                case 31: {
                    Get();
                    op = RelationalBinOp.NotEqual;
                    break;
                }

                case 32: {
                    Get();
                    op = RelationalBinOp.GreaterThan;
                    break;
                }

                case 33: {
                    Get();
                    op = RelationalBinOp.GreaterThanOrEqual;
                    break;
                }

                case 34: {
                    Get();
                    op = RelationalBinOp.LessThan;
                    break;
                }

                case 35: {
                    Get();
                    op = RelationalBinOp.LessThanOrEqual;
                    break;
                }
                }
                ArithmeticExpression(out right);
                exp = new RelationalBinOpExpression(exp, right, op); CopyPos(exp, ((RelationalBinOpExpression)exp).Left, t);
            }
        }
 public RelationalBinOpExpression(Expression left, Expression right, RelationalBinOp op)
 {
     _op = op;
     _children.Add(left);
     _children.Add(right);
 }
 public RelationalBinOpExpression(Expression left, Expression right, RelationalBinOp op)
 {
     _op = op;
     _children.Add(left);
     _children.Add(right);
 }