public XppAstExpr Parse() { while (true) { XppToken token = lexer.NextToken(); if (token.TokenType == XppTokenType.EOF) { if (nodeStack.Count == 1) { XppAstExpr expr = Pop().Node as XppAstExpr; if (expr != null) { return(expr); } } Debug.Fail("Parse error, reached EOF in an invalid state. Use a debugger to see what's left on the stack."); throw new ArgumentException( "Parse error, reached EOF in an invalid state. Use a debugger to see what's left on the stack."); } Push(new XppParserSymbol(token.TokenType, token.Value, null)); EvaluateStack(); } }
public XppCompositeExpr(bool or, XppAstExpr left, XppAstExpr right) { _or = or; _left = left; _right = right; }
public XppCompositeExpr(bool or, XppAstExpr left, XppAstExpr right) { _or = or; _left = left; _right = right; }
public XppAstNotExpr(XppAstExpr expr) { this.expr = expr; }
public XppAstNotExpr(XppAstExpr expr) { this.expr = expr; }