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); }
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); }