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); expr.LNode = E_1(); return(expr); } _pos = oldPos; return(null); }
private IAstNode E3() { IAstNode expr = E4(); if (expr != null) { while ((LookToken().Type == TokenType.Op && LookToken().Data == "^")) { Token token = GetToken(); AstOpNode op = new AstOpNode(token.Data) { LNode = expr, RNode = E4() }; if (op.RNode != null) { expr = op; } } } return(expr); }