private AdditionSubtractionEvaluator GetAdditionSubtractionExprRight(MultiplicationDivisionEvaluator left, string oper)
        {
            var leftVal  = left;
            var rightVal = GetMultiplicationDivisionExpr();
            var op       = currentToken.code;

            if (Accept(TokenType.PlusOperator) || Accept(TokenType.MinusOperator))
            {
                leftVal = new MultiplicationDivisionEvaluator(new ArithmValueEvaluator(new ArithmExprEvaluator(new AdditionSubtractionEvaluator(leftVal, rightVal, oper))));
                return(GetAdditionSubtractionExprRight(leftVal, op));
            }
            return(new AdditionSubtractionEvaluator(leftVal, rightVal, oper));
        }
예제 #2
0
 public ArithmExprEvaluator(MultiplicationDivisionEvaluator l) : this(new AdditionSubtractionEvaluator(l))
 {
 }
예제 #3
0
 public AdditionSubtractionEvaluator(AdditionSubtractionEvaluator l, MultiplicationDivisionEvaluator r, string op)
 {
     left           = new MultiplicationDivisionEvaluator(new ArithmValueEvaluator(new ArithmExprEvaluator(l)));
     right          = r;
     arithmOperator = op;
 }
예제 #4
0
 public AdditionSubtractionEvaluator(MultiplicationDivisionEvaluator l, MultiplicationDivisionEvaluator r, string op)
 {
     left           = l;
     right          = r;
     arithmOperator = op;
 }
예제 #5
0
 public AdditionSubtractionEvaluator(MultiplicationDivisionEvaluator l)
 {
     left           = l;
     right          = null;
     arithmOperator = null;
 }
예제 #6
0
 public MultiplicationDivisionEvaluator(MultiplicationDivisionEvaluator l, ArithmValueEvaluator r, string op)
 {
     left           = new ArithmValueEvaluator(new ArithmExprEvaluator(l));
     right          = r;
     arithmOperator = op;
 }