public void Verify_infix_lexer_logic()
        {
            const string expression = "( true && (true) ) || false";
            var lexer = new InfixLexer();

            var tokens = lexer.Analyze(expression, false);
            Assert.AreEqual(tokens.Length, 15);
            Assert.AreEqual(tokens[0], "(");
            Assert.AreEqual(tokens[1], " ");
            Assert.AreEqual(tokens[2], "true");
            Assert.AreEqual(tokens[3], " ");
            Assert.AreEqual(tokens[4], "&&");
            Assert.AreEqual(tokens[5], " ");
            Assert.AreEqual(tokens[6], "(");
            Assert.AreEqual(tokens[7], "true");
            Assert.AreEqual(tokens[8], ")");
            Assert.AreEqual(tokens[9], " ");
            Assert.AreEqual(tokens[10], ")");
            Assert.AreEqual(tokens[11], " ");
            Assert.AreEqual(tokens[12], "||");
            Assert.AreEqual(tokens[13], " ");
            Assert.AreEqual(tokens[14], "false");

            tokens = lexer.Analyze(expression, true);
            Assert.AreEqual(tokens.Length, 9);
            Assert.AreEqual(tokens[0], "(");
            Assert.AreEqual(tokens[1], "true");
            Assert.AreEqual(tokens[2], "&&");
            Assert.AreEqual(tokens[3], "(");
            Assert.AreEqual(tokens[4], "true");
            Assert.AreEqual(tokens[5], ")");
            Assert.AreEqual(tokens[6], ")");
            Assert.AreEqual(tokens[7], "||");
            Assert.AreEqual(tokens[8], "false");

            try
            {
                lexer.Analyze("true + false", false);
                Assert.Fail();
            }
            catch (Exception e)
            {
                Assert.IsTrue(e is ArgumentException);
            }

            try
            {
                lexer.Analyze("true && 7", false);
                Assert.Fail();
            }
            catch (Exception e)
            {
                Assert.IsTrue(e is ArgumentException);
            }
        }
 public InfixToPostfixConverter()
 {
     _infixLexer = new InfixLexer();
 }