Пример #1
0
        private static TokenParser<Tokens> CreateExpressionTokenizer()
        {
            var t = new TokenParser<Tokens>(Tokens.Variable);

            t.AddRule("=", Tokens.Equals);
            t.AddRule("+", Tokens.Plus);
            t.AddRule("-", Tokens.Minus);
            t.AddRule("*", Tokens.Asterisk);
            t.AddRule("/", Tokens.Slash);
            t.AddRule("^", Tokens.Caret);
            t.AddRule("%", Tokens.Percent);
            t.AddRule("(", Tokens.LeftParanthesis);
            t.AddRule(")", Tokens.RightParanthesis);
            t.AddRule(" ", Tokens.Whitespace);
            t.AddRule(new NumberLexerComparer(), Tokens.Number);

            t.Ignore(Tokens.Whitespace);

            return t;
        }