public RENode.CharacterClassExpr parseCharacterClassExpression() throws SyntaxException { RENode.CharacterClassExpr left = parseCharacterClassTerm(); if (left != null) { boolean and = lexer.next(Kind.CC_AND); RENode.CharacterClassExpr right = parseCharacterClassExpression(); if (right != null) { if (and) { return new RENode.CharacterClassExpr.And(left, right); } else { return new RENode.CharacterClassExpr.Or(left, right); } } else { return left; } } else { return null; } }
public RENode.CharacterClassExpr parseCharacterClassExpression() throws SyntaxException { RENode.CharacterClassExpr left = parseCharacterClassTerm(); if (left != null) { boolean and = lexer.next(Kind.CC_AND); RENode.CharacterClassExpr right = parseCharacterClassExpression(); if (right != null) { if (and) { return new RENode.CharacterClassExpr.And(left, right); } else { return new RENode.CharacterClassExpr.Or(left, right); } } else { return left; } } else { return null; } }
private RENode.CharacterClassExpr _parseCharacterClass() throws SyntaxException { if (lexer.next(Kind.CC_OPEN)) { boolean negated = lexer.getToken().length() > 1; RENode.CharacterClassExpr expr = parseCharacterClassExpression(); if (expr != null) { if (lexer.next(Kind.CC_CLOSE)) { return negated ? new RENode.CharacterClassExpr.Not(expr) : expr; } else { throw new SyntaxException(""); } } else { throw new SyntaxException(""); } } else { return null; } }
private RENode.CharacterClassExpr _parseCharacterClass() throws SyntaxException { if (lexer.next(Kind.CC_OPEN)) { boolean negated = lexer.getToken().length() > 1; RENode.CharacterClassExpr expr = parseCharacterClassExpression(); if (expr != null) { if (lexer.next(Kind.CC_CLOSE)) { return negated ? new RENode.CharacterClassExpr.Not(expr) : expr; } else { throw new SyntaxException(""); } } else { throw new SyntaxException(""); } } else { return null; } }