Added support for parentheses around expressions as per #72
This commit is contained in:
parent
95c0abfec4
commit
2fea5e3a6b
|
|
@ -79,7 +79,7 @@ class Parser {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void expr() throws ParseException {
|
private void expr() throws ParseException {
|
||||||
expect(Token.NOT, Token.TEXT);
|
expect(Token.NOT, Token.TEXT, Token.LEFT_BRACKET);
|
||||||
switch (token) {
|
switch (token) {
|
||||||
case NOT:
|
case NOT:
|
||||||
notExpr();
|
notExpr();
|
||||||
|
|
@ -106,6 +106,13 @@ class Parser {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case LEFT_BRACKET : {
|
||||||
|
next();
|
||||||
|
expr();
|
||||||
|
expect(Token.RIGHT_BRACKET);
|
||||||
|
next();
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
// if you get here, you had a expression, see if you want more.
|
// if you get here, you had a expression, see if you want more.
|
||||||
switch (token) {
|
switch (token) {
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ class Scanner {
|
||||||
|
|
||||||
SLASH("/"), COMMA(","), EOL(), WS, TEXT,
|
SLASH("/"), COMMA(","), EOL(), WS, TEXT,
|
||||||
LESS("<"), MORE(">"), EQUALS("="), NOT_EQUALS("!="), PIPE("!"),
|
LESS("<"), MORE(">"), EQUALS("="), NOT_EQUALS("!="), PIPE("!"),
|
||||||
|
LEFT_BRACKET("("), RIGHT_BRACKET(")"),
|
||||||
WHERE, NOT, AND, OR, RETURN;
|
WHERE, NOT, AND, OR, RETURN;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -80,6 +81,12 @@ class Scanner {
|
||||||
case '=':
|
case '=':
|
||||||
nextChar();
|
nextChar();
|
||||||
return EQUALS;
|
return EQUALS;
|
||||||
|
case '(' :
|
||||||
|
nextChar();
|
||||||
|
return LEFT_BRACKET;
|
||||||
|
case ')' :
|
||||||
|
nextChar();
|
||||||
|
return RIGHT_BRACKET;
|
||||||
case '!':
|
case '!':
|
||||||
return pipe();
|
return pipe();
|
||||||
case '"':
|
case '"':
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue