Exemple #1
0
        public IExpression Parse(string expression)
        {
            _expression     = expression;
            _lexicalScanner = new LexicalScanner(expression);

            return(ParseExpression());
        }
Exemple #2
0
        public void TestSimpleParenthesisExpression()
        {
            LexicalScanner scanner = new LexicalScanner("(1*2)");

            AbstractToken token = scanner.GetNextToken();

            Assert.IsInstanceOf(typeof(OpenParenthesis), token);
            Assert.IsTrue(token.GetValue().Equals("("));

            token = scanner.GetNextToken();

            Assert.IsInstanceOf(typeof(Integer), token);
            Assert.IsTrue(token.GetValue().Equals("1"));

            token = scanner.GetNextToken();

            Assert.IsInstanceOf(typeof(Operator), token);
            Assert.IsTrue(token.GetValue().Equals("*"));

            token = scanner.GetNextToken();

            Assert.IsInstanceOf(typeof(Integer), token);
            Assert.IsTrue(token.GetValue().Equals("2"));

            token = scanner.GetNextToken();

            Assert.IsInstanceOf(typeof(CloseParenthesis), token);
            Assert.IsTrue(token.GetValue().Equals(")"));
        }
Exemple #3
0
        public void TestGetAllTokens()
        {
            LexicalScanner scanner = new LexicalScanner("1+2");

            List <AbstractToken> tokens = scanner.GetAllTokens() as List <AbstractToken>;

            Assert.AreEqual(3, tokens.Count);
        }
Exemple #4
0
        public void TestPolynomialMixedSpacesEqualsExpression()
        {
            LexicalScanner scanner = new LexicalScanner("4 = 1^2 + 4*x \\22.8");

            List <AbstractToken> tokens = scanner.GetAllTokens() as List <AbstractToken>;

            Assert.AreEqual(11, tokens.Count);
        }
Exemple #5
0
        public void TestPolynomialMixedSpacesExpExpression()
        {
            LexicalScanner scanner = new LexicalScanner("1.0e+2 ^2 + 4*x +22.8");

            List<AbstractToken> tokens = scanner.GetAllTokens() as List<AbstractToken>;

            Assert.AreEqual(9, tokens.Count);
        }
Exemple #6
0
        public void TestPolynomialExpression()
        {
            LexicalScanner scanner = new LexicalScanner("a^2+b*x+c");

            List<AbstractToken> tokens = scanner.GetAllTokens() as List<AbstractToken>;

            Assert.AreEqual(9, tokens.Count);
        }
Exemple #7
0
        public void TestGetAllTokens()
        {
            LexicalScanner scanner = new LexicalScanner("1+2");

            List<AbstractToken> tokens = scanner.GetAllTokens() as List<AbstractToken>;

            Assert.AreEqual(3, tokens.Count);
        }
Exemple #8
0
        public void TestPolynomialExpression()
        {
            LexicalScanner scanner = new LexicalScanner("a^2+b*x+c");

            List <AbstractToken> tokens = scanner.GetAllTokens() as List <AbstractToken>;

            Assert.AreEqual(9, tokens.Count);
        }
Exemple #9
0
        public void TestFloat()
        {
            LexicalScanner scanner = new LexicalScanner("1.0");

            AbstractToken token = scanner.GetNextToken();

            Assert.IsInstanceOf(typeof(Float), token);
            Assert.IsTrue(token.GetValue().Equals("1.0"));
        }
Exemple #10
0
        public void TestInt()
        {
            LexicalScanner scanner = new LexicalScanner("1");

            AbstractToken token = scanner.GetNextToken();

            Assert.IsInstanceOf(typeof(Integer), token);
            Assert.IsTrue(token.GetValue().Equals("1"));
        }
Exemple #11
0
        public void TestPolynomialsExpression()
        {
            LexicalScanner scanner = new LexicalScanner("(5-2)*3^6+1");

            List <AbstractToken> tokens = new List <AbstractToken>();

            while (!scanner.EndOfInput)
            {
                tokens.Add(scanner.GetNextToken());
            }

            Assert.AreEqual(11, tokens.Count);
        }
Exemple #12
0
        public void TestSimpleAddSubExpression()
        {
            LexicalScanner scanner = new LexicalScanner("1+2");

            AbstractToken token = scanner.GetNextToken();

            Assert.IsInstanceOf(typeof(Integer), token);
            Assert.IsTrue(token.GetValue().Equals("1"));

            token = scanner.GetNextToken();

            Assert.IsInstanceOf(typeof(AddSub), token);
            Assert.IsTrue(token.GetValue().Equals("+"));

            token = scanner.GetNextToken();

            Assert.IsInstanceOf(typeof(Integer), token);
            Assert.IsTrue(token.GetValue().Equals("2"));
        }
Exemple #13
0
        public void TestSimpleParenthesisExpression()
        {
            LexicalScanner scanner = new LexicalScanner("(1*2)");

            AbstractToken token = scanner.GetNextToken();

            Assert.IsInstanceOf(typeof(OpenParenthesis), token);
            Assert.IsTrue(token.GetValue().Equals("("));

            token = scanner.GetNextToken();

            Assert.IsInstanceOf(typeof(Integer), token);
            Assert.IsTrue(token.GetValue().Equals("1"));

            token = scanner.GetNextToken();

            Assert.IsInstanceOf(typeof(Operator), token);
            Assert.IsTrue(token.GetValue().Equals("*"));

            token = scanner.GetNextToken();

            Assert.IsInstanceOf(typeof(Integer), token);
            Assert.IsTrue(token.GetValue().Equals("2"));

            token = scanner.GetNextToken();

            Assert.IsInstanceOf(typeof(CloseParenthesis), token);
            Assert.IsTrue(token.GetValue().Equals(")"));
        }
Exemple #14
0
 public CliApp(LexicalScanner lexicalScanner, SemanticAnalyzer.SemanticAnalyzer semanticAnalyzer)
 {
     Lexer       = lexicalScanner;
     SemAnalyzer = semanticAnalyzer;
 }
Exemple #15
0
        public void TestPolynomialsExpression()
        {
            LexicalScanner scanner = new LexicalScanner("(5-2)*3^6+1");

            List<AbstractToken> tokens = new List<AbstractToken>();

            while (!scanner.EndOfInput)
            {
                tokens.Add(scanner.GetNextToken());
            }

            Assert.AreEqual(11, tokens.Count);
        }
Exemple #16
0
 public Parser(String invoer)
 {
     _lex         = new LexicalScanner(invoer);
     _currentNode = _start;
 }
Exemple #17
0
        public void TestSimpleAddSubExpression()
        {
            LexicalScanner scanner = new LexicalScanner("1+2");

            AbstractToken token = scanner.GetNextToken();

            Assert.IsInstanceOf(typeof(Integer), token);
            Assert.IsTrue(token.GetValue().Equals("1"));

            token = scanner.GetNextToken();

            Assert.IsInstanceOf(typeof(AddSub), token);
            Assert.IsTrue(token.GetValue().Equals("+"));

            token = scanner.GetNextToken();

            Assert.IsInstanceOf(typeof(Integer), token);
            Assert.IsTrue(token.GetValue().Equals("2"));
        }