aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/antlr4/com/yahoo/search
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-01-25 08:15:59 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2023-01-25 16:11:19 +0100
commitf83f2ca81a686bf6b12c281fa3d71e51660e3371 (patch)
tree82ffcb1bb12f83c016b7dff6c80d3d476173ba1e /container-search/src/main/antlr4/com/yahoo/search
parent6c1c36bf87ed7a82bf5c0c9664280d796bcf7aba (diff)
- It is a bit of an overkill to use java Stack that is built on java Vector which is synchronized.
Especially when you only need to store a boolean. - Use a Deque instead.
Diffstat (limited to 'container-search/src/main/antlr4/com/yahoo/search')
-rw-r--r--container-search/src/main/antlr4/com/yahoo/search/yql/yqlplus.g417
1 files changed, 7 insertions, 10 deletions
diff --git a/container-search/src/main/antlr4/com/yahoo/search/yql/yqlplus.g4 b/container-search/src/main/antlr4/com/yahoo/search/yql/yqlplus.g4
index 422c3c8681e..96ed024c9e4 100644
--- a/container-search/src/main/antlr4/com/yahoo/search/yql/yqlplus.g4
+++ b/container-search/src/main/antlr4/com/yahoo/search/yql/yqlplus.g4
@@ -7,15 +7,13 @@ options {
}
@header {
- import java.util.Stack;
+ import java.util.Deque;
+ import java.util.ArrayDeque;
import com.yahoo.search.yql.*;
}
@parser::members {
- protected static class expression_scope {
- boolean in_select;
- }
- protected Stack<expression_scope> expression_stack = new Stack();
+ protected Deque<Boolean> expression_stack = new ArrayDeque<>();
}
// tokens
@@ -319,8 +317,7 @@ argument[boolean in_select]
expression [boolean select]
@init {
- expression_stack.push(new expression_scope());
- expression_stack.peek().in_select = select;
+ expression_stack.push(select);
}
@after {
expression_stack.pop();
@@ -360,7 +357,7 @@ equality_expression
;
in_not_in_target
- : {expression_stack.peek().in_select}? LPAREN select_statement RPAREN
+ : {expression_stack.peek()}? LPAREN select_statement RPAREN
| literal_list
;
@@ -407,7 +404,7 @@ unary_expression
dereferenced_expression
@init{
- boolean in_select = expression_stack.peek().in_select;
+ boolean in_select = expression_stack.peek();
}
: primary_expression
(
@@ -425,7 +422,7 @@ propertyref
primary_expression
@init {
- boolean in_select = expression_stack.peek().in_select;
+ boolean in_select = expression_stack.peek();
}
: call_expression[in_select]
| fieldref