Example #1
0
 public static bool IsOpenParenthesis(Token token)
 {
     return (token.Type == TokenType.Operator && token.LinearToken.Equals(AllOperators.Find("(").SymbolText));
 }
Example #2
0
        private static Token EvaluateArithmetic(Token token1, Token token2, Token operatorToken)
        {
            //check if both tokens are numeric constants
            double number1 = double.NaN;
            double number2 = double.NaN;
            bool validNumber1 = (token1.Type == TokenType.Constant) && double.TryParse(token1.LinearToken, out number1);
            bool validNumber2 = (token2.Type == TokenType.Constant) && double.TryParse(token2.LinearToken, out number2);

            if (validNumber1 && validNumber2)
            {
                Operator op = AllOperators.Find(operatorToken.LinearToken);
                double returnValue = double.NaN;

                returnValue = op.Execute(number1, number2);

                returnValue = Math.Round(returnValue, 4);
                Constant returnValueConstant = new Constant() { Value = returnValue.ToString() };
                return (new Token(TokenType.Constant, returnValueConstant));
            }
            else
            {
                return (CalcUtilities.CreateNumberConstantToken("1"));
            }
        }
Example #3
0
 public static bool IsArithmeticOperator(Token token)
 {
     return (token.Type == TokenType.Operator && !IsOpenParenthesis(token) && !IsCloseParenthesis(token));
 }