Пример #1
0
        private IAstNode E0()
        {
            IAstNode expr = E1();

            if (expr != null)
            {
                while ((LookToken().Type == TokenType.Op && LookToken().Data == "<") ||
                       (LookToken().Type == TokenType.Op && LookToken().Data == ">") ||
                       (LookToken().Type == TokenType.Op && LookToken().Data == ">=") ||
                       (LookToken().Type == TokenType.Op && LookToken().Data == "<=") ||
                       (LookToken().Type == TokenType.Op && LookToken().Data == "==") ||
                       (LookToken().Type == TokenType.Op && LookToken().Data == "!="))
                {
                    Token     token = GetToken();
                    AstOpNode op    = new AstOpNode(token.Data)
                    {
                        LNode = expr,
                        RNode = E1()
                    };
                    expr = op;
                }
            }

            return(expr);
        }
Пример #2
0
        private IAstNode NotExpr()
        {
            int   oldPos = _pos;
            Token token  = GetToken();

            if (token.Type == TokenType.Op && token.Data == "!")
            {
                AstOpNode expr = new AstOpNode(token.Data)
                {
                    LNode = E_1()
                };
                return(expr);
            }
            _pos = oldPos;
            return(null);
        }