summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2023-01-25 16:42:21 +0100
committerGitHub <noreply@github.com>2023-01-25 16:42:21 +0100
commit9a85de6ca1badd76e04a2315b693a8e512c0d6d1 (patch)
tree4d6f3392141376fddc326bbc1f5a11f94ef0937a
parent9c3c34c8dee8b12be7933d230cdddc3bb4ad75d1 (diff)
parentf83f2ca81a686bf6b12c281fa3d71e51660e3371 (diff)
Merge pull request #25731 from vespa-engine/balder/use-a-more-efficient-stack
- It is a bit of an overkill to use java Stack that is built on java …
-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