示例#1
0
        public void ValidExpressionContainsNoUnrecognizedTokens()
        {
            TheLexer lexer = new TheLexer();
            var tokens = lexer.GetTokens("3 + 5");

            Assert.AreEqual(0, tokens.Count(p => p.GetType() == typeof (UnrecognizedToken)));
        }
示例#2
0
        public void UnrecognizedTokenDetected()
        {
            TheLexer lexer = new TheLexer();
            var tokens = lexer.GetTokens("3 xyz 5");

            Assert.AreEqual(1, tokens.Count(p => p.GetType() == typeof(UnrecognizedToken)));
        }
示例#3
0
 /// <summary>
 /// Evaluates the expression
 /// </summary>
 public decimal Evaluate()
 {
     Lexer.TheLexer lexer = new Lexer.TheLexer();
     var tokens = lexer.GetTokens(_expression).ToList();
     Parser parser = new Parser(new OperationOrder());
     ExpressionTree expressionTree = parser.Parse(tokens);
     return expressionTree.Walk();
 }
示例#4
0
        /// <summary>
        /// Evaluates the expression
        /// </summary>
        public decimal Evaluate()
        {
            Lexer.TheLexer lexer          = new Lexer.TheLexer();
            var            tokens         = lexer.GetTokens(_expression).ToList();
            Parser         parser         = new Parser(new OperationOrder());
            ExpressionTree expressionTree = parser.Parse(tokens);

            return(expressionTree.Walk());
        }