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 {
|
||||
expect(Token.NOT, Token.TEXT);
|
||||
expect(Token.NOT, Token.TEXT, Token.LEFT_BRACKET);
|
||||
switch (token) {
|
||||
case NOT:
|
||||
notExpr();
|
||||
|
|
@ -106,6 +106,13 @@ class Parser {
|
|||
}
|
||||
}
|
||||
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.
|
||||
switch (token) {
|
||||
|
|
@ -122,7 +129,7 @@ class Parser {
|
|||
cmd.addQuery("?#&");
|
||||
}
|
||||
|
||||
private void orExpr() throws ParseException {
|
||||
private void orExpr() throws ParseException {
|
||||
next(); // eat or
|
||||
expr();
|
||||
cmd.addQuery("?#|");
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ class Scanner {
|
|||
|
||||
SLASH("/"), COMMA(","), EOL(), WS, TEXT,
|
||||
LESS("<"), MORE(">"), EQUALS("="), NOT_EQUALS("!="), PIPE("!"),
|
||||
LEFT_BRACKET("("), RIGHT_BRACKET(")"),
|
||||
WHERE, NOT, AND, OR, RETURN;
|
||||
|
||||
@Override
|
||||
|
|
@ -80,6 +81,12 @@ class Scanner {
|
|||
case '=':
|
||||
nextChar();
|
||||
return EQUALS;
|
||||
case '(' :
|
||||
nextChar();
|
||||
return LEFT_BRACKET;
|
||||
case ')' :
|
||||
nextChar();
|
||||
return RIGHT_BRACKET;
|
||||
case '!':
|
||||
return pipe();
|
||||
case '"':
|
||||
|
|
|
|||
Loading…
Reference in New Issue