From 0cb8bb0415aa20ce142071b756e6cf199a3e9440 Mon Sep 17 00:00:00 2001 From: rob bygrave Date: Mon, 21 Jan 2019 20:28:38 +1300 Subject: [PATCH] #1611 - ENH: Add inRange expression (as half open expression) ... (property >= lowerValue and property < upperValue) Add inrange to EQL grammer --- .../server/grammer/EqlAdapter.java | 11 + .../server/grammer/EqlOperator.java | 1 + .../server/grammer/OperatorMapping.java | 1 + .../server/grammer/antlr/EQL.interp | 190 + .../server/grammer/antlr/EQL.tokens | 92 +- .../server/grammer/antlr/EQLBaseListener.java | 1448 ++--- .../server/grammer/antlr/EQLLexer.interp | 224 + .../server/grammer/antlr/EQLLexer.java | 553 +- .../server/grammer/antlr/EQLLexer.tokens | 92 +- .../server/grammer/antlr/EQLListener.java | 1052 ++-- .../server/grammer/antlr/EQLParser.java | 5381 ++++++++--------- .../server/grammer/EqlParserTest.java | 20 + src/test/resources/EQL.g4 | 7 +- 13 files changed, 4338 insertions(+), 4734 deletions(-) create mode 100644 src/main/java/io/ebeaninternal/server/grammer/antlr/EQL.interp create mode 100644 src/main/java/io/ebeaninternal/server/grammer/antlr/EQLLexer.interp diff --git a/src/main/java/io/ebeaninternal/server/grammer/EqlAdapter.java b/src/main/java/io/ebeaninternal/server/grammer/EqlAdapter.java index 837e24d29..873c6d88e 100644 --- a/src/main/java/io/ebeaninternal/server/grammer/EqlAdapter.java +++ b/src/main/java/io/ebeaninternal/server/grammer/EqlAdapter.java @@ -191,6 +191,17 @@ class EqlAdapter extends EQLBaseListener { return pathToken.getText(); } + @Override + public void enterInrange_expression(EQLParser.Inrange_expressionContext ctx) { + checkChildren(ctx, 5); + String path = getLeftHandSidePath(ctx); + EqlOperator op = getOperator(ctx); + if (op != EqlOperator.INRANGE) { + throw new IllegalStateException("Expecting INRANGE operator but got " + op); + } + helper.addInRange(path, child(ctx, 2), child(ctx, 4)); + } + @Override public void enterBetween_expression(EQLParser.Between_expressionContext ctx) { diff --git a/src/main/java/io/ebeaninternal/server/grammer/EqlOperator.java b/src/main/java/io/ebeaninternal/server/grammer/EqlOperator.java index b3cb4c6ba..809413fd2 100644 --- a/src/main/java/io/ebeaninternal/server/grammer/EqlOperator.java +++ b/src/main/java/io/ebeaninternal/server/grammer/EqlOperator.java @@ -18,6 +18,7 @@ enum EqlOperator { ISTARTS_WITH, IENDS_WITH, ILIKE, + INRANGE, BETWEEN } diff --git a/src/main/java/io/ebeaninternal/server/grammer/OperatorMapping.java b/src/main/java/io/ebeaninternal/server/grammer/OperatorMapping.java index 8e6315eec..2bc0e202b 100644 --- a/src/main/java/io/ebeaninternal/server/grammer/OperatorMapping.java +++ b/src/main/java/io/ebeaninternal/server/grammer/OperatorMapping.java @@ -41,6 +41,7 @@ class OperatorMapping { map.put("iendsWith", EqlOperator.IENDS_WITH); map.put("ilike", EqlOperator.ILIKE); + map.put("inrange", EqlOperator.INRANGE); map.put("between", EqlOperator.BETWEEN); } diff --git a/src/main/java/io/ebeaninternal/server/grammer/antlr/EQL.interp b/src/main/java/io/ebeaninternal/server/grammer/antlr/EQL.interp new file mode 100644 index 000000000..de112001d --- /dev/null +++ b/src/main/java/io/ebeaninternal/server/grammer/antlr/EQL.interp @@ -0,0 +1,190 @@ +token literal names: +null +'select' +'(' +')' +'distinct' +'where' +'order' +'by' +',' +'nulls' +'first' +'last' +'asc' +'desc' +'limit' +'offset' +'fetch' +'+' +'query' +'lazy' +'or' +'and' +'not' +'in' +'between' +'inrange' +'to' +'is' +'null' +'isNull' +'isNotNull' +'notNull' +'empty' +'isEmpty' +'isNotEmpty' +'notEmpty' +'like' +'ilike' +'contains' +'icontains' +'startsWith' +'istartsWith' +'endsWith' +'iendsWith' +'=' +'eq' +'>' +'gt' +'>=' +'ge' +'gte' +'<' +'lt' +'<=' +'le' +'lte' +'<>' +'!=' +'ne' +'ieq' +'ine' +null +null +null +null +null +null +'0' +null +null + +token symbolic names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +INPUT_VARIABLE +PATH_VARIABLE +BOOLEAN_LITERAL +NUMBER_LITERAL +DOUBLE +INT +ZERO +STRING_LITERAL +WS + +rule names: +select_statement +select_clause +distinct +fetch_clause +where_clause +orderby_clause +orderby_property +nulls_firstlast +asc_desc +limit_clause +offset_clause +fetch_path +fetch_property_set +fetch_property_group +fetch_property +fetch_query_hint +fetch_lazy_hint +fetch_option +fetch_query_option +fetch_lazy_option +fetch_batch_size +conditional_expression +conditional_term +conditional_factor +conditional_primary +any_expression +in_expression +in_value +between_expression +inrange_expression +propertyBetween_expression +isNull_expression +isNotNull_expression +isEmpty_expression +isNotEmpty_expression +like_expression +like_op +comparison_expression +comparison_operator +value_expression +literal + + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 71, 338, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 3, 2, 5, 2, 86, 10, 2, 3, 2, 7, 2, 89, 10, 2, 12, 2, 14, 2, 92, 11, 2, 3, 2, 5, 2, 95, 10, 2, 3, 2, 5, 2, 98, 10, 2, 3, 2, 5, 2, 101, 10, 2, 3, 2, 3, 2, 3, 3, 3, 3, 5, 3, 107, 10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 7, 7, 125, 10, 7, 12, 7, 14, 7, 128, 11, 7, 3, 8, 3, 8, 5, 8, 132, 10, 8, 3, 8, 5, 8, 135, 10, 8, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 141, 10, 9, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 5, 11, 148, 10, 11, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 5, 13, 155, 10, 13, 3, 13, 3, 13, 5, 13, 159, 10, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 7, 15, 168, 10, 15, 12, 15, 14, 15, 171, 11, 15, 3, 16, 3, 16, 3, 16, 5, 16, 176, 10, 16, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 5, 19, 186, 10, 19, 3, 20, 3, 20, 5, 20, 190, 10, 20, 3, 21, 3, 21, 5, 21, 194, 10, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 7, 23, 203, 10, 23, 12, 23, 14, 23, 206, 11, 23, 3, 24, 3, 24, 3, 24, 7, 24, 211, 10, 24, 12, 24, 14, 24, 214, 11, 24, 3, 25, 5, 25, 217, 10, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 226, 10, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 242, 10, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 7, 29, 253, 10, 29, 12, 29, 14, 29, 256, 11, 29, 3, 29, 3, 29, 5, 29, 260, 10, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 5, 33, 285, 10, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 5, 34, 295, 10, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 5, 35, 302, 10, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 5, 36, 312, 10, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 5, 39, 328, 10, 39, 3, 40, 3, 40, 3, 41, 3, 41, 5, 41, 334, 10, 41, 3, 42, 3, 42, 3, 42, 2, 2, 43, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 2, 6, 3, 2, 14, 15, 3, 2, 38, 45, 3, 2, 46, 62, 4, 2, 65, 66, 70, 70, 2, 339, 2, 85, 3, 2, 2, 2, 4, 104, 3, 2, 2, 2, 6, 112, 3, 2, 2, 2, 8, 114, 3, 2, 2, 2, 10, 116, 3, 2, 2, 2, 12, 119, 3, 2, 2, 2, 14, 129, 3, 2, 2, 2, 16, 140, 3, 2, 2, 2, 18, 142, 3, 2, 2, 2, 20, 144, 3, 2, 2, 2, 22, 149, 3, 2, 2, 2, 24, 152, 3, 2, 2, 2, 26, 160, 3, 2, 2, 2, 28, 164, 3, 2, 2, 2, 30, 175, 3, 2, 2, 2, 32, 177, 3, 2, 2, 2, 34, 180, 3, 2, 2, 2, 36, 185, 3, 2, 2, 2, 38, 187, 3, 2, 2, 2, 40, 191, 3, 2, 2, 2, 42, 195, 3, 2, 2, 2, 44, 199, 3, 2, 2, 2, 46, 207, 3, 2, 2, 2, 48, 216, 3, 2, 2, 2, 50, 225, 3, 2, 2, 2, 52, 241, 3, 2, 2, 2, 54, 243, 3, 2, 2, 2, 56, 259, 3, 2, 2, 2, 58, 261, 3, 2, 2, 2, 60, 267, 3, 2, 2, 2, 62, 273, 3, 2, 2, 2, 64, 284, 3, 2, 2, 2, 66, 294, 3, 2, 2, 2, 68, 301, 3, 2, 2, 2, 70, 311, 3, 2, 2, 2, 72, 313, 3, 2, 2, 2, 74, 317, 3, 2, 2, 2, 76, 327, 3, 2, 2, 2, 78, 329, 3, 2, 2, 2, 80, 333, 3, 2, 2, 2, 82, 335, 3, 2, 2, 2, 84, 86, 5, 4, 3, 2, 85, 84, 3, 2, 2, 2, 85, 86, 3, 2, 2, 2, 86, 90, 3, 2, 2, 2, 87, 89, 5, 8, 5, 2, 88, 87, 3, 2, 2, 2, 89, 92, 3, 2, 2, 2, 90, 88, 3, 2, 2, 2, 90, 91, 3, 2, 2, 2, 91, 94, 3, 2, 2, 2, 92, 90, 3, 2, 2, 2, 93, 95, 5, 10, 6, 2, 94, 93, 3, 2, 2, 2, 94, 95, 3, 2, 2, 2, 95, 97, 3, 2, 2, 2, 96, 98, 5, 12, 7, 2, 97, 96, 3, 2, 2, 2, 97, 98, 3, 2, 2, 2, 98, 100, 3, 2, 2, 2, 99, 101, 5, 20, 11, 2, 100, 99, 3, 2, 2, 2, 100, 101, 3, 2, 2, 2, 101, 102, 3, 2, 2, 2, 102, 103, 7, 2, 2, 3, 103, 3, 3, 2, 2, 2, 104, 106, 7, 3, 2, 2, 105, 107, 5, 6, 4, 2, 106, 105, 3, 2, 2, 2, 106, 107, 3, 2, 2, 2, 107, 108, 3, 2, 2, 2, 108, 109, 7, 4, 2, 2, 109, 110, 5, 28, 15, 2, 110, 111, 7, 5, 2, 2, 111, 5, 3, 2, 2, 2, 112, 113, 7, 6, 2, 2, 113, 7, 3, 2, 2, 2, 114, 115, 5, 24, 13, 2, 115, 9, 3, 2, 2, 2, 116, 117, 7, 7, 2, 2, 117, 118, 5, 44, 23, 2, 118, 11, 3, 2, 2, 2, 119, 120, 7, 8, 2, 2, 120, 121, 7, 9, 2, 2, 121, 126, 5, 14, 8, 2, 122, 123, 7, 10, 2, 2, 123, 125, 5, 14, 8, 2, 124, 122, 3, 2, 2, 2, 125, 128, 3, 2, 2, 2, 126, 124, 3, 2, 2, 2, 126, 127, 3, 2, 2, 2, 127, 13, 3, 2, 2, 2, 128, 126, 3, 2, 2, 2, 129, 131, 7, 64, 2, 2, 130, 132, 5, 18, 10, 2, 131, 130, 3, 2, 2, 2, 131, 132, 3, 2, 2, 2, 132, 134, 3, 2, 2, 2, 133, 135, 5, 16, 9, 2, 134, 133, 3, 2, 2, 2, 134, 135, 3, 2, 2, 2, 135, 15, 3, 2, 2, 2, 136, 137, 7, 11, 2, 2, 137, 141, 7, 12, 2, 2, 138, 139, 7, 11, 2, 2, 139, 141, 7, 13, 2, 2, 140, 136, 3, 2, 2, 2, 140, 138, 3, 2, 2, 2, 141, 17, 3, 2, 2, 2, 142, 143, 9, 2, 2, 2, 143, 19, 3, 2, 2, 2, 144, 145, 7, 16, 2, 2, 145, 147, 7, 66, 2, 2, 146, 148, 5, 22, 12, 2, 147, 146, 3, 2, 2, 2, 147, 148, 3, 2, 2, 2, 148, 21, 3, 2, 2, 2, 149, 150, 7, 17, 2, 2, 150, 151, 7, 66, 2, 2, 151, 23, 3, 2, 2, 2, 152, 154, 7, 18, 2, 2, 153, 155, 5, 36, 19, 2, 154, 153, 3, 2, 2, 2, 154, 155, 3, 2, 2, 2, 155, 156, 3, 2, 2, 2, 156, 158, 7, 64, 2, 2, 157, 159, 5, 26, 14, 2, 158, 157, 3, 2, 2, 2, 158, 159, 3, 2, 2, 2, 159, 25, 3, 2, 2, 2, 160, 161, 7, 4, 2, 2, 161, 162, 5, 28, 15, 2, 162, 163, 7, 5, 2, 2, 163, 27, 3, 2, 2, 2, 164, 169, 5, 30, 16, 2, 165, 166, 7, 10, 2, 2, 166, 168, 5, 30, 16, 2, 167, 165, 3, 2, 2, 2, 168, 171, 3, 2, 2, 2, 169, 167, 3, 2, 2, 2, 169, 170, 3, 2, 2, 2, 170, 29, 3, 2, 2, 2, 171, 169, 3, 2, 2, 2, 172, 176, 7, 64, 2, 2, 173, 176, 5, 32, 17, 2, 174, 176, 5, 34, 18, 2, 175, 172, 3, 2, 2, 2, 175, 173, 3, 2, 2, 2, 175, 174, 3, 2, 2, 2, 176, 31, 3, 2, 2, 2, 177, 178, 7, 19, 2, 2, 178, 179, 5, 38, 20, 2, 179, 33, 3, 2, 2, 2, 180, 181, 7, 19, 2, 2, 181, 182, 5, 40, 21, 2, 182, 35, 3, 2, 2, 2, 183, 186, 5, 38, 20, 2, 184, 186, 5, 40, 21, 2, 185, 183, 3, 2, 2, 2, 185, 184, 3, 2, 2, 2, 186, 37, 3, 2, 2, 2, 187, 189, 7, 20, 2, 2, 188, 190, 5, 42, 22, 2, 189, 188, 3, 2, 2, 2, 189, 190, 3, 2, 2, 2, 190, 39, 3, 2, 2, 2, 191, 193, 7, 21, 2, 2, 192, 194, 5, 42, 22, 2, 193, 192, 3, 2, 2, 2, 193, 194, 3, 2, 2, 2, 194, 41, 3, 2, 2, 2, 195, 196, 7, 4, 2, 2, 196, 197, 7, 66, 2, 2, 197, 198, 7, 5, 2, 2, 198, 43, 3, 2, 2, 2, 199, 204, 5, 46, 24, 2, 200, 201, 7, 22, 2, 2, 201, 203, 5, 46, 24, 2, 202, 200, 3, 2, 2, 2, 203, 206, 3, 2, 2, 2, 204, 202, 3, 2, 2, 2, 204, 205, 3, 2, 2, 2, 205, 45, 3, 2, 2, 2, 206, 204, 3, 2, 2, 2, 207, 212, 5, 48, 25, 2, 208, 209, 7, 23, 2, 2, 209, 211, 5, 48, 25, 2, 210, 208, 3, 2, 2, 2, 211, 214, 3, 2, 2, 2, 212, 210, 3, 2, 2, 2, 212, 213, 3, 2, 2, 2, 213, 47, 3, 2, 2, 2, 214, 212, 3, 2, 2, 2, 215, 217, 7, 24, 2, 2, 216, 215, 3, 2, 2, 2, 216, 217, 3, 2, 2, 2, 217, 218, 3, 2, 2, 2, 218, 219, 5, 50, 26, 2, 219, 49, 3, 2, 2, 2, 220, 226, 5, 52, 27, 2, 221, 222, 7, 4, 2, 2, 222, 223, 5, 44, 23, 2, 223, 224, 7, 5, 2, 2, 224, 226, 3, 2, 2, 2, 225, 220, 3, 2, 2, 2, 225, 221, 3, 2, 2, 2, 226, 51, 3, 2, 2, 2, 227, 242, 5, 76, 39, 2, 228, 242, 5, 72, 37, 2, 229, 242, 5, 60, 31, 2, 230, 242, 5, 58, 30, 2, 231, 242, 5, 62, 32, 2, 232, 242, 5, 54, 28, 2, 233, 242, 5, 64, 33, 2, 234, 242, 5, 66, 34, 2, 235, 242, 5, 68, 35, 2, 236, 242, 5, 70, 36, 2, 237, 238, 7, 4, 2, 2, 238, 239, 5, 52, 27, 2, 239, 240, 7, 5, 2, 2, 240, 242, 3, 2, 2, 2, 241, 227, 3, 2, 2, 2, 241, 228, 3, 2, 2, 2, 241, 229, 3, 2, 2, 2, 241, 230, 3, 2, 2, 2, 241, 231, 3, 2, 2, 2, 241, 232, 3, 2, 2, 2, 241, 233, 3, 2, 2, 2, 241, 234, 3, 2, 2, 2, 241, 235, 3, 2, 2, 2, 241, 236, 3, 2, 2, 2, 241, 237, 3, 2, 2, 2, 242, 53, 3, 2, 2, 2, 243, 244, 7, 64, 2, 2, 244, 245, 7, 25, 2, 2, 245, 246, 5, 56, 29, 2, 246, 55, 3, 2, 2, 2, 247, 260, 7, 63, 2, 2, 248, 249, 7, 4, 2, 2, 249, 254, 5, 80, 41, 2, 250, 251, 7, 10, 2, 2, 251, 253, 5, 80, 41, 2, 252, 250, 3, 2, 2, 2, 253, 256, 3, 2, 2, 2, 254, 252, 3, 2, 2, 2, 254, 255, 3, 2, 2, 2, 255, 257, 3, 2, 2, 2, 256, 254, 3, 2, 2, 2, 257, 258, 7, 5, 2, 2, 258, 260, 3, 2, 2, 2, 259, 247, 3, 2, 2, 2, 259, 248, 3, 2, 2, 2, 260, 57, 3, 2, 2, 2, 261, 262, 7, 64, 2, 2, 262, 263, 7, 26, 2, 2, 263, 264, 5, 80, 41, 2, 264, 265, 7, 23, 2, 2, 265, 266, 5, 80, 41, 2, 266, 59, 3, 2, 2, 2, 267, 268, 7, 64, 2, 2, 268, 269, 7, 27, 2, 2, 269, 270, 5, 80, 41, 2, 270, 271, 7, 28, 2, 2, 271, 272, 5, 80, 41, 2, 272, 61, 3, 2, 2, 2, 273, 274, 5, 80, 41, 2, 274, 275, 7, 26, 2, 2, 275, 276, 7, 64, 2, 2, 276, 277, 7, 23, 2, 2, 277, 278, 7, 64, 2, 2, 278, 63, 3, 2, 2, 2, 279, 280, 7, 64, 2, 2, 280, 281, 7, 29, 2, 2, 281, 285, 7, 30, 2, 2, 282, 283, 7, 64, 2, 2, 283, 285, 7, 31, 2, 2, 284, 279, 3, 2, 2, 2, 284, 282, 3, 2, 2, 2, 285, 65, 3, 2, 2, 2, 286, 287, 7, 64, 2, 2, 287, 288, 7, 29, 2, 2, 288, 289, 7, 24, 2, 2, 289, 295, 7, 30, 2, 2, 290, 291, 7, 64, 2, 2, 291, 295, 7, 32, 2, 2, 292, 293, 7, 64, 2, 2, 293, 295, 7, 33, 2, 2, 294, 286, 3, 2, 2, 2, 294, 290, 3, 2, 2, 2, 294, 292, 3, 2, 2, 2, 295, 67, 3, 2, 2, 2, 296, 297, 7, 64, 2, 2, 297, 298, 7, 29, 2, 2, 298, 302, 7, 34, 2, 2, 299, 300, 7, 64, 2, 2, 300, 302, 7, 35, 2, 2, 301, 296, 3, 2, 2, 2, 301, 299, 3, 2, 2, 2, 302, 69, 3, 2, 2, 2, 303, 304, 7, 64, 2, 2, 304, 305, 7, 29, 2, 2, 305, 306, 7, 24, 2, 2, 306, 312, 7, 34, 2, 2, 307, 308, 7, 64, 2, 2, 308, 312, 7, 36, 2, 2, 309, 310, 7, 64, 2, 2, 310, 312, 7, 37, 2, 2, 311, 303, 3, 2, 2, 2, 311, 307, 3, 2, 2, 2, 311, 309, 3, 2, 2, 2, 312, 71, 3, 2, 2, 2, 313, 314, 7, 64, 2, 2, 314, 315, 5, 74, 38, 2, 315, 316, 5, 80, 41, 2, 316, 73, 3, 2, 2, 2, 317, 318, 9, 3, 2, 2, 318, 75, 3, 2, 2, 2, 319, 320, 7, 64, 2, 2, 320, 321, 5, 78, 40, 2, 321, 322, 5, 80, 41, 2, 322, 328, 3, 2, 2, 2, 323, 324, 5, 80, 41, 2, 324, 325, 5, 78, 40, 2, 325, 326, 7, 64, 2, 2, 326, 328, 3, 2, 2, 2, 327, 319, 3, 2, 2, 2, 327, 323, 3, 2, 2, 2, 328, 77, 3, 2, 2, 2, 329, 330, 9, 4, 2, 2, 330, 79, 3, 2, 2, 2, 331, 334, 5, 82, 42, 2, 332, 334, 7, 63, 2, 2, 333, 331, 3, 2, 2, 2, 333, 332, 3, 2, 2, 2, 334, 81, 3, 2, 2, 2, 335, 336, 9, 5, 2, 2, 336, 83, 3, 2, 2, 2, 33, 85, 90, 94, 97, 100, 106, 126, 131, 134, 140, 147, 154, 158, 169, 175, 185, 189, 193, 204, 212, 216, 225, 241, 254, 259, 284, 294, 301, 311, 327, 333] \ No newline at end of file diff --git a/src/main/java/io/ebeaninternal/server/grammer/antlr/EQL.tokens b/src/main/java/io/ebeaninternal/server/grammer/antlr/EQL.tokens index a475c2939..4df1b445f 100644 --- a/src/main/java/io/ebeaninternal/server/grammer/antlr/EQL.tokens +++ b/src/main/java/io/ebeaninternal/server/grammer/antlr/EQL.tokens @@ -56,15 +56,17 @@ T__54=55 T__55=56 T__56=57 T__57=58 -INPUT_VARIABLE=59 -PATH_VARIABLE=60 -BOOLEAN_LITERAL=61 -NUMBER_LITERAL=62 -DOUBLE=63 -INT=64 -ZERO=65 -STRING_LITERAL=66 -WS=67 +T__58=59 +T__59=60 +INPUT_VARIABLE=61 +PATH_VARIABLE=62 +BOOLEAN_LITERAL=63 +NUMBER_LITERAL=64 +DOUBLE=65 +INT=66 +ZERO=67 +STRING_LITERAL=68 +WS=69 'select'=1 '('=2 ')'=3 @@ -89,38 +91,40 @@ WS=67 'not'=22 'in'=23 'between'=24 -'is'=25 -'null'=26 -'isNull'=27 -'isNotNull'=28 -'notNull'=29 -'empty'=30 -'isEmpty'=31 -'isNotEmpty'=32 -'notEmpty'=33 -'like'=34 -'ilike'=35 -'contains'=36 -'icontains'=37 -'startsWith'=38 -'istartsWith'=39 -'endsWith'=40 -'iendsWith'=41 -'='=42 -'eq'=43 -'>'=44 -'gt'=45 -'>='=46 -'ge'=47 -'gte'=48 -'<'=49 -'lt'=50 -'<='=51 -'le'=52 -'lte'=53 -'<>'=54 -'!='=55 -'ne'=56 -'ieq'=57 -'ine'=58 -'0'=65 +'inrange'=25 +'to'=26 +'is'=27 +'null'=28 +'isNull'=29 +'isNotNull'=30 +'notNull'=31 +'empty'=32 +'isEmpty'=33 +'isNotEmpty'=34 +'notEmpty'=35 +'like'=36 +'ilike'=37 +'contains'=38 +'icontains'=39 +'startsWith'=40 +'istartsWith'=41 +'endsWith'=42 +'iendsWith'=43 +'='=44 +'eq'=45 +'>'=46 +'gt'=47 +'>='=48 +'ge'=49 +'gte'=50 +'<'=51 +'lt'=52 +'<='=53 +'le'=54 +'lte'=55 +'<>'=56 +'!='=57 +'ne'=58 +'ieq'=59 +'ine'=60 +'0'=67 diff --git a/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLBaseListener.java b/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLBaseListener.java index 28d89cc14..70c9d6c27 100644 --- a/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLBaseListener.java +++ b/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLBaseListener.java @@ -1,4 +1,4 @@ -// Generated from C:/dev/ebean/ebean/src/test/resources/EQL.g4 by ANTLR 4.7.1 +// Generated from /home/rob/github/ebean-dir/ebean/src/test/resources/EQL.g4 by ANTLR 4.7.2 package io.ebeaninternal.server.grammer.antlr; import org.antlr.v4.runtime.ParserRuleContext; @@ -6,932 +6,526 @@ import org.antlr.v4.runtime.tree.ErrorNode; import org.antlr.v4.runtime.tree.TerminalNode; /** - * This class provides an empty implementation of {@link EQLListener}, which can - * be extended to create a listener which only needs to handle a subset of the - * available methods. + * This class provides an empty implementation of {@link EQLListener}, + * which can be extended to create a listener which only needs to handle a subset + * of the available methods. */ public class EQLBaseListener implements EQLListener { - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterSelect_statement(EQLParser.Select_statementContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitSelect_statement(EQLParser.Select_statementContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterSelect_clause(EQLParser.Select_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitSelect_clause(EQLParser.Select_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterDistinct(EQLParser.DistinctContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitDistinct(EQLParser.DistinctContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterFetch_clause(EQLParser.Fetch_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitFetch_clause(EQLParser.Fetch_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterWhere_clause(EQLParser.Where_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitWhere_clause(EQLParser.Where_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterOrderby_clause(EQLParser.Orderby_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitOrderby_clause(EQLParser.Orderby_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterOrderby_property(EQLParser.Orderby_propertyContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitOrderby_property(EQLParser.Orderby_propertyContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterNulls_firstlast(EQLParser.Nulls_firstlastContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitNulls_firstlast(EQLParser.Nulls_firstlastContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterAsc_desc(EQLParser.Asc_descContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitAsc_desc(EQLParser.Asc_descContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterLimit_clause(EQLParser.Limit_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitLimit_clause(EQLParser.Limit_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterOffset_clause(EQLParser.Offset_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitOffset_clause(EQLParser.Offset_clauseContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterFetch_path(EQLParser.Fetch_pathContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitFetch_path(EQLParser.Fetch_pathContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterFetch_property_set(EQLParser.Fetch_property_setContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitFetch_property_set(EQLParser.Fetch_property_setContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterFetch_property_group(EQLParser.Fetch_property_groupContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitFetch_property_group(EQLParser.Fetch_property_groupContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterFetch_property(EQLParser.Fetch_propertyContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitFetch_property(EQLParser.Fetch_propertyContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterFetch_query_hint(EQLParser.Fetch_query_hintContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitFetch_query_hint(EQLParser.Fetch_query_hintContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterFetch_lazy_hint(EQLParser.Fetch_lazy_hintContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitFetch_lazy_hint(EQLParser.Fetch_lazy_hintContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterFetch_option(EQLParser.Fetch_optionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitFetch_option(EQLParser.Fetch_optionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterFetch_query_option(EQLParser.Fetch_query_optionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitFetch_query_option(EQLParser.Fetch_query_optionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterFetch_lazy_option(EQLParser.Fetch_lazy_optionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitFetch_lazy_option(EQLParser.Fetch_lazy_optionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterFetch_batch_size(EQLParser.Fetch_batch_sizeContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitFetch_batch_size(EQLParser.Fetch_batch_sizeContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterConditional_expression(EQLParser.Conditional_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitConditional_expression(EQLParser.Conditional_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterConditional_term(EQLParser.Conditional_termContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitConditional_term(EQLParser.Conditional_termContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterConditional_factor(EQLParser.Conditional_factorContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitConditional_factor(EQLParser.Conditional_factorContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterConditional_primary(EQLParser.Conditional_primaryContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitConditional_primary(EQLParser.Conditional_primaryContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterAny_expression(EQLParser.Any_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitAny_expression(EQLParser.Any_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterIn_expression(EQLParser.In_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitIn_expression(EQLParser.In_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterIn_value(EQLParser.In_valueContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitIn_value(EQLParser.In_valueContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterBetween_expression(EQLParser.Between_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitBetween_expression(EQLParser.Between_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterPropertyBetween_expression(EQLParser.PropertyBetween_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitPropertyBetween_expression(EQLParser.PropertyBetween_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterIsNull_expression(EQLParser.IsNull_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitIsNull_expression(EQLParser.IsNull_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterIsNotNull_expression(EQLParser.IsNotNull_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitIsNotNull_expression(EQLParser.IsNotNull_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterIsEmpty_expression(EQLParser.IsEmpty_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitIsEmpty_expression(EQLParser.IsEmpty_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterIsNotEmpty_expression(EQLParser.IsNotEmpty_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitIsNotEmpty_expression(EQLParser.IsNotEmpty_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterLike_expression(EQLParser.Like_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitLike_expression(EQLParser.Like_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterLike_op(EQLParser.Like_opContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitLike_op(EQLParser.Like_opContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterComparison_expression(EQLParser.Comparison_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitComparison_expression(EQLParser.Comparison_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterComparison_operator(EQLParser.Comparison_operatorContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitComparison_operator(EQLParser.Comparison_operatorContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterValue_expression(EQLParser.Value_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitValue_expression(EQLParser.Value_expressionContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterLiteral(EQLParser.LiteralContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitLiteral(EQLParser.LiteralContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void enterEveryRule(ParserRuleContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void exitEveryRule(ParserRuleContext ctx) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void visitTerminal(TerminalNode node) { - } - - /** - * {@inheritDoc} - * - *

- * The default implementation does nothing. - *

- */ - @Override - public void visitErrorNode(ErrorNode node) { - } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSelect_statement(EQLParser.Select_statementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSelect_statement(EQLParser.Select_statementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSelect_clause(EQLParser.Select_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSelect_clause(EQLParser.Select_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDistinct(EQLParser.DistinctContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDistinct(EQLParser.DistinctContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFetch_clause(EQLParser.Fetch_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFetch_clause(EQLParser.Fetch_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWhere_clause(EQLParser.Where_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWhere_clause(EQLParser.Where_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOrderby_clause(EQLParser.Orderby_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOrderby_clause(EQLParser.Orderby_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOrderby_property(EQLParser.Orderby_propertyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOrderby_property(EQLParser.Orderby_propertyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNulls_firstlast(EQLParser.Nulls_firstlastContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNulls_firstlast(EQLParser.Nulls_firstlastContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAsc_desc(EQLParser.Asc_descContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAsc_desc(EQLParser.Asc_descContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLimit_clause(EQLParser.Limit_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLimit_clause(EQLParser.Limit_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOffset_clause(EQLParser.Offset_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOffset_clause(EQLParser.Offset_clauseContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFetch_path(EQLParser.Fetch_pathContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFetch_path(EQLParser.Fetch_pathContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFetch_property_set(EQLParser.Fetch_property_setContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFetch_property_set(EQLParser.Fetch_property_setContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFetch_property_group(EQLParser.Fetch_property_groupContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFetch_property_group(EQLParser.Fetch_property_groupContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFetch_property(EQLParser.Fetch_propertyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFetch_property(EQLParser.Fetch_propertyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFetch_query_hint(EQLParser.Fetch_query_hintContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFetch_query_hint(EQLParser.Fetch_query_hintContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFetch_lazy_hint(EQLParser.Fetch_lazy_hintContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFetch_lazy_hint(EQLParser.Fetch_lazy_hintContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFetch_option(EQLParser.Fetch_optionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFetch_option(EQLParser.Fetch_optionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFetch_query_option(EQLParser.Fetch_query_optionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFetch_query_option(EQLParser.Fetch_query_optionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFetch_lazy_option(EQLParser.Fetch_lazy_optionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFetch_lazy_option(EQLParser.Fetch_lazy_optionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFetch_batch_size(EQLParser.Fetch_batch_sizeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFetch_batch_size(EQLParser.Fetch_batch_sizeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConditional_expression(EQLParser.Conditional_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConditional_expression(EQLParser.Conditional_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConditional_term(EQLParser.Conditional_termContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConditional_term(EQLParser.Conditional_termContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConditional_factor(EQLParser.Conditional_factorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConditional_factor(EQLParser.Conditional_factorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConditional_primary(EQLParser.Conditional_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConditional_primary(EQLParser.Conditional_primaryContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAny_expression(EQLParser.Any_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAny_expression(EQLParser.Any_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIn_expression(EQLParser.In_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIn_expression(EQLParser.In_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIn_value(EQLParser.In_valueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIn_value(EQLParser.In_valueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBetween_expression(EQLParser.Between_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBetween_expression(EQLParser.Between_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInrange_expression(EQLParser.Inrange_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInrange_expression(EQLParser.Inrange_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPropertyBetween_expression(EQLParser.PropertyBetween_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPropertyBetween_expression(EQLParser.PropertyBetween_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIsNull_expression(EQLParser.IsNull_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIsNull_expression(EQLParser.IsNull_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIsNotNull_expression(EQLParser.IsNotNull_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIsNotNull_expression(EQLParser.IsNotNull_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIsEmpty_expression(EQLParser.IsEmpty_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIsEmpty_expression(EQLParser.IsEmpty_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIsNotEmpty_expression(EQLParser.IsNotEmpty_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIsNotEmpty_expression(EQLParser.IsNotEmpty_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLike_expression(EQLParser.Like_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLike_expression(EQLParser.Like_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLike_op(EQLParser.Like_opContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLike_op(EQLParser.Like_opContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterComparison_expression(EQLParser.Comparison_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitComparison_expression(EQLParser.Comparison_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterComparison_operator(EQLParser.Comparison_operatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitComparison_operator(EQLParser.Comparison_operatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterValue_expression(EQLParser.Value_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitValue_expression(EQLParser.Value_expressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLiteral(EQLParser.LiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLiteral(EQLParser.LiteralContext ctx) { } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEveryRule(ParserRuleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEveryRule(ParserRuleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void visitTerminal(TerminalNode node) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void visitErrorNode(ErrorNode node) { } } \ No newline at end of file diff --git a/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLLexer.interp b/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLLexer.interp new file mode 100644 index 000000000..f7e626b43 --- /dev/null +++ b/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLLexer.interp @@ -0,0 +1,224 @@ +token literal names: +null +'select' +'(' +')' +'distinct' +'where' +'order' +'by' +',' +'nulls' +'first' +'last' +'asc' +'desc' +'limit' +'offset' +'fetch' +'+' +'query' +'lazy' +'or' +'and' +'not' +'in' +'between' +'inrange' +'to' +'is' +'null' +'isNull' +'isNotNull' +'notNull' +'empty' +'isEmpty' +'isNotEmpty' +'notEmpty' +'like' +'ilike' +'contains' +'icontains' +'startsWith' +'istartsWith' +'endsWith' +'iendsWith' +'=' +'eq' +'>' +'gt' +'>=' +'ge' +'gte' +'<' +'lt' +'<=' +'le' +'lte' +'<>' +'!=' +'ne' +'ieq' +'ine' +null +null +null +null +null +null +'0' +null +null + +token symbolic names: +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +INPUT_VARIABLE +PATH_VARIABLE +BOOLEAN_LITERAL +NUMBER_LITERAL +DOUBLE +INT +ZERO +STRING_LITERAL +WS + +rule names: +T__0 +T__1 +T__2 +T__3 +T__4 +T__5 +T__6 +T__7 +T__8 +T__9 +T__10 +T__11 +T__12 +T__13 +T__14 +T__15 +T__16 +T__17 +T__18 +T__19 +T__20 +T__21 +T__22 +T__23 +T__24 +T__25 +T__26 +T__27 +T__28 +T__29 +T__30 +T__31 +T__32 +T__33 +T__34 +T__35 +T__36 +T__37 +T__38 +T__39 +T__40 +T__41 +T__42 +T__43 +T__44 +T__45 +T__46 +T__47 +T__48 +T__49 +T__50 +T__51 +T__52 +T__53 +T__54 +T__55 +T__56 +T__57 +T__58 +T__59 +INPUT_VARIABLE +PATH_VARIABLE +BOOLEAN_LITERAL +NUMBER_LITERAL +DOUBLE +INT +ZERO +STRING_LITERAL +WS + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 71, 533, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 7, 62, 464, 10, 62, 12, 62, 14, 62, 467, 11, 62, 3, 63, 3, 63, 7, 63, 471, 10, 63, 12, 63, 14, 63, 474, 11, 63, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 5, 64, 485, 10, 64, 3, 65, 5, 65, 488, 10, 65, 3, 65, 3, 65, 5, 65, 492, 10, 65, 3, 65, 3, 65, 5, 65, 496, 10, 65, 3, 66, 6, 66, 499, 10, 66, 13, 66, 14, 66, 500, 3, 66, 3, 66, 7, 66, 505, 10, 66, 12, 66, 14, 66, 508, 11, 66, 3, 67, 3, 67, 7, 67, 512, 10, 67, 12, 67, 14, 67, 515, 11, 67, 3, 68, 3, 68, 3, 69, 3, 69, 3, 69, 3, 69, 7, 69, 523, 10, 69, 12, 69, 14, 69, 526, 11, 69, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 70, 2, 2, 71, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24, 47, 25, 49, 26, 51, 27, 53, 28, 55, 29, 57, 30, 59, 31, 61, 32, 63, 33, 65, 34, 67, 35, 69, 36, 71, 37, 73, 38, 75, 39, 77, 40, 79, 41, 81, 42, 83, 43, 85, 44, 87, 45, 89, 46, 91, 47, 93, 48, 95, 49, 97, 50, 99, 51, 101, 52, 103, 53, 105, 54, 107, 55, 109, 56, 111, 57, 113, 58, 115, 59, 117, 60, 119, 61, 121, 62, 123, 63, 125, 64, 127, 65, 129, 66, 131, 67, 133, 68, 135, 69, 137, 70, 139, 71, 3, 2, 9, 5, 2, 67, 92, 97, 97, 99, 124, 6, 2, 50, 59, 67, 92, 97, 97, 99, 124, 7, 2, 48, 48, 50, 59, 67, 92, 97, 97, 99, 124, 3, 2, 50, 59, 3, 2, 51, 59, 3, 2, 41, 41, 5, 2, 11, 12, 15, 15, 34, 34, 2, 544, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 2, 73, 3, 2, 2, 2, 2, 75, 3, 2, 2, 2, 2, 77, 3, 2, 2, 2, 2, 79, 3, 2, 2, 2, 2, 81, 3, 2, 2, 2, 2, 83, 3, 2, 2, 2, 2, 85, 3, 2, 2, 2, 2, 87, 3, 2, 2, 2, 2, 89, 3, 2, 2, 2, 2, 91, 3, 2, 2, 2, 2, 93, 3, 2, 2, 2, 2, 95, 3, 2, 2, 2, 2, 97, 3, 2, 2, 2, 2, 99, 3, 2, 2, 2, 2, 101, 3, 2, 2, 2, 2, 103, 3, 2, 2, 2, 2, 105, 3, 2, 2, 2, 2, 107, 3, 2, 2, 2, 2, 109, 3, 2, 2, 2, 2, 111, 3, 2, 2, 2, 2, 113, 3, 2, 2, 2, 2, 115, 3, 2, 2, 2, 2, 117, 3, 2, 2, 2, 2, 119, 3, 2, 2, 2, 2, 121, 3, 2, 2, 2, 2, 123, 3, 2, 2, 2, 2, 125, 3, 2, 2, 2, 2, 127, 3, 2, 2, 2, 2, 129, 3, 2, 2, 2, 2, 131, 3, 2, 2, 2, 2, 133, 3, 2, 2, 2, 2, 135, 3, 2, 2, 2, 2, 137, 3, 2, 2, 2, 2, 139, 3, 2, 2, 2, 3, 141, 3, 2, 2, 2, 5, 148, 3, 2, 2, 2, 7, 150, 3, 2, 2, 2, 9, 152, 3, 2, 2, 2, 11, 161, 3, 2, 2, 2, 13, 167, 3, 2, 2, 2, 15, 173, 3, 2, 2, 2, 17, 176, 3, 2, 2, 2, 19, 178, 3, 2, 2, 2, 21, 184, 3, 2, 2, 2, 23, 190, 3, 2, 2, 2, 25, 195, 3, 2, 2, 2, 27, 199, 3, 2, 2, 2, 29, 204, 3, 2, 2, 2, 31, 210, 3, 2, 2, 2, 33, 217, 3, 2, 2, 2, 35, 223, 3, 2, 2, 2, 37, 225, 3, 2, 2, 2, 39, 231, 3, 2, 2, 2, 41, 236, 3, 2, 2, 2, 43, 239, 3, 2, 2, 2, 45, 243, 3, 2, 2, 2, 47, 247, 3, 2, 2, 2, 49, 250, 3, 2, 2, 2, 51, 258, 3, 2, 2, 2, 53, 266, 3, 2, 2, 2, 55, 269, 3, 2, 2, 2, 57, 272, 3, 2, 2, 2, 59, 277, 3, 2, 2, 2, 61, 284, 3, 2, 2, 2, 63, 294, 3, 2, 2, 2, 65, 302, 3, 2, 2, 2, 67, 308, 3, 2, 2, 2, 69, 316, 3, 2, 2, 2, 71, 327, 3, 2, 2, 2, 73, 336, 3, 2, 2, 2, 75, 341, 3, 2, 2, 2, 77, 347, 3, 2, 2, 2, 79, 356, 3, 2, 2, 2, 81, 366, 3, 2, 2, 2, 83, 377, 3, 2, 2, 2, 85, 389, 3, 2, 2, 2, 87, 398, 3, 2, 2, 2, 89, 408, 3, 2, 2, 2, 91, 410, 3, 2, 2, 2, 93, 413, 3, 2, 2, 2, 95, 415, 3, 2, 2, 2, 97, 418, 3, 2, 2, 2, 99, 421, 3, 2, 2, 2, 101, 424, 3, 2, 2, 2, 103, 428, 3, 2, 2, 2, 105, 430, 3, 2, 2, 2, 107, 433, 3, 2, 2, 2, 109, 436, 3, 2, 2, 2, 111, 439, 3, 2, 2, 2, 113, 443, 3, 2, 2, 2, 115, 446, 3, 2, 2, 2, 117, 449, 3, 2, 2, 2, 119, 452, 3, 2, 2, 2, 121, 456, 3, 2, 2, 2, 123, 460, 3, 2, 2, 2, 125, 468, 3, 2, 2, 2, 127, 484, 3, 2, 2, 2, 129, 495, 3, 2, 2, 2, 131, 498, 3, 2, 2, 2, 133, 509, 3, 2, 2, 2, 135, 516, 3, 2, 2, 2, 137, 518, 3, 2, 2, 2, 139, 529, 3, 2, 2, 2, 141, 142, 7, 117, 2, 2, 142, 143, 7, 103, 2, 2, 143, 144, 7, 110, 2, 2, 144, 145, 7, 103, 2, 2, 145, 146, 7, 101, 2, 2, 146, 147, 7, 118, 2, 2, 147, 4, 3, 2, 2, 2, 148, 149, 7, 42, 2, 2, 149, 6, 3, 2, 2, 2, 150, 151, 7, 43, 2, 2, 151, 8, 3, 2, 2, 2, 152, 153, 7, 102, 2, 2, 153, 154, 7, 107, 2, 2, 154, 155, 7, 117, 2, 2, 155, 156, 7, 118, 2, 2, 156, 157, 7, 107, 2, 2, 157, 158, 7, 112, 2, 2, 158, 159, 7, 101, 2, 2, 159, 160, 7, 118, 2, 2, 160, 10, 3, 2, 2, 2, 161, 162, 7, 121, 2, 2, 162, 163, 7, 106, 2, 2, 163, 164, 7, 103, 2, 2, 164, 165, 7, 116, 2, 2, 165, 166, 7, 103, 2, 2, 166, 12, 3, 2, 2, 2, 167, 168, 7, 113, 2, 2, 168, 169, 7, 116, 2, 2, 169, 170, 7, 102, 2, 2, 170, 171, 7, 103, 2, 2, 171, 172, 7, 116, 2, 2, 172, 14, 3, 2, 2, 2, 173, 174, 7, 100, 2, 2, 174, 175, 7, 123, 2, 2, 175, 16, 3, 2, 2, 2, 176, 177, 7, 46, 2, 2, 177, 18, 3, 2, 2, 2, 178, 179, 7, 112, 2, 2, 179, 180, 7, 119, 2, 2, 180, 181, 7, 110, 2, 2, 181, 182, 7, 110, 2, 2, 182, 183, 7, 117, 2, 2, 183, 20, 3, 2, 2, 2, 184, 185, 7, 104, 2, 2, 185, 186, 7, 107, 2, 2, 186, 187, 7, 116, 2, 2, 187, 188, 7, 117, 2, 2, 188, 189, 7, 118, 2, 2, 189, 22, 3, 2, 2, 2, 190, 191, 7, 110, 2, 2, 191, 192, 7, 99, 2, 2, 192, 193, 7, 117, 2, 2, 193, 194, 7, 118, 2, 2, 194, 24, 3, 2, 2, 2, 195, 196, 7, 99, 2, 2, 196, 197, 7, 117, 2, 2, 197, 198, 7, 101, 2, 2, 198, 26, 3, 2, 2, 2, 199, 200, 7, 102, 2, 2, 200, 201, 7, 103, 2, 2, 201, 202, 7, 117, 2, 2, 202, 203, 7, 101, 2, 2, 203, 28, 3, 2, 2, 2, 204, 205, 7, 110, 2, 2, 205, 206, 7, 107, 2, 2, 206, 207, 7, 111, 2, 2, 207, 208, 7, 107, 2, 2, 208, 209, 7, 118, 2, 2, 209, 30, 3, 2, 2, 2, 210, 211, 7, 113, 2, 2, 211, 212, 7, 104, 2, 2, 212, 213, 7, 104, 2, 2, 213, 214, 7, 117, 2, 2, 214, 215, 7, 103, 2, 2, 215, 216, 7, 118, 2, 2, 216, 32, 3, 2, 2, 2, 217, 218, 7, 104, 2, 2, 218, 219, 7, 103, 2, 2, 219, 220, 7, 118, 2, 2, 220, 221, 7, 101, 2, 2, 221, 222, 7, 106, 2, 2, 222, 34, 3, 2, 2, 2, 223, 224, 7, 45, 2, 2, 224, 36, 3, 2, 2, 2, 225, 226, 7, 115, 2, 2, 226, 227, 7, 119, 2, 2, 227, 228, 7, 103, 2, 2, 228, 229, 7, 116, 2, 2, 229, 230, 7, 123, 2, 2, 230, 38, 3, 2, 2, 2, 231, 232, 7, 110, 2, 2, 232, 233, 7, 99, 2, 2, 233, 234, 7, 124, 2, 2, 234, 235, 7, 123, 2, 2, 235, 40, 3, 2, 2, 2, 236, 237, 7, 113, 2, 2, 237, 238, 7, 116, 2, 2, 238, 42, 3, 2, 2, 2, 239, 240, 7, 99, 2, 2, 240, 241, 7, 112, 2, 2, 241, 242, 7, 102, 2, 2, 242, 44, 3, 2, 2, 2, 243, 244, 7, 112, 2, 2, 244, 245, 7, 113, 2, 2, 245, 246, 7, 118, 2, 2, 246, 46, 3, 2, 2, 2, 247, 248, 7, 107, 2, 2, 248, 249, 7, 112, 2, 2, 249, 48, 3, 2, 2, 2, 250, 251, 7, 100, 2, 2, 251, 252, 7, 103, 2, 2, 252, 253, 7, 118, 2, 2, 253, 254, 7, 121, 2, 2, 254, 255, 7, 103, 2, 2, 255, 256, 7, 103, 2, 2, 256, 257, 7, 112, 2, 2, 257, 50, 3, 2, 2, 2, 258, 259, 7, 107, 2, 2, 259, 260, 7, 112, 2, 2, 260, 261, 7, 116, 2, 2, 261, 262, 7, 99, 2, 2, 262, 263, 7, 112, 2, 2, 263, 264, 7, 105, 2, 2, 264, 265, 7, 103, 2, 2, 265, 52, 3, 2, 2, 2, 266, 267, 7, 118, 2, 2, 267, 268, 7, 113, 2, 2, 268, 54, 3, 2, 2, 2, 269, 270, 7, 107, 2, 2, 270, 271, 7, 117, 2, 2, 271, 56, 3, 2, 2, 2, 272, 273, 7, 112, 2, 2, 273, 274, 7, 119, 2, 2, 274, 275, 7, 110, 2, 2, 275, 276, 7, 110, 2, 2, 276, 58, 3, 2, 2, 2, 277, 278, 7, 107, 2, 2, 278, 279, 7, 117, 2, 2, 279, 280, 7, 80, 2, 2, 280, 281, 7, 119, 2, 2, 281, 282, 7, 110, 2, 2, 282, 283, 7, 110, 2, 2, 283, 60, 3, 2, 2, 2, 284, 285, 7, 107, 2, 2, 285, 286, 7, 117, 2, 2, 286, 287, 7, 80, 2, 2, 287, 288, 7, 113, 2, 2, 288, 289, 7, 118, 2, 2, 289, 290, 7, 80, 2, 2, 290, 291, 7, 119, 2, 2, 291, 292, 7, 110, 2, 2, 292, 293, 7, 110, 2, 2, 293, 62, 3, 2, 2, 2, 294, 295, 7, 112, 2, 2, 295, 296, 7, 113, 2, 2, 296, 297, 7, 118, 2, 2, 297, 298, 7, 80, 2, 2, 298, 299, 7, 119, 2, 2, 299, 300, 7, 110, 2, 2, 300, 301, 7, 110, 2, 2, 301, 64, 3, 2, 2, 2, 302, 303, 7, 103, 2, 2, 303, 304, 7, 111, 2, 2, 304, 305, 7, 114, 2, 2, 305, 306, 7, 118, 2, 2, 306, 307, 7, 123, 2, 2, 307, 66, 3, 2, 2, 2, 308, 309, 7, 107, 2, 2, 309, 310, 7, 117, 2, 2, 310, 311, 7, 71, 2, 2, 311, 312, 7, 111, 2, 2, 312, 313, 7, 114, 2, 2, 313, 314, 7, 118, 2, 2, 314, 315, 7, 123, 2, 2, 315, 68, 3, 2, 2, 2, 316, 317, 7, 107, 2, 2, 317, 318, 7, 117, 2, 2, 318, 319, 7, 80, 2, 2, 319, 320, 7, 113, 2, 2, 320, 321, 7, 118, 2, 2, 321, 322, 7, 71, 2, 2, 322, 323, 7, 111, 2, 2, 323, 324, 7, 114, 2, 2, 324, 325, 7, 118, 2, 2, 325, 326, 7, 123, 2, 2, 326, 70, 3, 2, 2, 2, 327, 328, 7, 112, 2, 2, 328, 329, 7, 113, 2, 2, 329, 330, 7, 118, 2, 2, 330, 331, 7, 71, 2, 2, 331, 332, 7, 111, 2, 2, 332, 333, 7, 114, 2, 2, 333, 334, 7, 118, 2, 2, 334, 335, 7, 123, 2, 2, 335, 72, 3, 2, 2, 2, 336, 337, 7, 110, 2, 2, 337, 338, 7, 107, 2, 2, 338, 339, 7, 109, 2, 2, 339, 340, 7, 103, 2, 2, 340, 74, 3, 2, 2, 2, 341, 342, 7, 107, 2, 2, 342, 343, 7, 110, 2, 2, 343, 344, 7, 107, 2, 2, 344, 345, 7, 109, 2, 2, 345, 346, 7, 103, 2, 2, 346, 76, 3, 2, 2, 2, 347, 348, 7, 101, 2, 2, 348, 349, 7, 113, 2, 2, 349, 350, 7, 112, 2, 2, 350, 351, 7, 118, 2, 2, 351, 352, 7, 99, 2, 2, 352, 353, 7, 107, 2, 2, 353, 354, 7, 112, 2, 2, 354, 355, 7, 117, 2, 2, 355, 78, 3, 2, 2, 2, 356, 357, 7, 107, 2, 2, 357, 358, 7, 101, 2, 2, 358, 359, 7, 113, 2, 2, 359, 360, 7, 112, 2, 2, 360, 361, 7, 118, 2, 2, 361, 362, 7, 99, 2, 2, 362, 363, 7, 107, 2, 2, 363, 364, 7, 112, 2, 2, 364, 365, 7, 117, 2, 2, 365, 80, 3, 2, 2, 2, 366, 367, 7, 117, 2, 2, 367, 368, 7, 118, 2, 2, 368, 369, 7, 99, 2, 2, 369, 370, 7, 116, 2, 2, 370, 371, 7, 118, 2, 2, 371, 372, 7, 117, 2, 2, 372, 373, 7, 89, 2, 2, 373, 374, 7, 107, 2, 2, 374, 375, 7, 118, 2, 2, 375, 376, 7, 106, 2, 2, 376, 82, 3, 2, 2, 2, 377, 378, 7, 107, 2, 2, 378, 379, 7, 117, 2, 2, 379, 380, 7, 118, 2, 2, 380, 381, 7, 99, 2, 2, 381, 382, 7, 116, 2, 2, 382, 383, 7, 118, 2, 2, 383, 384, 7, 117, 2, 2, 384, 385, 7, 89, 2, 2, 385, 386, 7, 107, 2, 2, 386, 387, 7, 118, 2, 2, 387, 388, 7, 106, 2, 2, 388, 84, 3, 2, 2, 2, 389, 390, 7, 103, 2, 2, 390, 391, 7, 112, 2, 2, 391, 392, 7, 102, 2, 2, 392, 393, 7, 117, 2, 2, 393, 394, 7, 89, 2, 2, 394, 395, 7, 107, 2, 2, 395, 396, 7, 118, 2, 2, 396, 397, 7, 106, 2, 2, 397, 86, 3, 2, 2, 2, 398, 399, 7, 107, 2, 2, 399, 400, 7, 103, 2, 2, 400, 401, 7, 112, 2, 2, 401, 402, 7, 102, 2, 2, 402, 403, 7, 117, 2, 2, 403, 404, 7, 89, 2, 2, 404, 405, 7, 107, 2, 2, 405, 406, 7, 118, 2, 2, 406, 407, 7, 106, 2, 2, 407, 88, 3, 2, 2, 2, 408, 409, 7, 63, 2, 2, 409, 90, 3, 2, 2, 2, 410, 411, 7, 103, 2, 2, 411, 412, 7, 115, 2, 2, 412, 92, 3, 2, 2, 2, 413, 414, 7, 64, 2, 2, 414, 94, 3, 2, 2, 2, 415, 416, 7, 105, 2, 2, 416, 417, 7, 118, 2, 2, 417, 96, 3, 2, 2, 2, 418, 419, 7, 64, 2, 2, 419, 420, 7, 63, 2, 2, 420, 98, 3, 2, 2, 2, 421, 422, 7, 105, 2, 2, 422, 423, 7, 103, 2, 2, 423, 100, 3, 2, 2, 2, 424, 425, 7, 105, 2, 2, 425, 426, 7, 118, 2, 2, 426, 427, 7, 103, 2, 2, 427, 102, 3, 2, 2, 2, 428, 429, 7, 62, 2, 2, 429, 104, 3, 2, 2, 2, 430, 431, 7, 110, 2, 2, 431, 432, 7, 118, 2, 2, 432, 106, 3, 2, 2, 2, 433, 434, 7, 62, 2, 2, 434, 435, 7, 63, 2, 2, 435, 108, 3, 2, 2, 2, 436, 437, 7, 110, 2, 2, 437, 438, 7, 103, 2, 2, 438, 110, 3, 2, 2, 2, 439, 440, 7, 110, 2, 2, 440, 441, 7, 118, 2, 2, 441, 442, 7, 103, 2, 2, 442, 112, 3, 2, 2, 2, 443, 444, 7, 62, 2, 2, 444, 445, 7, 64, 2, 2, 445, 114, 3, 2, 2, 2, 446, 447, 7, 35, 2, 2, 447, 448, 7, 63, 2, 2, 448, 116, 3, 2, 2, 2, 449, 450, 7, 112, 2, 2, 450, 451, 7, 103, 2, 2, 451, 118, 3, 2, 2, 2, 452, 453, 7, 107, 2, 2, 453, 454, 7, 103, 2, 2, 454, 455, 7, 115, 2, 2, 455, 120, 3, 2, 2, 2, 456, 457, 7, 107, 2, 2, 457, 458, 7, 112, 2, 2, 458, 459, 7, 103, 2, 2, 459, 122, 3, 2, 2, 2, 460, 461, 7, 60, 2, 2, 461, 465, 9, 2, 2, 2, 462, 464, 9, 3, 2, 2, 463, 462, 3, 2, 2, 2, 464, 467, 3, 2, 2, 2, 465, 463, 3, 2, 2, 2, 465, 466, 3, 2, 2, 2, 466, 124, 3, 2, 2, 2, 467, 465, 3, 2, 2, 2, 468, 472, 9, 2, 2, 2, 469, 471, 9, 4, 2, 2, 470, 469, 3, 2, 2, 2, 471, 474, 3, 2, 2, 2, 472, 470, 3, 2, 2, 2, 472, 473, 3, 2, 2, 2, 473, 126, 3, 2, 2, 2, 474, 472, 3, 2, 2, 2, 475, 476, 7, 118, 2, 2, 476, 477, 7, 116, 2, 2, 477, 478, 7, 119, 2, 2, 478, 485, 7, 103, 2, 2, 479, 480, 7, 104, 2, 2, 480, 481, 7, 99, 2, 2, 481, 482, 7, 110, 2, 2, 482, 483, 7, 117, 2, 2, 483, 485, 7, 103, 2, 2, 484, 475, 3, 2, 2, 2, 484, 479, 3, 2, 2, 2, 485, 128, 3, 2, 2, 2, 486, 488, 7, 47, 2, 2, 487, 486, 3, 2, 2, 2, 487, 488, 3, 2, 2, 2, 488, 489, 3, 2, 2, 2, 489, 496, 5, 131, 66, 2, 490, 492, 7, 47, 2, 2, 491, 490, 3, 2, 2, 2, 491, 492, 3, 2, 2, 2, 492, 493, 3, 2, 2, 2, 493, 496, 5, 133, 67, 2, 494, 496, 5, 135, 68, 2, 495, 487, 3, 2, 2, 2, 495, 491, 3, 2, 2, 2, 495, 494, 3, 2, 2, 2, 496, 130, 3, 2, 2, 2, 497, 499, 9, 5, 2, 2, 498, 497, 3, 2, 2, 2, 499, 500, 3, 2, 2, 2, 500, 498, 3, 2, 2, 2, 500, 501, 3, 2, 2, 2, 501, 502, 3, 2, 2, 2, 502, 506, 7, 48, 2, 2, 503, 505, 9, 5, 2, 2, 504, 503, 3, 2, 2, 2, 505, 508, 3, 2, 2, 2, 506, 504, 3, 2, 2, 2, 506, 507, 3, 2, 2, 2, 507, 132, 3, 2, 2, 2, 508, 506, 3, 2, 2, 2, 509, 513, 9, 6, 2, 2, 510, 512, 9, 5, 2, 2, 511, 510, 3, 2, 2, 2, 512, 515, 3, 2, 2, 2, 513, 511, 3, 2, 2, 2, 513, 514, 3, 2, 2, 2, 514, 134, 3, 2, 2, 2, 515, 513, 3, 2, 2, 2, 516, 517, 7, 50, 2, 2, 517, 136, 3, 2, 2, 2, 518, 524, 7, 41, 2, 2, 519, 523, 10, 7, 2, 2, 520, 521, 7, 41, 2, 2, 521, 523, 7, 41, 2, 2, 522, 519, 3, 2, 2, 2, 522, 520, 3, 2, 2, 2, 523, 526, 3, 2, 2, 2, 524, 522, 3, 2, 2, 2, 524, 525, 3, 2, 2, 2, 525, 527, 3, 2, 2, 2, 526, 524, 3, 2, 2, 2, 527, 528, 7, 41, 2, 2, 528, 138, 3, 2, 2, 2, 529, 530, 9, 8, 2, 2, 530, 531, 3, 2, 2, 2, 531, 532, 8, 70, 2, 2, 532, 140, 3, 2, 2, 2, 14, 2, 465, 472, 484, 487, 491, 495, 500, 506, 513, 522, 524, 3, 8, 2, 2] \ No newline at end of file diff --git a/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLLexer.java b/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLLexer.java index 7dc2d8101..e67271b29 100644 --- a/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLLexer.java +++ b/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLLexer.java @@ -1,4 +1,4 @@ -// Generated from C:/dev/ebean/ebean/src/test/resources/EQL.g4 by ANTLR 4.7.1 +// Generated from /home/rob/github/ebean-dir/ebean/src/test/resources/EQL.g4 by ANTLR 4.7.2 package io.ebeaninternal.server.grammer.antlr; import org.antlr.v4.runtime.CharStream; @@ -12,286 +12,309 @@ import org.antlr.v4.runtime.atn.LexerATNSimulator; import org.antlr.v4.runtime.atn.PredictionContextCache; import org.antlr.v4.runtime.dfa.DFA; -@SuppressWarnings({ "all", "warnings", "unchecked", "unused", "cast" }) +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) public class EQLLexer extends Lexer { - static { - RuntimeMetaData.checkVersion("4.7.1", RuntimeMetaData.VERSION); - } + static { RuntimeMetaData.checkVersion("4.7.2", RuntimeMetaData.VERSION); } - protected static final DFA[] _decisionToDFA; - protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache(); - public static final int T__0 = 1, T__1 = 2, T__2 = 3, T__3 = 4, T__4 = 5, T__5 = 6, T__6 = 7, T__7 = 8, T__8 = 9, - T__9 = 10, T__10 = 11, T__11 = 12, T__12 = 13, T__13 = 14, T__14 = 15, T__15 = 16, T__16 = 17, T__17 = 18, - T__18 = 19, T__19 = 20, T__20 = 21, T__21 = 22, T__22 = 23, T__23 = 24, T__24 = 25, T__25 = 26, T__26 = 27, - T__27 = 28, T__28 = 29, T__29 = 30, T__30 = 31, T__31 = 32, T__32 = 33, T__33 = 34, T__34 = 35, T__35 = 36, - T__36 = 37, T__37 = 38, T__38 = 39, T__39 = 40, T__40 = 41, T__41 = 42, T__42 = 43, T__43 = 44, T__44 = 45, - T__45 = 46, T__46 = 47, T__47 = 48, T__48 = 49, T__49 = 50, T__50 = 51, T__51 = 52, T__52 = 53, T__53 = 54, - T__54 = 55, T__55 = 56, T__56 = 57, T__57 = 58, INPUT_VARIABLE = 59, PATH_VARIABLE = 60, BOOLEAN_LITERAL = 61, - NUMBER_LITERAL = 62, DOUBLE = 63, INT = 64, ZERO = 65, STRING_LITERAL = 66, WS = 67; - public static String[] channelNames = { "DEFAULT_TOKEN_CHANNEL", "HIDDEN" }; + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, + T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17, + T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24, + T__24=25, T__25=26, T__26=27, T__27=28, T__28=29, T__29=30, T__30=31, + T__31=32, T__32=33, T__33=34, T__34=35, T__35=36, T__36=37, T__37=38, + T__38=39, T__39=40, T__40=41, T__41=42, T__42=43, T__43=44, T__44=45, + T__45=46, T__46=47, T__47=48, T__48=49, T__49=50, T__50=51, T__51=52, + T__52=53, T__53=54, T__54=55, T__55=56, T__56=57, T__57=58, T__58=59, + T__59=60, INPUT_VARIABLE=61, PATH_VARIABLE=62, BOOLEAN_LITERAL=63, NUMBER_LITERAL=64, + DOUBLE=65, INT=66, ZERO=67, STRING_LITERAL=68, WS=69; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; - public static String[] modeNames = { "DEFAULT_MODE" }; + public static String[] modeNames = { + "DEFAULT_MODE" + }; - public static final String[] ruleNames = { "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", - "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16", "T__17", "T__18", "T__19", "T__20", - "T__21", "T__22", "T__23", "T__24", "T__25", "T__26", "T__27", "T__28", "T__29", "T__30", "T__31", "T__32", - "T__33", "T__34", "T__35", "T__36", "T__37", "T__38", "T__39", "T__40", "T__41", "T__42", "T__43", "T__44", - "T__45", "T__46", "T__47", "T__48", "T__49", "T__50", "T__51", "T__52", "T__53", "T__54", "T__55", "T__56", - "T__57", "INPUT_VARIABLE", "PATH_VARIABLE", "BOOLEAN_LITERAL", "NUMBER_LITERAL", "DOUBLE", "INT", "ZERO", - "STRING_LITERAL", "WS" }; + private static String[] makeRuleNames() { + return new String[] { + "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", + "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16", + "T__17", "T__18", "T__19", "T__20", "T__21", "T__22", "T__23", "T__24", + "T__25", "T__26", "T__27", "T__28", "T__29", "T__30", "T__31", "T__32", + "T__33", "T__34", "T__35", "T__36", "T__37", "T__38", "T__39", "T__40", + "T__41", "T__42", "T__43", "T__44", "T__45", "T__46", "T__47", "T__48", + "T__49", "T__50", "T__51", "T__52", "T__53", "T__54", "T__55", "T__56", + "T__57", "T__58", "T__59", "INPUT_VARIABLE", "PATH_VARIABLE", "BOOLEAN_LITERAL", + "NUMBER_LITERAL", "DOUBLE", "INT", "ZERO", "STRING_LITERAL", "WS" + }; + } + public static final String[] ruleNames = makeRuleNames(); - private static final String[] _LITERAL_NAMES = { null, "'select'", "'('", "')'", "'distinct'", "'where'", "'order'", - "'by'", "','", "'nulls'", "'first'", "'last'", "'asc'", "'desc'", "'limit'", "'offset'", "'fetch'", "'+'", - "'query'", "'lazy'", "'or'", "'and'", "'not'", "'in'", "'between'", "'is'", "'null'", "'isNull'", "'isNotNull'", - "'notNull'", "'empty'", "'isEmpty'", "'isNotEmpty'", "'notEmpty'", "'like'", "'ilike'", "'contains'", - "'icontains'", "'startsWith'", "'istartsWith'", "'endsWith'", "'iendsWith'", "'='", "'eq'", "'>'", "'gt'", "'>='", - "'ge'", "'gte'", "'<'", "'lt'", "'<='", "'le'", "'lte'", "'<>'", "'!='", "'ne'", "'ieq'", "'ine'", null, null, - null, null, null, null, "'0'" }; - private static final String[] _SYMBOLIC_NAMES = { null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, "INPUT_VARIABLE", "PATH_VARIABLE", "BOOLEAN_LITERAL", - "NUMBER_LITERAL", "DOUBLE", "INT", "ZERO", "STRING_LITERAL", "WS" }; - public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + private static String[] makeLiteralNames() { + return new String[] { + null, "'select'", "'('", "')'", "'distinct'", "'where'", "'order'", "'by'", + "','", "'nulls'", "'first'", "'last'", "'asc'", "'desc'", "'limit'", + "'offset'", "'fetch'", "'+'", "'query'", "'lazy'", "'or'", "'and'", "'not'", + "'in'", "'between'", "'inrange'", "'to'", "'is'", "'null'", "'isNull'", + "'isNotNull'", "'notNull'", "'empty'", "'isEmpty'", "'isNotEmpty'", "'notEmpty'", + "'like'", "'ilike'", "'contains'", "'icontains'", "'startsWith'", "'istartsWith'", + "'endsWith'", "'iendsWith'", "'='", "'eq'", "'>'", "'gt'", "'>='", "'ge'", + "'gte'", "'<'", "'lt'", "'<='", "'le'", "'lte'", "'<>'", "'!='", "'ne'", + "'ieq'", "'ine'", null, null, null, null, null, null, "'0'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, "INPUT_VARIABLE", "PATH_VARIABLE", "BOOLEAN_LITERAL", "NUMBER_LITERAL", + "DOUBLE", "INT", "ZERO", "STRING_LITERAL", "WS" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); - /** - * @deprecated Use {@link #VOCABULARY} instead. - */ - @Deprecated - public static final String[] tokenNames; - static { - tokenNames = new String[_SYMBOLIC_NAMES.length]; - for (int i = 0; i < tokenNames.length; i++) { - tokenNames[i] = VOCABULARY.getLiteralName(i); - if (tokenNames[i] == null) { - tokenNames[i] = VOCABULARY.getSymbolicName(i); - } + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } - if (tokenNames[i] == null) { - tokenNames[i] = ""; - } - } - } + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } - @Override - @Deprecated - public String[] getTokenNames() { - return tokenNames; - } + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } - @Override + @Override - public Vocabulary getVocabulary() { - return VOCABULARY; - } + public Vocabulary getVocabulary() { + return VOCABULARY; + } - public EQLLexer(CharStream input) { - super(input); - _interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache); - } - @Override - public String getGrammarFileName() { - return "EQL.g4"; - } + public EQLLexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } - @Override - public String[] getRuleNames() { - return ruleNames; - } + @Override + public String getGrammarFileName() { return "EQL.g4"; } - @Override - public String getSerializedATN() { - return _serializedATN; - } + @Override + public String[] getRuleNames() { return ruleNames; } - @Override - public String[] getChannelNames() { - return channelNames; - } + @Override + public String getSerializedATN() { return _serializedATN; } - @Override - public String[] getModeNames() { - return modeNames; - } + @Override + public String[] getChannelNames() { return channelNames; } - @Override - public ATN getATN() { - return _ATN; - } + @Override + public String[] getModeNames() { return modeNames; } - public static final String _serializedATN = "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2E\u0206\b\1\4\2\t" - + "\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13" - + "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22" - + "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31" - + "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!" - + "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4" - + ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t" - + "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t=" - + "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\3\2\3\2\3\2\3\2\3\2\3\2\3\2" - + "\3\3\3\3\3\4\3\4\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\6\3\6\3\6\3\6\3" - + "\6\3\6\3\7\3\7\3\7\3\7\3\7\3\7\3\b\3\b\3\b\3\t\3\t\3\n\3\n\3\n\3\n\3\n" - + "\3\n\3\13\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\r\3\r\3\r\3\r" - + "\3\16\3\16\3\16\3\16\3\16\3\17\3\17\3\17\3\17\3\17\3\17\3\20\3\20\3\20" - + "\3\20\3\20\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\23\3\23" - + "\3\23\3\23\3\23\3\23\3\24\3\24\3\24\3\24\3\24\3\25\3\25\3\25\3\26\3\26" - + "\3\26\3\26\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\31\3\31\3\31\3\31\3\31" - + "\3\31\3\31\3\31\3\32\3\32\3\32\3\33\3\33\3\33\3\33\3\33\3\34\3\34\3\34" - + "\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35" - + "\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3\37\3\37\3\37\3\37" - + "\3 \3 \3 \3 \3 \3 \3 \3 \3!\3!\3!\3!\3!\3!\3!\3!\3!\3!\3!\3\"\3\"\3\"" - + "\3\"\3\"\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3#\3$\3$\3$\3$\3$\3$\3%\3%\3%\3%" - + "\3%\3%\3%\3%\3%\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3\'\3\'\3\'\3\'\3\'\3\'" - + "\3\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3(\3(\3(\3(\3(\3(\3(\3(\3)\3)\3)\3)\3" - + ")\3)\3)\3)\3)\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3+\3+\3,\3,\3,\3-\3-\3.\3" - + ".\3.\3/\3/\3/\3\60\3\60\3\60\3\61\3\61\3\61\3\61\3\62\3\62\3\63\3\63\3" - + "\63\3\64\3\64\3\64\3\65\3\65\3\65\3\66\3\66\3\66\3\66\3\67\3\67\3\67\3" - + "8\38\38\39\39\39\3:\3:\3:\3:\3;\3;\3;\3;\3<\3<\3<\7<\u01c1\n<\f<\16<\u01c4" - + "\13<\3=\3=\7=\u01c8\n=\f=\16=\u01cb\13=\3>\3>\3>\3>\3>\3>\3>\3>\3>\5>" - + "\u01d6\n>\3?\5?\u01d9\n?\3?\3?\5?\u01dd\n?\3?\3?\5?\u01e1\n?\3@\6@\u01e4" - + "\n@\r@\16@\u01e5\3@\3@\7@\u01ea\n@\f@\16@\u01ed\13@\3A\3A\7A\u01f1\nA" - + "\fA\16A\u01f4\13A\3B\3B\3C\3C\3C\3C\7C\u01fc\nC\fC\16C\u01ff\13C\3C\3" - + "C\3D\3D\3D\3D\2\2E\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r" - + "\31\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33" - + "\65\34\67\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\62c\63" - + "e\64g\65i\66k\67m8o9q:s;u{?}@\177A\u0081B\u0083C\u0085D\u0087E\3" - + "\2\t\5\2C\\aac|\6\2\62;C\\aac|\7\2\60\60\62;C\\aac|\3\2\62;\3\2\63;\3" - + "\2))\5\2\13\f\17\17\"\"\2\u0211\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2" - + "\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2" - + "\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2" - + "\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2" - + "\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2" - + "\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2" - + "\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O" - + "\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2" - + "\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2" - + "\2i\3\2\2\2\2k\3\2\2\2\2m\3\2\2\2\2o\3\2\2\2\2q\3\2\2\2\2s\3\2\2\2\2u" - + "\3\2\2\2\2w\3\2\2\2\2y\3\2\2\2\2{\3\2\2\2\2}\3\2\2\2\2\177\3\2\2\2\2\u0081" - + "\3\2\2\2\2\u0083\3\2\2\2\2\u0085\3\2\2\2\2\u0087\3\2\2\2\3\u0089\3\2\2" - + "\2\5\u0090\3\2\2\2\7\u0092\3\2\2\2\t\u0094\3\2\2\2\13\u009d\3\2\2\2\r" - + "\u00a3\3\2\2\2\17\u00a9\3\2\2\2\21\u00ac\3\2\2\2\23\u00ae\3\2\2\2\25\u00b4" - + "\3\2\2\2\27\u00ba\3\2\2\2\31\u00bf\3\2\2\2\33\u00c3\3\2\2\2\35\u00c8\3" - + "\2\2\2\37\u00ce\3\2\2\2!\u00d5\3\2\2\2#\u00db\3\2\2\2%\u00dd\3\2\2\2\'" - + "\u00e3\3\2\2\2)\u00e8\3\2\2\2+\u00eb\3\2\2\2-\u00ef\3\2\2\2/\u00f3\3\2" - + "\2\2\61\u00f6\3\2\2\2\63\u00fe\3\2\2\2\65\u0101\3\2\2\2\67\u0106\3\2\2" - + "\29\u010d\3\2\2\2;\u0117\3\2\2\2=\u011f\3\2\2\2?\u0125\3\2\2\2A\u012d" - + "\3\2\2\2C\u0138\3\2\2\2E\u0141\3\2\2\2G\u0146\3\2\2\2I\u014c\3\2\2\2K" - + "\u0155\3\2\2\2M\u015f\3\2\2\2O\u016a\3\2\2\2Q\u0176\3\2\2\2S\u017f\3\2" - + "\2\2U\u0189\3\2\2\2W\u018b\3\2\2\2Y\u018e\3\2\2\2[\u0190\3\2\2\2]\u0193" - + "\3\2\2\2_\u0196\3\2\2\2a\u0199\3\2\2\2c\u019d\3\2\2\2e\u019f\3\2\2\2g" - + "\u01a2\3\2\2\2i\u01a5\3\2\2\2k\u01a8\3\2\2\2m\u01ac\3\2\2\2o\u01af\3\2" - + "\2\2q\u01b2\3\2\2\2s\u01b5\3\2\2\2u\u01b9\3\2\2\2w\u01bd\3\2\2\2y\u01c5" - + "\3\2\2\2{\u01d5\3\2\2\2}\u01e0\3\2\2\2\177\u01e3\3\2\2\2\u0081\u01ee\3" - + "\2\2\2\u0083\u01f5\3\2\2\2\u0085\u01f7\3\2\2\2\u0087\u0202\3\2\2\2\u0089" - + "\u008a\7u\2\2\u008a\u008b\7g\2\2\u008b\u008c\7n\2\2\u008c\u008d\7g\2\2" - + "\u008d\u008e\7e\2\2\u008e\u008f\7v\2\2\u008f\4\3\2\2\2\u0090\u0091\7*" - + "\2\2\u0091\6\3\2\2\2\u0092\u0093\7+\2\2\u0093\b\3\2\2\2\u0094\u0095\7" - + "f\2\2\u0095\u0096\7k\2\2\u0096\u0097\7u\2\2\u0097\u0098\7v\2\2\u0098\u0099" - + "\7k\2\2\u0099\u009a\7p\2\2\u009a\u009b\7e\2\2\u009b\u009c\7v\2\2\u009c" - + "\n\3\2\2\2\u009d\u009e\7y\2\2\u009e\u009f\7j\2\2\u009f\u00a0\7g\2\2\u00a0" - + "\u00a1\7t\2\2\u00a1\u00a2\7g\2\2\u00a2\f\3\2\2\2\u00a3\u00a4\7q\2\2\u00a4" - + "\u00a5\7t\2\2\u00a5\u00a6\7f\2\2\u00a6\u00a7\7g\2\2\u00a7\u00a8\7t\2\2" - + "\u00a8\16\3\2\2\2\u00a9\u00aa\7d\2\2\u00aa\u00ab\7{\2\2\u00ab\20\3\2\2" - + "\2\u00ac\u00ad\7.\2\2\u00ad\22\3\2\2\2\u00ae\u00af\7p\2\2\u00af\u00b0" - + "\7w\2\2\u00b0\u00b1\7n\2\2\u00b1\u00b2\7n\2\2\u00b2\u00b3\7u\2\2\u00b3" - + "\24\3\2\2\2\u00b4\u00b5\7h\2\2\u00b5\u00b6\7k\2\2\u00b6\u00b7\7t\2\2\u00b7" - + "\u00b8\7u\2\2\u00b8\u00b9\7v\2\2\u00b9\26\3\2\2\2\u00ba\u00bb\7n\2\2\u00bb" - + "\u00bc\7c\2\2\u00bc\u00bd\7u\2\2\u00bd\u00be\7v\2\2\u00be\30\3\2\2\2\u00bf" - + "\u00c0\7c\2\2\u00c0\u00c1\7u\2\2\u00c1\u00c2\7e\2\2\u00c2\32\3\2\2\2\u00c3" - + "\u00c4\7f\2\2\u00c4\u00c5\7g\2\2\u00c5\u00c6\7u\2\2\u00c6\u00c7\7e\2\2" - + "\u00c7\34\3\2\2\2\u00c8\u00c9\7n\2\2\u00c9\u00ca\7k\2\2\u00ca\u00cb\7" - + "o\2\2\u00cb\u00cc\7k\2\2\u00cc\u00cd\7v\2\2\u00cd\36\3\2\2\2\u00ce\u00cf" - + "\7q\2\2\u00cf\u00d0\7h\2\2\u00d0\u00d1\7h\2\2\u00d1\u00d2\7u\2\2\u00d2" - + "\u00d3\7g\2\2\u00d3\u00d4\7v\2\2\u00d4 \3\2\2\2\u00d5\u00d6\7h\2\2\u00d6" - + "\u00d7\7g\2\2\u00d7\u00d8\7v\2\2\u00d8\u00d9\7e\2\2\u00d9\u00da\7j\2\2" - + "\u00da\"\3\2\2\2\u00db\u00dc\7-\2\2\u00dc$\3\2\2\2\u00dd\u00de\7s\2\2" - + "\u00de\u00df\7w\2\2\u00df\u00e0\7g\2\2\u00e0\u00e1\7t\2\2\u00e1\u00e2" - + "\7{\2\2\u00e2&\3\2\2\2\u00e3\u00e4\7n\2\2\u00e4\u00e5\7c\2\2\u00e5\u00e6" - + "\7|\2\2\u00e6\u00e7\7{\2\2\u00e7(\3\2\2\2\u00e8\u00e9\7q\2\2\u00e9\u00ea" - + "\7t\2\2\u00ea*\3\2\2\2\u00eb\u00ec\7c\2\2\u00ec\u00ed\7p\2\2\u00ed\u00ee" - + "\7f\2\2\u00ee,\3\2\2\2\u00ef\u00f0\7p\2\2\u00f0\u00f1\7q\2\2\u00f1\u00f2" - + "\7v\2\2\u00f2.\3\2\2\2\u00f3\u00f4\7k\2\2\u00f4\u00f5\7p\2\2\u00f5\60" - + "\3\2\2\2\u00f6\u00f7\7d\2\2\u00f7\u00f8\7g\2\2\u00f8\u00f9\7v\2\2\u00f9" - + "\u00fa\7y\2\2\u00fa\u00fb\7g\2\2\u00fb\u00fc\7g\2\2\u00fc\u00fd\7p\2\2" - + "\u00fd\62\3\2\2\2\u00fe\u00ff\7k\2\2\u00ff\u0100\7u\2\2\u0100\64\3\2\2" - + "\2\u0101\u0102\7p\2\2\u0102\u0103\7w\2\2\u0103\u0104\7n\2\2\u0104\u0105" - + "\7n\2\2\u0105\66\3\2\2\2\u0106\u0107\7k\2\2\u0107\u0108\7u\2\2\u0108\u0109" - + "\7P\2\2\u0109\u010a\7w\2\2\u010a\u010b\7n\2\2\u010b\u010c\7n\2\2\u010c" - + "8\3\2\2\2\u010d\u010e\7k\2\2\u010e\u010f\7u\2\2\u010f\u0110\7P\2\2\u0110" - + "\u0111\7q\2\2\u0111\u0112\7v\2\2\u0112\u0113\7P\2\2\u0113\u0114\7w\2\2" - + "\u0114\u0115\7n\2\2\u0115\u0116\7n\2\2\u0116:\3\2\2\2\u0117\u0118\7p\2" - + "\2\u0118\u0119\7q\2\2\u0119\u011a\7v\2\2\u011a\u011b\7P\2\2\u011b\u011c" - + "\7w\2\2\u011c\u011d\7n\2\2\u011d\u011e\7n\2\2\u011e<\3\2\2\2\u011f\u0120" - + "\7g\2\2\u0120\u0121\7o\2\2\u0121\u0122\7r\2\2\u0122\u0123\7v\2\2\u0123" - + "\u0124\7{\2\2\u0124>\3\2\2\2\u0125\u0126\7k\2\2\u0126\u0127\7u\2\2\u0127" - + "\u0128\7G\2\2\u0128\u0129\7o\2\2\u0129\u012a\7r\2\2\u012a\u012b\7v\2\2" - + "\u012b\u012c\7{\2\2\u012c@\3\2\2\2\u012d\u012e\7k\2\2\u012e\u012f\7u\2" - + "\2\u012f\u0130\7P\2\2\u0130\u0131\7q\2\2\u0131\u0132\7v\2\2\u0132\u0133" - + "\7G\2\2\u0133\u0134\7o\2\2\u0134\u0135\7r\2\2\u0135\u0136\7v\2\2\u0136" - + "\u0137\7{\2\2\u0137B\3\2\2\2\u0138\u0139\7p\2\2\u0139\u013a\7q\2\2\u013a" - + "\u013b\7v\2\2\u013b\u013c\7G\2\2\u013c\u013d\7o\2\2\u013d\u013e\7r\2\2" - + "\u013e\u013f\7v\2\2\u013f\u0140\7{\2\2\u0140D\3\2\2\2\u0141\u0142\7n\2" - + "\2\u0142\u0143\7k\2\2\u0143\u0144\7m\2\2\u0144\u0145\7g\2\2\u0145F\3\2" - + "\2\2\u0146\u0147\7k\2\2\u0147\u0148\7n\2\2\u0148\u0149\7k\2\2\u0149\u014a" - + "\7m\2\2\u014a\u014b\7g\2\2\u014bH\3\2\2\2\u014c\u014d\7e\2\2\u014d\u014e" - + "\7q\2\2\u014e\u014f\7p\2\2\u014f\u0150\7v\2\2\u0150\u0151\7c\2\2\u0151" - + "\u0152\7k\2\2\u0152\u0153\7p\2\2\u0153\u0154\7u\2\2\u0154J\3\2\2\2\u0155" - + "\u0156\7k\2\2\u0156\u0157\7e\2\2\u0157\u0158\7q\2\2\u0158\u0159\7p\2\2" - + "\u0159\u015a\7v\2\2\u015a\u015b\7c\2\2\u015b\u015c\7k\2\2\u015c\u015d" - + "\7p\2\2\u015d\u015e\7u\2\2\u015eL\3\2\2\2\u015f\u0160\7u\2\2\u0160\u0161" - + "\7v\2\2\u0161\u0162\7c\2\2\u0162\u0163\7t\2\2\u0163\u0164\7v\2\2\u0164" - + "\u0165\7u\2\2\u0165\u0166\7Y\2\2\u0166\u0167\7k\2\2\u0167\u0168\7v\2\2" - + "\u0168\u0169\7j\2\2\u0169N\3\2\2\2\u016a\u016b\7k\2\2\u016b\u016c\7u\2" - + "\2\u016c\u016d\7v\2\2\u016d\u016e\7c\2\2\u016e\u016f\7t\2\2\u016f\u0170" - + "\7v\2\2\u0170\u0171\7u\2\2\u0171\u0172\7Y\2\2\u0172\u0173\7k\2\2\u0173" - + "\u0174\7v\2\2\u0174\u0175\7j\2\2\u0175P\3\2\2\2\u0176\u0177\7g\2\2\u0177" - + "\u0178\7p\2\2\u0178\u0179\7f\2\2\u0179\u017a\7u\2\2\u017a\u017b\7Y\2\2" - + "\u017b\u017c\7k\2\2\u017c\u017d\7v\2\2\u017d\u017e\7j\2\2\u017eR\3\2\2" - + "\2\u017f\u0180\7k\2\2\u0180\u0181\7g\2\2\u0181\u0182\7p\2\2\u0182\u0183" - + "\7f\2\2\u0183\u0184\7u\2\2\u0184\u0185\7Y\2\2\u0185\u0186\7k\2\2\u0186" - + "\u0187\7v\2\2\u0187\u0188\7j\2\2\u0188T\3\2\2\2\u0189\u018a\7?\2\2\u018a" - + "V\3\2\2\2\u018b\u018c\7g\2\2\u018c\u018d\7s\2\2\u018dX\3\2\2\2\u018e\u018f" - + "\7@\2\2\u018fZ\3\2\2\2\u0190\u0191\7i\2\2\u0191\u0192\7v\2\2\u0192\\\3" - + "\2\2\2\u0193\u0194\7@\2\2\u0194\u0195\7?\2\2\u0195^\3\2\2\2\u0196\u0197" - + "\7i\2\2\u0197\u0198\7g\2\2\u0198`\3\2\2\2\u0199\u019a\7i\2\2\u019a\u019b" - + "\7v\2\2\u019b\u019c\7g\2\2\u019cb\3\2\2\2\u019d\u019e\7>\2\2\u019ed\3" - + "\2\2\2\u019f\u01a0\7n\2\2\u01a0\u01a1\7v\2\2\u01a1f\3\2\2\2\u01a2\u01a3" - + "\7>\2\2\u01a3\u01a4\7?\2\2\u01a4h\3\2\2\2\u01a5\u01a6\7n\2\2\u01a6\u01a7" - + "\7g\2\2\u01a7j\3\2\2\2\u01a8\u01a9\7n\2\2\u01a9\u01aa\7v\2\2\u01aa\u01ab" - + "\7g\2\2\u01abl\3\2\2\2\u01ac\u01ad\7>\2\2\u01ad\u01ae\7@\2\2\u01aen\3" - + "\2\2\2\u01af\u01b0\7#\2\2\u01b0\u01b1\7?\2\2\u01b1p\3\2\2\2\u01b2\u01b3" - + "\7p\2\2\u01b3\u01b4\7g\2\2\u01b4r\3\2\2\2\u01b5\u01b6\7k\2\2\u01b6\u01b7" - + "\7g\2\2\u01b7\u01b8\7s\2\2\u01b8t\3\2\2\2\u01b9\u01ba\7k\2\2\u01ba\u01bb" - + "\7p\2\2\u01bb\u01bc\7g\2\2\u01bcv\3\2\2\2\u01bd\u01be\7<\2\2\u01be\u01c2" - + "\t\2\2\2\u01bf\u01c1\t\3\2\2\u01c0\u01bf\3\2\2\2\u01c1\u01c4\3\2\2\2\u01c2" - + "\u01c0\3\2\2\2\u01c2\u01c3\3\2\2\2\u01c3x\3\2\2\2\u01c4\u01c2\3\2\2\2" - + "\u01c5\u01c9\t\2\2\2\u01c6\u01c8\t\4\2\2\u01c7\u01c6\3\2\2\2\u01c8\u01cb" - + "\3\2\2\2\u01c9\u01c7\3\2\2\2\u01c9\u01ca\3\2\2\2\u01caz\3\2\2\2\u01cb" - + "\u01c9\3\2\2\2\u01cc\u01cd\7v\2\2\u01cd\u01ce\7t\2\2\u01ce\u01cf\7w\2" - + "\2\u01cf\u01d6\7g\2\2\u01d0\u01d1\7h\2\2\u01d1\u01d2\7c\2\2\u01d2\u01d3" - + "\7n\2\2\u01d3\u01d4\7u\2\2\u01d4\u01d6\7g\2\2\u01d5\u01cc\3\2\2\2\u01d5" - + "\u01d0\3\2\2\2\u01d6|\3\2\2\2\u01d7\u01d9\7/\2\2\u01d8\u01d7\3\2\2\2\u01d8" - + "\u01d9\3\2\2\2\u01d9\u01da\3\2\2\2\u01da\u01e1\5\177@\2\u01db\u01dd\7" - + "/\2\2\u01dc\u01db\3\2\2\2\u01dc\u01dd\3\2\2\2\u01dd\u01de\3\2\2\2\u01de" - + "\u01e1\5\u0081A\2\u01df\u01e1\5\u0083B\2\u01e0\u01d8\3\2\2\2\u01e0\u01dc" - + "\3\2\2\2\u01e0\u01df\3\2\2\2\u01e1~\3\2\2\2\u01e2\u01e4\t\5\2\2\u01e3" - + "\u01e2\3\2\2\2\u01e4\u01e5\3\2\2\2\u01e5\u01e3\3\2\2\2\u01e5\u01e6\3\2" - + "\2\2\u01e6\u01e7\3\2\2\2\u01e7\u01eb\7\60\2\2\u01e8\u01ea\t\5\2\2\u01e9" - + "\u01e8\3\2\2\2\u01ea\u01ed\3\2\2\2\u01eb\u01e9\3\2\2\2\u01eb\u01ec\3\2" - + "\2\2\u01ec\u0080\3\2\2\2\u01ed\u01eb\3\2\2\2\u01ee\u01f2\t\6\2\2\u01ef" - + "\u01f1\t\5\2\2\u01f0\u01ef\3\2\2\2\u01f1\u01f4\3\2\2\2\u01f2\u01f0\3\2" - + "\2\2\u01f2\u01f3\3\2\2\2\u01f3\u0082\3\2\2\2\u01f4\u01f2\3\2\2\2\u01f5" - + "\u01f6\7\62\2\2\u01f6\u0084\3\2\2\2\u01f7\u01fd\7)\2\2\u01f8\u01fc\n\7" - + "\2\2\u01f9\u01fa\7)\2\2\u01fa\u01fc\7)\2\2\u01fb\u01f8\3\2\2\2\u01fb\u01f9" - + "\3\2\2\2\u01fc\u01ff\3\2\2\2\u01fd\u01fb\3\2\2\2\u01fd\u01fe\3\2\2\2\u01fe" - + "\u0200\3\2\2\2\u01ff\u01fd\3\2\2\2\u0200\u0201\7)\2\2\u0201\u0086\3\2" - + "\2\2\u0202\u0203\t\b\2\2\u0203\u0204\3\2\2\2\u0204\u0205\bD\2\2\u0205" - + "\u0088\3\2\2\2\16\2\u01c2\u01c9\u01d5\u01d8\u01dc\u01e0\u01e5\u01eb\u01f2" + "\u01fb\u01fd\3\b\2\2"; - public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray()); - static { - _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; - for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { - _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); - } - } + @Override + public ATN getATN() { return _ATN; } + + public static final String _serializedATN = + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2G\u0215\b\1\4\2\t"+ + "\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+ + "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ + "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ + "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+ + "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+ + ",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+ + "\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t;\4<\t<\4=\t="+ + "\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\tD\4E\tE\4F\tF\3\2\3\2\3\2\3\2"+ + "\3\2\3\2\3\2\3\3\3\3\3\4\3\4\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\6\3"+ + "\6\3\6\3\6\3\6\3\6\3\7\3\7\3\7\3\7\3\7\3\7\3\b\3\b\3\b\3\t\3\t\3\n\3\n"+ + "\3\n\3\n\3\n\3\n\3\13\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\r"+ + "\3\r\3\r\3\r\3\16\3\16\3\16\3\16\3\16\3\17\3\17\3\17\3\17\3\17\3\17\3"+ + "\20\3\20\3\20\3\20\3\20\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\21\3\22\3"+ + "\22\3\23\3\23\3\23\3\23\3\23\3\23\3\24\3\24\3\24\3\24\3\24\3\25\3\25\3"+ + "\25\3\26\3\26\3\26\3\26\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\31\3\31\3"+ + "\31\3\31\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3"+ + "\33\3\33\3\33\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\36\3\36\3\36\3"+ + "\36\3\36\3\36\3\36\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3\37\3"+ + " \3 \3 \3 \3 \3 \3 \3 \3!\3!\3!\3!\3!\3!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3"+ + "\"\3#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3#\3$\3$\3$\3$\3$\3$\3$\3$\3$\3%\3%\3"+ + "%\3%\3%\3&\3&\3&\3&\3&\3&\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3(\3(\3"+ + "(\3(\3(\3(\3(\3(\3(\3(\3)\3)\3)\3)\3)\3)\3)\3)\3)\3)\3)\3*\3*\3*\3*\3"+ + "*\3*\3*\3*\3*\3*\3*\3*\3+\3+\3+\3+\3+\3+\3+\3+\3+\3,\3,\3,\3,\3,\3,\3"+ + ",\3,\3,\3,\3-\3-\3.\3.\3.\3/\3/\3\60\3\60\3\60\3\61\3\61\3\61\3\62\3\62"+ + "\3\62\3\63\3\63\3\63\3\63\3\64\3\64\3\65\3\65\3\65\3\66\3\66\3\66\3\67"+ + "\3\67\3\67\38\38\38\38\39\39\39\3:\3:\3:\3;\3;\3;\3<\3<\3<\3<\3=\3=\3"+ + "=\3=\3>\3>\3>\7>\u01d0\n>\f>\16>\u01d3\13>\3?\3?\7?\u01d7\n?\f?\16?\u01da"+ + "\13?\3@\3@\3@\3@\3@\3@\3@\3@\3@\5@\u01e5\n@\3A\5A\u01e8\nA\3A\3A\5A\u01ec"+ + "\nA\3A\3A\5A\u01f0\nA\3B\6B\u01f3\nB\rB\16B\u01f4\3B\3B\7B\u01f9\nB\f"+ + "B\16B\u01fc\13B\3C\3C\7C\u0200\nC\fC\16C\u0203\13C\3D\3D\3E\3E\3E\3E\7"+ + "E\u020b\nE\fE\16E\u020e\13E\3E\3E\3F\3F\3F\3F\2\2G\3\3\5\4\7\5\t\6\13"+ + "\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33\17\35\20\37\21!\22#\23%\24\'"+ + "\25)\26+\27-\30/\31\61\32\63\33\65\34\67\359\36;\37= ?!A\"C#E$G%I&K\'"+ + "M(O)Q*S+U,W-Y.[/]\60_\61a\62c\63e\64g\65i\66k\67m8o9q:s;u{?}@\177"+ + "A\u0081B\u0083C\u0085D\u0087E\u0089F\u008bG\3\2\t\5\2C\\aac|\6\2\62;C"+ + "\\aac|\7\2\60\60\62;C\\aac|\3\2\62;\3\2\63;\3\2))\5\2\13\f\17\17\"\"\2"+ + "\u0220\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2"+ + "\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3"+ + "\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2"+ + "\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2"+ + "/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2"+ + "\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2"+ + "G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3"+ + "\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2"+ + "\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3\2\2\2\2"+ + "m\3\2\2\2\2o\3\2\2\2\2q\3\2\2\2\2s\3\2\2\2\2u\3\2\2\2\2w\3\2\2\2\2y\3"+ + "\2\2\2\2{\3\2\2\2\2}\3\2\2\2\2\177\3\2\2\2\2\u0081\3\2\2\2\2\u0083\3\2"+ + "\2\2\2\u0085\3\2\2\2\2\u0087\3\2\2\2\2\u0089\3\2\2\2\2\u008b\3\2\2\2\3"+ + "\u008d\3\2\2\2\5\u0094\3\2\2\2\7\u0096\3\2\2\2\t\u0098\3\2\2\2\13\u00a1"+ + "\3\2\2\2\r\u00a7\3\2\2\2\17\u00ad\3\2\2\2\21\u00b0\3\2\2\2\23\u00b2\3"+ + "\2\2\2\25\u00b8\3\2\2\2\27\u00be\3\2\2\2\31\u00c3\3\2\2\2\33\u00c7\3\2"+ + "\2\2\35\u00cc\3\2\2\2\37\u00d2\3\2\2\2!\u00d9\3\2\2\2#\u00df\3\2\2\2%"+ + "\u00e1\3\2\2\2\'\u00e7\3\2\2\2)\u00ec\3\2\2\2+\u00ef\3\2\2\2-\u00f3\3"+ + "\2\2\2/\u00f7\3\2\2\2\61\u00fa\3\2\2\2\63\u0102\3\2\2\2\65\u010a\3\2\2"+ + "\2\67\u010d\3\2\2\29\u0110\3\2\2\2;\u0115\3\2\2\2=\u011c\3\2\2\2?\u0126"+ + "\3\2\2\2A\u012e\3\2\2\2C\u0134\3\2\2\2E\u013c\3\2\2\2G\u0147\3\2\2\2I"+ + "\u0150\3\2\2\2K\u0155\3\2\2\2M\u015b\3\2\2\2O\u0164\3\2\2\2Q\u016e\3\2"+ + "\2\2S\u0179\3\2\2\2U\u0185\3\2\2\2W\u018e\3\2\2\2Y\u0198\3\2\2\2[\u019a"+ + "\3\2\2\2]\u019d\3\2\2\2_\u019f\3\2\2\2a\u01a2\3\2\2\2c\u01a5\3\2\2\2e"+ + "\u01a8\3\2\2\2g\u01ac\3\2\2\2i\u01ae\3\2\2\2k\u01b1\3\2\2\2m\u01b4\3\2"+ + "\2\2o\u01b7\3\2\2\2q\u01bb\3\2\2\2s\u01be\3\2\2\2u\u01c1\3\2\2\2w\u01c4"+ + "\3\2\2\2y\u01c8\3\2\2\2{\u01cc\3\2\2\2}\u01d4\3\2\2\2\177\u01e4\3\2\2"+ + "\2\u0081\u01ef\3\2\2\2\u0083\u01f2\3\2\2\2\u0085\u01fd\3\2\2\2\u0087\u0204"+ + "\3\2\2\2\u0089\u0206\3\2\2\2\u008b\u0211\3\2\2\2\u008d\u008e\7u\2\2\u008e"+ + "\u008f\7g\2\2\u008f\u0090\7n\2\2\u0090\u0091\7g\2\2\u0091\u0092\7e\2\2"+ + "\u0092\u0093\7v\2\2\u0093\4\3\2\2\2\u0094\u0095\7*\2\2\u0095\6\3\2\2\2"+ + "\u0096\u0097\7+\2\2\u0097\b\3\2\2\2\u0098\u0099\7f\2\2\u0099\u009a\7k"+ + "\2\2\u009a\u009b\7u\2\2\u009b\u009c\7v\2\2\u009c\u009d\7k\2\2\u009d\u009e"+ + "\7p\2\2\u009e\u009f\7e\2\2\u009f\u00a0\7v\2\2\u00a0\n\3\2\2\2\u00a1\u00a2"+ + "\7y\2\2\u00a2\u00a3\7j\2\2\u00a3\u00a4\7g\2\2\u00a4\u00a5\7t\2\2\u00a5"+ + "\u00a6\7g\2\2\u00a6\f\3\2\2\2\u00a7\u00a8\7q\2\2\u00a8\u00a9\7t\2\2\u00a9"+ + "\u00aa\7f\2\2\u00aa\u00ab\7g\2\2\u00ab\u00ac\7t\2\2\u00ac\16\3\2\2\2\u00ad"+ + "\u00ae\7d\2\2\u00ae\u00af\7{\2\2\u00af\20\3\2\2\2\u00b0\u00b1\7.\2\2\u00b1"+ + "\22\3\2\2\2\u00b2\u00b3\7p\2\2\u00b3\u00b4\7w\2\2\u00b4\u00b5\7n\2\2\u00b5"+ + "\u00b6\7n\2\2\u00b6\u00b7\7u\2\2\u00b7\24\3\2\2\2\u00b8\u00b9\7h\2\2\u00b9"+ + "\u00ba\7k\2\2\u00ba\u00bb\7t\2\2\u00bb\u00bc\7u\2\2\u00bc\u00bd\7v\2\2"+ + "\u00bd\26\3\2\2\2\u00be\u00bf\7n\2\2\u00bf\u00c0\7c\2\2\u00c0\u00c1\7"+ + "u\2\2\u00c1\u00c2\7v\2\2\u00c2\30\3\2\2\2\u00c3\u00c4\7c\2\2\u00c4\u00c5"+ + "\7u\2\2\u00c5\u00c6\7e\2\2\u00c6\32\3\2\2\2\u00c7\u00c8\7f\2\2\u00c8\u00c9"+ + "\7g\2\2\u00c9\u00ca\7u\2\2\u00ca\u00cb\7e\2\2\u00cb\34\3\2\2\2\u00cc\u00cd"+ + "\7n\2\2\u00cd\u00ce\7k\2\2\u00ce\u00cf\7o\2\2\u00cf\u00d0\7k\2\2\u00d0"+ + "\u00d1\7v\2\2\u00d1\36\3\2\2\2\u00d2\u00d3\7q\2\2\u00d3\u00d4\7h\2\2\u00d4"+ + "\u00d5\7h\2\2\u00d5\u00d6\7u\2\2\u00d6\u00d7\7g\2\2\u00d7\u00d8\7v\2\2"+ + "\u00d8 \3\2\2\2\u00d9\u00da\7h\2\2\u00da\u00db\7g\2\2\u00db\u00dc\7v\2"+ + "\2\u00dc\u00dd\7e\2\2\u00dd\u00de\7j\2\2\u00de\"\3\2\2\2\u00df\u00e0\7"+ + "-\2\2\u00e0$\3\2\2\2\u00e1\u00e2\7s\2\2\u00e2\u00e3\7w\2\2\u00e3\u00e4"+ + "\7g\2\2\u00e4\u00e5\7t\2\2\u00e5\u00e6\7{\2\2\u00e6&\3\2\2\2\u00e7\u00e8"+ + "\7n\2\2\u00e8\u00e9\7c\2\2\u00e9\u00ea\7|\2\2\u00ea\u00eb\7{\2\2\u00eb"+ + "(\3\2\2\2\u00ec\u00ed\7q\2\2\u00ed\u00ee\7t\2\2\u00ee*\3\2\2\2\u00ef\u00f0"+ + "\7c\2\2\u00f0\u00f1\7p\2\2\u00f1\u00f2\7f\2\2\u00f2,\3\2\2\2\u00f3\u00f4"+ + "\7p\2\2\u00f4\u00f5\7q\2\2\u00f5\u00f6\7v\2\2\u00f6.\3\2\2\2\u00f7\u00f8"+ + "\7k\2\2\u00f8\u00f9\7p\2\2\u00f9\60\3\2\2\2\u00fa\u00fb\7d\2\2\u00fb\u00fc"+ + "\7g\2\2\u00fc\u00fd\7v\2\2\u00fd\u00fe\7y\2\2\u00fe\u00ff\7g\2\2\u00ff"+ + "\u0100\7g\2\2\u0100\u0101\7p\2\2\u0101\62\3\2\2\2\u0102\u0103\7k\2\2\u0103"+ + "\u0104\7p\2\2\u0104\u0105\7t\2\2\u0105\u0106\7c\2\2\u0106\u0107\7p\2\2"+ + "\u0107\u0108\7i\2\2\u0108\u0109\7g\2\2\u0109\64\3\2\2\2\u010a\u010b\7"+ + "v\2\2\u010b\u010c\7q\2\2\u010c\66\3\2\2\2\u010d\u010e\7k\2\2\u010e\u010f"+ + "\7u\2\2\u010f8\3\2\2\2\u0110\u0111\7p\2\2\u0111\u0112\7w\2\2\u0112\u0113"+ + "\7n\2\2\u0113\u0114\7n\2\2\u0114:\3\2\2\2\u0115\u0116\7k\2\2\u0116\u0117"+ + "\7u\2\2\u0117\u0118\7P\2\2\u0118\u0119\7w\2\2\u0119\u011a\7n\2\2\u011a"+ + "\u011b\7n\2\2\u011b<\3\2\2\2\u011c\u011d\7k\2\2\u011d\u011e\7u\2\2\u011e"+ + "\u011f\7P\2\2\u011f\u0120\7q\2\2\u0120\u0121\7v\2\2\u0121\u0122\7P\2\2"+ + "\u0122\u0123\7w\2\2\u0123\u0124\7n\2\2\u0124\u0125\7n\2\2\u0125>\3\2\2"+ + "\2\u0126\u0127\7p\2\2\u0127\u0128\7q\2\2\u0128\u0129\7v\2\2\u0129\u012a"+ + "\7P\2\2\u012a\u012b\7w\2\2\u012b\u012c\7n\2\2\u012c\u012d\7n\2\2\u012d"+ + "@\3\2\2\2\u012e\u012f\7g\2\2\u012f\u0130\7o\2\2\u0130\u0131\7r\2\2\u0131"+ + "\u0132\7v\2\2\u0132\u0133\7{\2\2\u0133B\3\2\2\2\u0134\u0135\7k\2\2\u0135"+ + "\u0136\7u\2\2\u0136\u0137\7G\2\2\u0137\u0138\7o\2\2\u0138\u0139\7r\2\2"+ + "\u0139\u013a\7v\2\2\u013a\u013b\7{\2\2\u013bD\3\2\2\2\u013c\u013d\7k\2"+ + "\2\u013d\u013e\7u\2\2\u013e\u013f\7P\2\2\u013f\u0140\7q\2\2\u0140\u0141"+ + "\7v\2\2\u0141\u0142\7G\2\2\u0142\u0143\7o\2\2\u0143\u0144\7r\2\2\u0144"+ + "\u0145\7v\2\2\u0145\u0146\7{\2\2\u0146F\3\2\2\2\u0147\u0148\7p\2\2\u0148"+ + "\u0149\7q\2\2\u0149\u014a\7v\2\2\u014a\u014b\7G\2\2\u014b\u014c\7o\2\2"+ + "\u014c\u014d\7r\2\2\u014d\u014e\7v\2\2\u014e\u014f\7{\2\2\u014fH\3\2\2"+ + "\2\u0150\u0151\7n\2\2\u0151\u0152\7k\2\2\u0152\u0153\7m\2\2\u0153\u0154"+ + "\7g\2\2\u0154J\3\2\2\2\u0155\u0156\7k\2\2\u0156\u0157\7n\2\2\u0157\u0158"+ + "\7k\2\2\u0158\u0159\7m\2\2\u0159\u015a\7g\2\2\u015aL\3\2\2\2\u015b\u015c"+ + "\7e\2\2\u015c\u015d\7q\2\2\u015d\u015e\7p\2\2\u015e\u015f\7v\2\2\u015f"+ + "\u0160\7c\2\2\u0160\u0161\7k\2\2\u0161\u0162\7p\2\2\u0162\u0163\7u\2\2"+ + "\u0163N\3\2\2\2\u0164\u0165\7k\2\2\u0165\u0166\7e\2\2\u0166\u0167\7q\2"+ + "\2\u0167\u0168\7p\2\2\u0168\u0169\7v\2\2\u0169\u016a\7c\2\2\u016a\u016b"+ + "\7k\2\2\u016b\u016c\7p\2\2\u016c\u016d\7u\2\2\u016dP\3\2\2\2\u016e\u016f"+ + "\7u\2\2\u016f\u0170\7v\2\2\u0170\u0171\7c\2\2\u0171\u0172\7t\2\2\u0172"+ + "\u0173\7v\2\2\u0173\u0174\7u\2\2\u0174\u0175\7Y\2\2\u0175\u0176\7k\2\2"+ + "\u0176\u0177\7v\2\2\u0177\u0178\7j\2\2\u0178R\3\2\2\2\u0179\u017a\7k\2"+ + "\2\u017a\u017b\7u\2\2\u017b\u017c\7v\2\2\u017c\u017d\7c\2\2\u017d\u017e"+ + "\7t\2\2\u017e\u017f\7v\2\2\u017f\u0180\7u\2\2\u0180\u0181\7Y\2\2\u0181"+ + "\u0182\7k\2\2\u0182\u0183\7v\2\2\u0183\u0184\7j\2\2\u0184T\3\2\2\2\u0185"+ + "\u0186\7g\2\2\u0186\u0187\7p\2\2\u0187\u0188\7f\2\2\u0188\u0189\7u\2\2"+ + "\u0189\u018a\7Y\2\2\u018a\u018b\7k\2\2\u018b\u018c\7v\2\2\u018c\u018d"+ + "\7j\2\2\u018dV\3\2\2\2\u018e\u018f\7k\2\2\u018f\u0190\7g\2\2\u0190\u0191"+ + "\7p\2\2\u0191\u0192\7f\2\2\u0192\u0193\7u\2\2\u0193\u0194\7Y\2\2\u0194"+ + "\u0195\7k\2\2\u0195\u0196\7v\2\2\u0196\u0197\7j\2\2\u0197X\3\2\2\2\u0198"+ + "\u0199\7?\2\2\u0199Z\3\2\2\2\u019a\u019b\7g\2\2\u019b\u019c\7s\2\2\u019c"+ + "\\\3\2\2\2\u019d\u019e\7@\2\2\u019e^\3\2\2\2\u019f\u01a0\7i\2\2\u01a0"+ + "\u01a1\7v\2\2\u01a1`\3\2\2\2\u01a2\u01a3\7@\2\2\u01a3\u01a4\7?\2\2\u01a4"+ + "b\3\2\2\2\u01a5\u01a6\7i\2\2\u01a6\u01a7\7g\2\2\u01a7d\3\2\2\2\u01a8\u01a9"+ + "\7i\2\2\u01a9\u01aa\7v\2\2\u01aa\u01ab\7g\2\2\u01abf\3\2\2\2\u01ac\u01ad"+ + "\7>\2\2\u01adh\3\2\2\2\u01ae\u01af\7n\2\2\u01af\u01b0\7v\2\2\u01b0j\3"+ + "\2\2\2\u01b1\u01b2\7>\2\2\u01b2\u01b3\7?\2\2\u01b3l\3\2\2\2\u01b4\u01b5"+ + "\7n\2\2\u01b5\u01b6\7g\2\2\u01b6n\3\2\2\2\u01b7\u01b8\7n\2\2\u01b8\u01b9"+ + "\7v\2\2\u01b9\u01ba\7g\2\2\u01bap\3\2\2\2\u01bb\u01bc\7>\2\2\u01bc\u01bd"+ + "\7@\2\2\u01bdr\3\2\2\2\u01be\u01bf\7#\2\2\u01bf\u01c0\7?\2\2\u01c0t\3"+ + "\2\2\2\u01c1\u01c2\7p\2\2\u01c2\u01c3\7g\2\2\u01c3v\3\2\2\2\u01c4\u01c5"+ + "\7k\2\2\u01c5\u01c6\7g\2\2\u01c6\u01c7\7s\2\2\u01c7x\3\2\2\2\u01c8\u01c9"+ + "\7k\2\2\u01c9\u01ca\7p\2\2\u01ca\u01cb\7g\2\2\u01cbz\3\2\2\2\u01cc\u01cd"+ + "\7<\2\2\u01cd\u01d1\t\2\2\2\u01ce\u01d0\t\3\2\2\u01cf\u01ce\3\2\2\2\u01d0"+ + "\u01d3\3\2\2\2\u01d1\u01cf\3\2\2\2\u01d1\u01d2\3\2\2\2\u01d2|\3\2\2\2"+ + "\u01d3\u01d1\3\2\2\2\u01d4\u01d8\t\2\2\2\u01d5\u01d7\t\4\2\2\u01d6\u01d5"+ + "\3\2\2\2\u01d7\u01da\3\2\2\2\u01d8\u01d6\3\2\2\2\u01d8\u01d9\3\2\2\2\u01d9"+ + "~\3\2\2\2\u01da\u01d8\3\2\2\2\u01db\u01dc\7v\2\2\u01dc\u01dd\7t\2\2\u01dd"+ + "\u01de\7w\2\2\u01de\u01e5\7g\2\2\u01df\u01e0\7h\2\2\u01e0\u01e1\7c\2\2"+ + "\u01e1\u01e2\7n\2\2\u01e2\u01e3\7u\2\2\u01e3\u01e5\7g\2\2\u01e4\u01db"+ + "\3\2\2\2\u01e4\u01df\3\2\2\2\u01e5\u0080\3\2\2\2\u01e6\u01e8\7/\2\2\u01e7"+ + "\u01e6\3\2\2\2\u01e7\u01e8\3\2\2\2\u01e8\u01e9\3\2\2\2\u01e9\u01f0\5\u0083"+ + "B\2\u01ea\u01ec\7/\2\2\u01eb\u01ea\3\2\2\2\u01eb\u01ec\3\2\2\2\u01ec\u01ed"+ + "\3\2\2\2\u01ed\u01f0\5\u0085C\2\u01ee\u01f0\5\u0087D\2\u01ef\u01e7\3\2"+ + "\2\2\u01ef\u01eb\3\2\2\2\u01ef\u01ee\3\2\2\2\u01f0\u0082\3\2\2\2\u01f1"+ + "\u01f3\t\5\2\2\u01f2\u01f1\3\2\2\2\u01f3\u01f4\3\2\2\2\u01f4\u01f2\3\2"+ + "\2\2\u01f4\u01f5\3\2\2\2\u01f5\u01f6\3\2\2\2\u01f6\u01fa\7\60\2\2\u01f7"+ + "\u01f9\t\5\2\2\u01f8\u01f7\3\2\2\2\u01f9\u01fc\3\2\2\2\u01fa\u01f8\3\2"+ + "\2\2\u01fa\u01fb\3\2\2\2\u01fb\u0084\3\2\2\2\u01fc\u01fa\3\2\2\2\u01fd"+ + "\u0201\t\6\2\2\u01fe\u0200\t\5\2\2\u01ff\u01fe\3\2\2\2\u0200\u0203\3\2"+ + "\2\2\u0201\u01ff\3\2\2\2\u0201\u0202\3\2\2\2\u0202\u0086\3\2\2\2\u0203"+ + "\u0201\3\2\2\2\u0204\u0205\7\62\2\2\u0205\u0088\3\2\2\2\u0206\u020c\7"+ + ")\2\2\u0207\u020b\n\7\2\2\u0208\u0209\7)\2\2\u0209\u020b\7)\2\2\u020a"+ + "\u0207\3\2\2\2\u020a\u0208\3\2\2\2\u020b\u020e\3\2\2\2\u020c\u020a\3\2"+ + "\2\2\u020c\u020d\3\2\2\2\u020d\u020f\3\2\2\2\u020e\u020c\3\2\2\2\u020f"+ + "\u0210\7)\2\2\u0210\u008a\3\2\2\2\u0211\u0212\t\b\2\2\u0212\u0213\3\2"+ + "\2\2\u0213\u0214\bF\2\2\u0214\u008c\3\2\2\2\16\2\u01d1\u01d8\u01e4\u01e7"+ + "\u01eb\u01ef\u01f4\u01fa\u0201\u020a\u020c\3\b\2\2"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } } diff --git a/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLLexer.tokens b/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLLexer.tokens index a475c2939..4df1b445f 100644 --- a/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLLexer.tokens +++ b/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLLexer.tokens @@ -56,15 +56,17 @@ T__54=55 T__55=56 T__56=57 T__57=58 -INPUT_VARIABLE=59 -PATH_VARIABLE=60 -BOOLEAN_LITERAL=61 -NUMBER_LITERAL=62 -DOUBLE=63 -INT=64 -ZERO=65 -STRING_LITERAL=66 -WS=67 +T__58=59 +T__59=60 +INPUT_VARIABLE=61 +PATH_VARIABLE=62 +BOOLEAN_LITERAL=63 +NUMBER_LITERAL=64 +DOUBLE=65 +INT=66 +ZERO=67 +STRING_LITERAL=68 +WS=69 'select'=1 '('=2 ')'=3 @@ -89,38 +91,40 @@ WS=67 'not'=22 'in'=23 'between'=24 -'is'=25 -'null'=26 -'isNull'=27 -'isNotNull'=28 -'notNull'=29 -'empty'=30 -'isEmpty'=31 -'isNotEmpty'=32 -'notEmpty'=33 -'like'=34 -'ilike'=35 -'contains'=36 -'icontains'=37 -'startsWith'=38 -'istartsWith'=39 -'endsWith'=40 -'iendsWith'=41 -'='=42 -'eq'=43 -'>'=44 -'gt'=45 -'>='=46 -'ge'=47 -'gte'=48 -'<'=49 -'lt'=50 -'<='=51 -'le'=52 -'lte'=53 -'<>'=54 -'!='=55 -'ne'=56 -'ieq'=57 -'ine'=58 -'0'=65 +'inrange'=25 +'to'=26 +'is'=27 +'null'=28 +'isNull'=29 +'isNotNull'=30 +'notNull'=31 +'empty'=32 +'isEmpty'=33 +'isNotEmpty'=34 +'notEmpty'=35 +'like'=36 +'ilike'=37 +'contains'=38 +'icontains'=39 +'startsWith'=40 +'istartsWith'=41 +'endsWith'=42 +'iendsWith'=43 +'='=44 +'eq'=45 +'>'=46 +'gt'=47 +'>='=48 +'ge'=49 +'gte'=50 +'<'=51 +'lt'=52 +'<='=53 +'le'=54 +'lte'=55 +'<>'=56 +'!='=57 +'ne'=58 +'ieq'=59 +'ine'=60 +'0'=67 diff --git a/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLListener.java b/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLListener.java index 661d6c0d7..357206cd2 100644 --- a/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLListener.java +++ b/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLListener.java @@ -1,6 +1,5 @@ -// Generated from C:/dev/ebean/ebean/src/test/resources/EQL.g4 by ANTLR 4.7.1 +// Generated from /home/rob/github/ebean-dir/ebean/src/test/resources/EQL.g4 by ANTLR 4.7.2 package io.ebeaninternal.server.grammer.antlr; - import org.antlr.v4.runtime.tree.ParseTreeListener; /** @@ -8,643 +7,414 @@ import org.antlr.v4.runtime.tree.ParseTreeListener; * {@link EQLParser}. */ public interface EQLListener extends ParseTreeListener { - /** - * Enter a parse tree produced by {@link EQLParser#select_statement}. - * - * @param ctx - * the parse tree - */ - void enterSelect_statement(EQLParser.Select_statementContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#select_statement}. - * - * @param ctx - * the parse tree - */ - void exitSelect_statement(EQLParser.Select_statementContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#select_clause}. - * - * @param ctx - * the parse tree - */ - void enterSelect_clause(EQLParser.Select_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#select_clause}. - * - * @param ctx - * the parse tree - */ - void exitSelect_clause(EQLParser.Select_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#distinct}. - * - * @param ctx - * the parse tree - */ - void enterDistinct(EQLParser.DistinctContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#distinct}. - * - * @param ctx - * the parse tree - */ - void exitDistinct(EQLParser.DistinctContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#fetch_clause}. - * - * @param ctx - * the parse tree - */ - void enterFetch_clause(EQLParser.Fetch_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#fetch_clause}. - * - * @param ctx - * the parse tree - */ - void exitFetch_clause(EQLParser.Fetch_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#where_clause}. - * - * @param ctx - * the parse tree - */ - void enterWhere_clause(EQLParser.Where_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#where_clause}. - * - * @param ctx - * the parse tree - */ - void exitWhere_clause(EQLParser.Where_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#orderby_clause}. - * - * @param ctx - * the parse tree - */ - void enterOrderby_clause(EQLParser.Orderby_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#orderby_clause}. - * - * @param ctx - * the parse tree - */ - void exitOrderby_clause(EQLParser.Orderby_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#orderby_property}. - * - * @param ctx - * the parse tree - */ - void enterOrderby_property(EQLParser.Orderby_propertyContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#orderby_property}. - * - * @param ctx - * the parse tree - */ - void exitOrderby_property(EQLParser.Orderby_propertyContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#nulls_firstlast}. - * - * @param ctx - * the parse tree - */ - void enterNulls_firstlast(EQLParser.Nulls_firstlastContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#nulls_firstlast}. - * - * @param ctx - * the parse tree - */ - void exitNulls_firstlast(EQLParser.Nulls_firstlastContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#asc_desc}. - * - * @param ctx - * the parse tree - */ - void enterAsc_desc(EQLParser.Asc_descContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#asc_desc}. - * - * @param ctx - * the parse tree - */ - void exitAsc_desc(EQLParser.Asc_descContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#limit_clause}. - * - * @param ctx - * the parse tree - */ - void enterLimit_clause(EQLParser.Limit_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#limit_clause}. - * - * @param ctx - * the parse tree - */ - void exitLimit_clause(EQLParser.Limit_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#offset_clause}. - * - * @param ctx - * the parse tree - */ - void enterOffset_clause(EQLParser.Offset_clauseContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#offset_clause}. - * - * @param ctx - * the parse tree - */ - void exitOffset_clause(EQLParser.Offset_clauseContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#fetch_path}. - * - * @param ctx - * the parse tree - */ - void enterFetch_path(EQLParser.Fetch_pathContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#fetch_path}. - * - * @param ctx - * the parse tree - */ - void exitFetch_path(EQLParser.Fetch_pathContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#fetch_property_set}. - * - * @param ctx - * the parse tree - */ - void enterFetch_property_set(EQLParser.Fetch_property_setContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#fetch_property_set}. - * - * @param ctx - * the parse tree - */ - void exitFetch_property_set(EQLParser.Fetch_property_setContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#fetch_property_group}. - * - * @param ctx - * the parse tree - */ - void enterFetch_property_group(EQLParser.Fetch_property_groupContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#fetch_property_group}. - * - * @param ctx - * the parse tree - */ - void exitFetch_property_group(EQLParser.Fetch_property_groupContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#fetch_property}. - * - * @param ctx - * the parse tree - */ - void enterFetch_property(EQLParser.Fetch_propertyContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#fetch_property}. - * - * @param ctx - * the parse tree - */ - void exitFetch_property(EQLParser.Fetch_propertyContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#fetch_query_hint}. - * - * @param ctx - * the parse tree - */ - void enterFetch_query_hint(EQLParser.Fetch_query_hintContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#fetch_query_hint}. - * - * @param ctx - * the parse tree - */ - void exitFetch_query_hint(EQLParser.Fetch_query_hintContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#fetch_lazy_hint}. - * - * @param ctx - * the parse tree - */ - void enterFetch_lazy_hint(EQLParser.Fetch_lazy_hintContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#fetch_lazy_hint}. - * - * @param ctx - * the parse tree - */ - void exitFetch_lazy_hint(EQLParser.Fetch_lazy_hintContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#fetch_option}. - * - * @param ctx - * the parse tree - */ - void enterFetch_option(EQLParser.Fetch_optionContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#fetch_option}. - * - * @param ctx - * the parse tree - */ - void exitFetch_option(EQLParser.Fetch_optionContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#fetch_query_option}. - * - * @param ctx - * the parse tree - */ - void enterFetch_query_option(EQLParser.Fetch_query_optionContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#fetch_query_option}. - * - * @param ctx - * the parse tree - */ - void exitFetch_query_option(EQLParser.Fetch_query_optionContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#fetch_lazy_option}. - * - * @param ctx - * the parse tree - */ - void enterFetch_lazy_option(EQLParser.Fetch_lazy_optionContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#fetch_lazy_option}. - * - * @param ctx - * the parse tree - */ - void exitFetch_lazy_option(EQLParser.Fetch_lazy_optionContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#fetch_batch_size}. - * - * @param ctx - * the parse tree - */ - void enterFetch_batch_size(EQLParser.Fetch_batch_sizeContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#fetch_batch_size}. - * - * @param ctx - * the parse tree - */ - void exitFetch_batch_size(EQLParser.Fetch_batch_sizeContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#conditional_expression}. - * - * @param ctx - * the parse tree - */ - void enterConditional_expression(EQLParser.Conditional_expressionContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#conditional_expression}. - * - * @param ctx - * the parse tree - */ - void exitConditional_expression(EQLParser.Conditional_expressionContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#conditional_term}. - * - * @param ctx - * the parse tree - */ - void enterConditional_term(EQLParser.Conditional_termContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#conditional_term}. - * - * @param ctx - * the parse tree - */ - void exitConditional_term(EQLParser.Conditional_termContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#conditional_factor}. - * - * @param ctx - * the parse tree - */ - void enterConditional_factor(EQLParser.Conditional_factorContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#conditional_factor}. - * - * @param ctx - * the parse tree - */ - void exitConditional_factor(EQLParser.Conditional_factorContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#conditional_primary}. - * - * @param ctx - * the parse tree - */ - void enterConditional_primary(EQLParser.Conditional_primaryContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#conditional_primary}. - * - * @param ctx - * the parse tree - */ - void exitConditional_primary(EQLParser.Conditional_primaryContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#any_expression}. - * - * @param ctx - * the parse tree - */ - void enterAny_expression(EQLParser.Any_expressionContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#any_expression}. - * - * @param ctx - * the parse tree - */ - void exitAny_expression(EQLParser.Any_expressionContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#in_expression}. - * - * @param ctx - * the parse tree - */ - void enterIn_expression(EQLParser.In_expressionContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#in_expression}. - * - * @param ctx - * the parse tree - */ - void exitIn_expression(EQLParser.In_expressionContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#in_value}. - * - * @param ctx - * the parse tree - */ - void enterIn_value(EQLParser.In_valueContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#in_value}. - * - * @param ctx - * the parse tree - */ - void exitIn_value(EQLParser.In_valueContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#between_expression}. - * - * @param ctx - * the parse tree - */ - void enterBetween_expression(EQLParser.Between_expressionContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#between_expression}. - * - * @param ctx - * the parse tree - */ - void exitBetween_expression(EQLParser.Between_expressionContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#propertyBetween_expression}. - * - * @param ctx - * the parse tree - */ - void enterPropertyBetween_expression(EQLParser.PropertyBetween_expressionContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#propertyBetween_expression}. - * - * @param ctx - * the parse tree - */ - void exitPropertyBetween_expression(EQLParser.PropertyBetween_expressionContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#isNull_expression}. - * - * @param ctx - * the parse tree - */ - void enterIsNull_expression(EQLParser.IsNull_expressionContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#isNull_expression}. - * - * @param ctx - * the parse tree - */ - void exitIsNull_expression(EQLParser.IsNull_expressionContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#isNotNull_expression}. - * - * @param ctx - * the parse tree - */ - void enterIsNotNull_expression(EQLParser.IsNotNull_expressionContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#isNotNull_expression}. - * - * @param ctx - * the parse tree - */ - void exitIsNotNull_expression(EQLParser.IsNotNull_expressionContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#isEmpty_expression}. - * - * @param ctx - * the parse tree - */ - void enterIsEmpty_expression(EQLParser.IsEmpty_expressionContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#isEmpty_expression}. - * - * @param ctx - * the parse tree - */ - void exitIsEmpty_expression(EQLParser.IsEmpty_expressionContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#isNotEmpty_expression}. - * - * @param ctx - * the parse tree - */ - void enterIsNotEmpty_expression(EQLParser.IsNotEmpty_expressionContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#isNotEmpty_expression}. - * - * @param ctx - * the parse tree - */ - void exitIsNotEmpty_expression(EQLParser.IsNotEmpty_expressionContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#like_expression}. - * - * @param ctx - * the parse tree - */ - void enterLike_expression(EQLParser.Like_expressionContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#like_expression}. - * - * @param ctx - * the parse tree - */ - void exitLike_expression(EQLParser.Like_expressionContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#like_op}. - * - * @param ctx - * the parse tree - */ - void enterLike_op(EQLParser.Like_opContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#like_op}. - * - * @param ctx - * the parse tree - */ - void exitLike_op(EQLParser.Like_opContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#comparison_expression}. - * - * @param ctx - * the parse tree - */ - void enterComparison_expression(EQLParser.Comparison_expressionContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#comparison_expression}. - * - * @param ctx - * the parse tree - */ - void exitComparison_expression(EQLParser.Comparison_expressionContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#comparison_operator}. - * - * @param ctx - * the parse tree - */ - void enterComparison_operator(EQLParser.Comparison_operatorContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#comparison_operator}. - * - * @param ctx - * the parse tree - */ - void exitComparison_operator(EQLParser.Comparison_operatorContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#value_expression}. - * - * @param ctx - * the parse tree - */ - void enterValue_expression(EQLParser.Value_expressionContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#value_expression}. - * - * @param ctx - * the parse tree - */ - void exitValue_expression(EQLParser.Value_expressionContext ctx); - - /** - * Enter a parse tree produced by {@link EQLParser#literal}. - * - * @param ctx - * the parse tree - */ - void enterLiteral(EQLParser.LiteralContext ctx); - - /** - * Exit a parse tree produced by {@link EQLParser#literal}. - * - * @param ctx - * the parse tree - */ - void exitLiteral(EQLParser.LiteralContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#select_statement}. + * @param ctx the parse tree + */ + void enterSelect_statement(EQLParser.Select_statementContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#select_statement}. + * @param ctx the parse tree + */ + void exitSelect_statement(EQLParser.Select_statementContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#select_clause}. + * @param ctx the parse tree + */ + void enterSelect_clause(EQLParser.Select_clauseContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#select_clause}. + * @param ctx the parse tree + */ + void exitSelect_clause(EQLParser.Select_clauseContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#distinct}. + * @param ctx the parse tree + */ + void enterDistinct(EQLParser.DistinctContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#distinct}. + * @param ctx the parse tree + */ + void exitDistinct(EQLParser.DistinctContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#fetch_clause}. + * @param ctx the parse tree + */ + void enterFetch_clause(EQLParser.Fetch_clauseContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#fetch_clause}. + * @param ctx the parse tree + */ + void exitFetch_clause(EQLParser.Fetch_clauseContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#where_clause}. + * @param ctx the parse tree + */ + void enterWhere_clause(EQLParser.Where_clauseContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#where_clause}. + * @param ctx the parse tree + */ + void exitWhere_clause(EQLParser.Where_clauseContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#orderby_clause}. + * @param ctx the parse tree + */ + void enterOrderby_clause(EQLParser.Orderby_clauseContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#orderby_clause}. + * @param ctx the parse tree + */ + void exitOrderby_clause(EQLParser.Orderby_clauseContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#orderby_property}. + * @param ctx the parse tree + */ + void enterOrderby_property(EQLParser.Orderby_propertyContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#orderby_property}. + * @param ctx the parse tree + */ + void exitOrderby_property(EQLParser.Orderby_propertyContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#nulls_firstlast}. + * @param ctx the parse tree + */ + void enterNulls_firstlast(EQLParser.Nulls_firstlastContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#nulls_firstlast}. + * @param ctx the parse tree + */ + void exitNulls_firstlast(EQLParser.Nulls_firstlastContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#asc_desc}. + * @param ctx the parse tree + */ + void enterAsc_desc(EQLParser.Asc_descContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#asc_desc}. + * @param ctx the parse tree + */ + void exitAsc_desc(EQLParser.Asc_descContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#limit_clause}. + * @param ctx the parse tree + */ + void enterLimit_clause(EQLParser.Limit_clauseContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#limit_clause}. + * @param ctx the parse tree + */ + void exitLimit_clause(EQLParser.Limit_clauseContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#offset_clause}. + * @param ctx the parse tree + */ + void enterOffset_clause(EQLParser.Offset_clauseContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#offset_clause}. + * @param ctx the parse tree + */ + void exitOffset_clause(EQLParser.Offset_clauseContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#fetch_path}. + * @param ctx the parse tree + */ + void enterFetch_path(EQLParser.Fetch_pathContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#fetch_path}. + * @param ctx the parse tree + */ + void exitFetch_path(EQLParser.Fetch_pathContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#fetch_property_set}. + * @param ctx the parse tree + */ + void enterFetch_property_set(EQLParser.Fetch_property_setContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#fetch_property_set}. + * @param ctx the parse tree + */ + void exitFetch_property_set(EQLParser.Fetch_property_setContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#fetch_property_group}. + * @param ctx the parse tree + */ + void enterFetch_property_group(EQLParser.Fetch_property_groupContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#fetch_property_group}. + * @param ctx the parse tree + */ + void exitFetch_property_group(EQLParser.Fetch_property_groupContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#fetch_property}. + * @param ctx the parse tree + */ + void enterFetch_property(EQLParser.Fetch_propertyContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#fetch_property}. + * @param ctx the parse tree + */ + void exitFetch_property(EQLParser.Fetch_propertyContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#fetch_query_hint}. + * @param ctx the parse tree + */ + void enterFetch_query_hint(EQLParser.Fetch_query_hintContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#fetch_query_hint}. + * @param ctx the parse tree + */ + void exitFetch_query_hint(EQLParser.Fetch_query_hintContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#fetch_lazy_hint}. + * @param ctx the parse tree + */ + void enterFetch_lazy_hint(EQLParser.Fetch_lazy_hintContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#fetch_lazy_hint}. + * @param ctx the parse tree + */ + void exitFetch_lazy_hint(EQLParser.Fetch_lazy_hintContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#fetch_option}. + * @param ctx the parse tree + */ + void enterFetch_option(EQLParser.Fetch_optionContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#fetch_option}. + * @param ctx the parse tree + */ + void exitFetch_option(EQLParser.Fetch_optionContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#fetch_query_option}. + * @param ctx the parse tree + */ + void enterFetch_query_option(EQLParser.Fetch_query_optionContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#fetch_query_option}. + * @param ctx the parse tree + */ + void exitFetch_query_option(EQLParser.Fetch_query_optionContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#fetch_lazy_option}. + * @param ctx the parse tree + */ + void enterFetch_lazy_option(EQLParser.Fetch_lazy_optionContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#fetch_lazy_option}. + * @param ctx the parse tree + */ + void exitFetch_lazy_option(EQLParser.Fetch_lazy_optionContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#fetch_batch_size}. + * @param ctx the parse tree + */ + void enterFetch_batch_size(EQLParser.Fetch_batch_sizeContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#fetch_batch_size}. + * @param ctx the parse tree + */ + void exitFetch_batch_size(EQLParser.Fetch_batch_sizeContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#conditional_expression}. + * @param ctx the parse tree + */ + void enterConditional_expression(EQLParser.Conditional_expressionContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#conditional_expression}. + * @param ctx the parse tree + */ + void exitConditional_expression(EQLParser.Conditional_expressionContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#conditional_term}. + * @param ctx the parse tree + */ + void enterConditional_term(EQLParser.Conditional_termContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#conditional_term}. + * @param ctx the parse tree + */ + void exitConditional_term(EQLParser.Conditional_termContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#conditional_factor}. + * @param ctx the parse tree + */ + void enterConditional_factor(EQLParser.Conditional_factorContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#conditional_factor}. + * @param ctx the parse tree + */ + void exitConditional_factor(EQLParser.Conditional_factorContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#conditional_primary}. + * @param ctx the parse tree + */ + void enterConditional_primary(EQLParser.Conditional_primaryContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#conditional_primary}. + * @param ctx the parse tree + */ + void exitConditional_primary(EQLParser.Conditional_primaryContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#any_expression}. + * @param ctx the parse tree + */ + void enterAny_expression(EQLParser.Any_expressionContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#any_expression}. + * @param ctx the parse tree + */ + void exitAny_expression(EQLParser.Any_expressionContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#in_expression}. + * @param ctx the parse tree + */ + void enterIn_expression(EQLParser.In_expressionContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#in_expression}. + * @param ctx the parse tree + */ + void exitIn_expression(EQLParser.In_expressionContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#in_value}. + * @param ctx the parse tree + */ + void enterIn_value(EQLParser.In_valueContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#in_value}. + * @param ctx the parse tree + */ + void exitIn_value(EQLParser.In_valueContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#between_expression}. + * @param ctx the parse tree + */ + void enterBetween_expression(EQLParser.Between_expressionContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#between_expression}. + * @param ctx the parse tree + */ + void exitBetween_expression(EQLParser.Between_expressionContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#inrange_expression}. + * @param ctx the parse tree + */ + void enterInrange_expression(EQLParser.Inrange_expressionContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#inrange_expression}. + * @param ctx the parse tree + */ + void exitInrange_expression(EQLParser.Inrange_expressionContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#propertyBetween_expression}. + * @param ctx the parse tree + */ + void enterPropertyBetween_expression(EQLParser.PropertyBetween_expressionContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#propertyBetween_expression}. + * @param ctx the parse tree + */ + void exitPropertyBetween_expression(EQLParser.PropertyBetween_expressionContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#isNull_expression}. + * @param ctx the parse tree + */ + void enterIsNull_expression(EQLParser.IsNull_expressionContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#isNull_expression}. + * @param ctx the parse tree + */ + void exitIsNull_expression(EQLParser.IsNull_expressionContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#isNotNull_expression}. + * @param ctx the parse tree + */ + void enterIsNotNull_expression(EQLParser.IsNotNull_expressionContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#isNotNull_expression}. + * @param ctx the parse tree + */ + void exitIsNotNull_expression(EQLParser.IsNotNull_expressionContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#isEmpty_expression}. + * @param ctx the parse tree + */ + void enterIsEmpty_expression(EQLParser.IsEmpty_expressionContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#isEmpty_expression}. + * @param ctx the parse tree + */ + void exitIsEmpty_expression(EQLParser.IsEmpty_expressionContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#isNotEmpty_expression}. + * @param ctx the parse tree + */ + void enterIsNotEmpty_expression(EQLParser.IsNotEmpty_expressionContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#isNotEmpty_expression}. + * @param ctx the parse tree + */ + void exitIsNotEmpty_expression(EQLParser.IsNotEmpty_expressionContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#like_expression}. + * @param ctx the parse tree + */ + void enterLike_expression(EQLParser.Like_expressionContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#like_expression}. + * @param ctx the parse tree + */ + void exitLike_expression(EQLParser.Like_expressionContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#like_op}. + * @param ctx the parse tree + */ + void enterLike_op(EQLParser.Like_opContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#like_op}. + * @param ctx the parse tree + */ + void exitLike_op(EQLParser.Like_opContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#comparison_expression}. + * @param ctx the parse tree + */ + void enterComparison_expression(EQLParser.Comparison_expressionContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#comparison_expression}. + * @param ctx the parse tree + */ + void exitComparison_expression(EQLParser.Comparison_expressionContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#comparison_operator}. + * @param ctx the parse tree + */ + void enterComparison_operator(EQLParser.Comparison_operatorContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#comparison_operator}. + * @param ctx the parse tree + */ + void exitComparison_operator(EQLParser.Comparison_operatorContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#value_expression}. + * @param ctx the parse tree + */ + void enterValue_expression(EQLParser.Value_expressionContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#value_expression}. + * @param ctx the parse tree + */ + void exitValue_expression(EQLParser.Value_expressionContext ctx); + /** + * Enter a parse tree produced by {@link EQLParser#literal}. + * @param ctx the parse tree + */ + void enterLiteral(EQLParser.LiteralContext ctx); + /** + * Exit a parse tree produced by {@link EQLParser#literal}. + * @param ctx the parse tree + */ + void exitLiteral(EQLParser.LiteralContext ctx); } \ No newline at end of file diff --git a/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLParser.java b/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLParser.java index 31e012d79..f6c7f0fad 100644 --- a/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLParser.java +++ b/src/main/java/io/ebeaninternal/server/grammer/antlr/EQLParser.java @@ -1,4 +1,4 @@ -// Generated from C:/dev/ebean/ebean/src/test/resources/EQL.g4 by ANTLR 4.7.1 +// Generated from /home/rob/github/ebean-dir/ebean/src/test/resources/EQL.g4 by ANTLR 4.7.2 package io.ebeaninternal.server.grammer.antlr; import org.antlr.v4.runtime.NoViableAltException; @@ -20,2816 +20,2573 @@ import org.antlr.v4.runtime.tree.TerminalNode; import java.util.List; -@SuppressWarnings({ "all", "warnings", "unchecked", "unused", "cast" }) +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) public class EQLParser extends Parser { - static { - RuntimeMetaData.checkVersion("4.7.1", RuntimeMetaData.VERSION); - } - - protected static final DFA[] _decisionToDFA; - protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache(); - public static final int T__0 = 1, T__1 = 2, T__2 = 3, T__3 = 4, T__4 = 5, T__5 = 6, T__6 = 7, T__7 = 8, T__8 = 9, - T__9 = 10, T__10 = 11, T__11 = 12, T__12 = 13, T__13 = 14, T__14 = 15, T__15 = 16, T__16 = 17, T__17 = 18, - T__18 = 19, T__19 = 20, T__20 = 21, T__21 = 22, T__22 = 23, T__23 = 24, T__24 = 25, T__25 = 26, T__26 = 27, - T__27 = 28, T__28 = 29, T__29 = 30, T__30 = 31, T__31 = 32, T__32 = 33, T__33 = 34, T__34 = 35, T__35 = 36, - T__36 = 37, T__37 = 38, T__38 = 39, T__39 = 40, T__40 = 41, T__41 = 42, T__42 = 43, T__43 = 44, T__44 = 45, - T__45 = 46, T__46 = 47, T__47 = 48, T__48 = 49, T__49 = 50, T__50 = 51, T__51 = 52, T__52 = 53, T__53 = 54, - T__54 = 55, T__55 = 56, T__56 = 57, T__57 = 58, INPUT_VARIABLE = 59, PATH_VARIABLE = 60, BOOLEAN_LITERAL = 61, - NUMBER_LITERAL = 62, DOUBLE = 63, INT = 64, ZERO = 65, STRING_LITERAL = 66, WS = 67; - public static final int RULE_select_statement = 0, RULE_select_clause = 1, RULE_distinct = 2, RULE_fetch_clause = 3, - RULE_where_clause = 4, RULE_orderby_clause = 5, RULE_orderby_property = 6, RULE_nulls_firstlast = 7, - RULE_asc_desc = 8, RULE_limit_clause = 9, RULE_offset_clause = 10, RULE_fetch_path = 11, - RULE_fetch_property_set = 12, RULE_fetch_property_group = 13, RULE_fetch_property = 14, - RULE_fetch_query_hint = 15, RULE_fetch_lazy_hint = 16, RULE_fetch_option = 17, RULE_fetch_query_option = 18, - RULE_fetch_lazy_option = 19, RULE_fetch_batch_size = 20, RULE_conditional_expression = 21, - RULE_conditional_term = 22, RULE_conditional_factor = 23, RULE_conditional_primary = 24, RULE_any_expression = 25, - RULE_in_expression = 26, RULE_in_value = 27, RULE_between_expression = 28, RULE_propertyBetween_expression = 29, - RULE_isNull_expression = 30, RULE_isNotNull_expression = 31, RULE_isEmpty_expression = 32, - RULE_isNotEmpty_expression = 33, RULE_like_expression = 34, RULE_like_op = 35, RULE_comparison_expression = 36, - RULE_comparison_operator = 37, RULE_value_expression = 38, RULE_literal = 39; - public static final String[] ruleNames = { "select_statement", "select_clause", "distinct", "fetch_clause", - "where_clause", "orderby_clause", "orderby_property", "nulls_firstlast", "asc_desc", "limit_clause", - "offset_clause", "fetch_path", "fetch_property_set", "fetch_property_group", "fetch_property", "fetch_query_hint", - "fetch_lazy_hint", "fetch_option", "fetch_query_option", "fetch_lazy_option", "fetch_batch_size", - "conditional_expression", "conditional_term", "conditional_factor", "conditional_primary", "any_expression", - "in_expression", "in_value", "between_expression", "propertyBetween_expression", "isNull_expression", - "isNotNull_expression", "isEmpty_expression", "isNotEmpty_expression", "like_expression", "like_op", - "comparison_expression", "comparison_operator", "value_expression", "literal" }; - - private static final String[] _LITERAL_NAMES = { null, "'select'", "'('", "')'", "'distinct'", "'where'", "'order'", - "'by'", "','", "'nulls'", "'first'", "'last'", "'asc'", "'desc'", "'limit'", "'offset'", "'fetch'", "'+'", - "'query'", "'lazy'", "'or'", "'and'", "'not'", "'in'", "'between'", "'is'", "'null'", "'isNull'", "'isNotNull'", - "'notNull'", "'empty'", "'isEmpty'", "'isNotEmpty'", "'notEmpty'", "'like'", "'ilike'", "'contains'", - "'icontains'", "'startsWith'", "'istartsWith'", "'endsWith'", "'iendsWith'", "'='", "'eq'", "'>'", "'gt'", "'>='", - "'ge'", "'gte'", "'<'", "'lt'", "'<='", "'le'", "'lte'", "'<>'", "'!='", "'ne'", "'ieq'", "'ine'", null, null, - null, null, null, null, "'0'" }; - private static final String[] _SYMBOLIC_NAMES = { null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, null, null, null, "INPUT_VARIABLE", "PATH_VARIABLE", "BOOLEAN_LITERAL", - "NUMBER_LITERAL", "DOUBLE", "INT", "ZERO", "STRING_LITERAL", "WS" }; - public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); - - /** - * @deprecated Use {@link #VOCABULARY} instead. - */ - @Deprecated - public static final String[] tokenNames; - static { - tokenNames = new String[_SYMBOLIC_NAMES.length]; - for (int i = 0; i < tokenNames.length; i++) { - tokenNames[i] = VOCABULARY.getLiteralName(i); - if (tokenNames[i] == null) { - tokenNames[i] = VOCABULARY.getSymbolicName(i); - } - - if (tokenNames[i] == null) { - tokenNames[i] = ""; - } - } - } - - @Override - @Deprecated - public String[] getTokenNames() { - return tokenNames; - } - - @Override - - public Vocabulary getVocabulary() { - return VOCABULARY; - } - - @Override - public String getGrammarFileName() { - return "EQL.g4"; - } - - @Override - public String[] getRuleNames() { - return ruleNames; - } - - @Override - public String getSerializedATN() { - return _serializedATN; - } - - @Override - public ATN getATN() { - return _ATN; - } - - public EQLParser(TokenStream input) { - super(input); - _interp = new ParserATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache); - } - - public static class Select_statementContext extends ParserRuleContext { - public TerminalNode EOF() { - return getToken(EQLParser.EOF, 0); - } - - public Select_clauseContext select_clause() { - return getRuleContext(Select_clauseContext.class, 0); - } - - public List fetch_clause() { - return getRuleContexts(Fetch_clauseContext.class); - } - - public Fetch_clauseContext fetch_clause(int i) { - return getRuleContext(Fetch_clauseContext.class, i); - } - - public Where_clauseContext where_clause() { - return getRuleContext(Where_clauseContext.class, 0); - } - - public Orderby_clauseContext orderby_clause() { - return getRuleContext(Orderby_clauseContext.class, 0); - } - - public Limit_clauseContext limit_clause() { - return getRuleContext(Limit_clauseContext.class, 0); - } - - public Select_statementContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_select_statement; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterSelect_statement(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitSelect_statement(this); - } - } - - public final Select_statementContext select_statement() throws RecognitionException { - Select_statementContext _localctx = new Select_statementContext(_ctx, getState()); - enterRule(_localctx, 0, RULE_select_statement); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(81); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == T__0) { - { - setState(80); - select_clause(); - } - } - - setState(86); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == T__15) { - { - { - setState(83); - fetch_clause(); - } - } - setState(88); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(90); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == T__4) { - { - setState(89); - where_clause(); - } - } - - setState(93); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == T__5) { - { - setState(92); - orderby_clause(); - } - } - - setState(96); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == T__13) { - { - setState(95); - limit_clause(); - } - } - - setState(98); - match(EOF); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Select_clauseContext extends ParserRuleContext { - public Fetch_property_groupContext fetch_property_group() { - return getRuleContext(Fetch_property_groupContext.class, 0); - } - - public DistinctContext distinct() { - return getRuleContext(DistinctContext.class, 0); - } - - public Select_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_select_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterSelect_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitSelect_clause(this); - } - } - - public final Select_clauseContext select_clause() throws RecognitionException { - Select_clauseContext _localctx = new Select_clauseContext(_ctx, getState()); - enterRule(_localctx, 2, RULE_select_clause); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(100); - match(T__0); - setState(102); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == T__3) { - { - setState(101); - distinct(); - } - } - - setState(104); - match(T__1); - setState(105); - fetch_property_group(); - setState(106); - match(T__2); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class DistinctContext extends ParserRuleContext { - public DistinctContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_distinct; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterDistinct(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitDistinct(this); - } - } - - public final DistinctContext distinct() throws RecognitionException { - DistinctContext _localctx = new DistinctContext(_ctx, getState()); - enterRule(_localctx, 4, RULE_distinct); - try { - enterOuterAlt(_localctx, 1); - { - setState(108); - match(T__3); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Fetch_clauseContext extends ParserRuleContext { - public Fetch_pathContext fetch_path() { - return getRuleContext(Fetch_pathContext.class, 0); - } - - public Fetch_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_fetch_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterFetch_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitFetch_clause(this); - } - } - - public final Fetch_clauseContext fetch_clause() throws RecognitionException { - Fetch_clauseContext _localctx = new Fetch_clauseContext(_ctx, getState()); - enterRule(_localctx, 6, RULE_fetch_clause); - try { - enterOuterAlt(_localctx, 1); - { - setState(110); - fetch_path(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Where_clauseContext extends ParserRuleContext { - public Conditional_expressionContext conditional_expression() { - return getRuleContext(Conditional_expressionContext.class, 0); - } - - public Where_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_where_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterWhere_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitWhere_clause(this); - } - } - - public final Where_clauseContext where_clause() throws RecognitionException { - Where_clauseContext _localctx = new Where_clauseContext(_ctx, getState()); - enterRule(_localctx, 8, RULE_where_clause); - try { - enterOuterAlt(_localctx, 1); - { - setState(112); - match(T__4); - setState(113); - conditional_expression(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Orderby_clauseContext extends ParserRuleContext { - public List orderby_property() { - return getRuleContexts(Orderby_propertyContext.class); - } - - public Orderby_propertyContext orderby_property(int i) { - return getRuleContext(Orderby_propertyContext.class, i); - } - - public Orderby_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_orderby_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterOrderby_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitOrderby_clause(this); - } - } - - public final Orderby_clauseContext orderby_clause() throws RecognitionException { - Orderby_clauseContext _localctx = new Orderby_clauseContext(_ctx, getState()); - enterRule(_localctx, 10, RULE_orderby_clause); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(115); - match(T__5); - setState(116); - match(T__6); - setState(117); - orderby_property(); - setState(122); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == T__7) { - { - { - setState(118); - match(T__7); - setState(119); - orderby_property(); - } - } - setState(124); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Orderby_propertyContext extends ParserRuleContext { - public TerminalNode PATH_VARIABLE() { - return getToken(EQLParser.PATH_VARIABLE, 0); - } - - public Asc_descContext asc_desc() { - return getRuleContext(Asc_descContext.class, 0); - } - - public Nulls_firstlastContext nulls_firstlast() { - return getRuleContext(Nulls_firstlastContext.class, 0); - } - - public Orderby_propertyContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_orderby_property; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterOrderby_property(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitOrderby_property(this); - } - } - - public final Orderby_propertyContext orderby_property() throws RecognitionException { - Orderby_propertyContext _localctx = new Orderby_propertyContext(_ctx, getState()); - enterRule(_localctx, 12, RULE_orderby_property); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(125); - match(PATH_VARIABLE); - setState(127); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == T__11 || _la == T__12) { - { - setState(126); - asc_desc(); - } - } - - setState(130); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == T__8) { - { - setState(129); - nulls_firstlast(); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Nulls_firstlastContext extends ParserRuleContext { - public Nulls_firstlastContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_nulls_firstlast; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterNulls_firstlast(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitNulls_firstlast(this); - } - } - - public final Nulls_firstlastContext nulls_firstlast() throws RecognitionException { - Nulls_firstlastContext _localctx = new Nulls_firstlastContext(_ctx, getState()); - enterRule(_localctx, 14, RULE_nulls_firstlast); - try { - setState(136); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 9, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); { - setState(132); - match(T__8); - setState(133); - match(T__9); - } - break; - case 2: - enterOuterAlt(_localctx, 2); { - setState(134); - match(T__8); - setState(135); - match(T__10); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Asc_descContext extends ParserRuleContext { - public Asc_descContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_asc_desc; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterAsc_desc(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitAsc_desc(this); - } - } - - public final Asc_descContext asc_desc() throws RecognitionException { - Asc_descContext _localctx = new Asc_descContext(_ctx, getState()); - enterRule(_localctx, 16, RULE_asc_desc); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(138); - _la = _input.LA(1); - if (!(_la == T__11 || _la == T__12)) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) - matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Limit_clauseContext extends ParserRuleContext { - public TerminalNode NUMBER_LITERAL() { - return getToken(EQLParser.NUMBER_LITERAL, 0); - } - - public Offset_clauseContext offset_clause() { - return getRuleContext(Offset_clauseContext.class, 0); - } - - public Limit_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_limit_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterLimit_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitLimit_clause(this); - } - } - - public final Limit_clauseContext limit_clause() throws RecognitionException { - Limit_clauseContext _localctx = new Limit_clauseContext(_ctx, getState()); - enterRule(_localctx, 18, RULE_limit_clause); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(140); - match(T__13); - setState(141); - match(NUMBER_LITERAL); - setState(143); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == T__14) { - { - setState(142); - offset_clause(); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Offset_clauseContext extends ParserRuleContext { - public TerminalNode NUMBER_LITERAL() { - return getToken(EQLParser.NUMBER_LITERAL, 0); - } - - public Offset_clauseContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_offset_clause; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterOffset_clause(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitOffset_clause(this); - } - } - - public final Offset_clauseContext offset_clause() throws RecognitionException { - Offset_clauseContext _localctx = new Offset_clauseContext(_ctx, getState()); - enterRule(_localctx, 20, RULE_offset_clause); - try { - enterOuterAlt(_localctx, 1); - { - setState(145); - match(T__14); - setState(146); - match(NUMBER_LITERAL); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Fetch_pathContext extends ParserRuleContext { - public TerminalNode PATH_VARIABLE() { - return getToken(EQLParser.PATH_VARIABLE, 0); - } - - public Fetch_optionContext fetch_option() { - return getRuleContext(Fetch_optionContext.class, 0); - } - - public Fetch_property_setContext fetch_property_set() { - return getRuleContext(Fetch_property_setContext.class, 0); - } - - public Fetch_pathContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_fetch_path; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterFetch_path(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitFetch_path(this); - } - } - - public final Fetch_pathContext fetch_path() throws RecognitionException { - Fetch_pathContext _localctx = new Fetch_pathContext(_ctx, getState()); - enterRule(_localctx, 22, RULE_fetch_path); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(148); - match(T__15); - setState(150); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == T__17 || _la == T__18) { - { - setState(149); - fetch_option(); - } - } - - setState(152); - match(PATH_VARIABLE); - setState(154); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == T__1) { - { - setState(153); - fetch_property_set(); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Fetch_property_setContext extends ParserRuleContext { - public Fetch_property_groupContext fetch_property_group() { - return getRuleContext(Fetch_property_groupContext.class, 0); - } - - public Fetch_property_setContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_fetch_property_set; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterFetch_property_set(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitFetch_property_set(this); - } - } - - public final Fetch_property_setContext fetch_property_set() throws RecognitionException { - Fetch_property_setContext _localctx = new Fetch_property_setContext(_ctx, getState()); - enterRule(_localctx, 24, RULE_fetch_property_set); - try { - enterOuterAlt(_localctx, 1); - { - setState(156); - match(T__1); - setState(157); - fetch_property_group(); - setState(158); - match(T__2); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Fetch_property_groupContext extends ParserRuleContext { - public List fetch_property() { - return getRuleContexts(Fetch_propertyContext.class); - } - - public Fetch_propertyContext fetch_property(int i) { - return getRuleContext(Fetch_propertyContext.class, i); - } - - public Fetch_property_groupContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_fetch_property_group; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterFetch_property_group(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitFetch_property_group(this); - } - } - - public final Fetch_property_groupContext fetch_property_group() throws RecognitionException { - Fetch_property_groupContext _localctx = new Fetch_property_groupContext(_ctx, getState()); - enterRule(_localctx, 26, RULE_fetch_property_group); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(160); - fetch_property(); - setState(165); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == T__7) { - { - { - setState(161); - match(T__7); - setState(162); - fetch_property(); - } - } - setState(167); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Fetch_propertyContext extends ParserRuleContext { - public TerminalNode PATH_VARIABLE() { - return getToken(EQLParser.PATH_VARIABLE, 0); - } - - public Fetch_query_hintContext fetch_query_hint() { - return getRuleContext(Fetch_query_hintContext.class, 0); - } - - public Fetch_lazy_hintContext fetch_lazy_hint() { - return getRuleContext(Fetch_lazy_hintContext.class, 0); - } - - public Fetch_propertyContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_fetch_property; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterFetch_property(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitFetch_property(this); - } - } - - public final Fetch_propertyContext fetch_property() throws RecognitionException { - Fetch_propertyContext _localctx = new Fetch_propertyContext(_ctx, getState()); - enterRule(_localctx, 28, RULE_fetch_property); - try { - setState(171); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 14, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); { - setState(168); - match(PATH_VARIABLE); - } - break; - case 2: - enterOuterAlt(_localctx, 2); { - setState(169); - fetch_query_hint(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); { - setState(170); - fetch_lazy_hint(); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Fetch_query_hintContext extends ParserRuleContext { - public Fetch_query_optionContext fetch_query_option() { - return getRuleContext(Fetch_query_optionContext.class, 0); - } - - public Fetch_query_hintContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_fetch_query_hint; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterFetch_query_hint(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitFetch_query_hint(this); - } - } - - public final Fetch_query_hintContext fetch_query_hint() throws RecognitionException { - Fetch_query_hintContext _localctx = new Fetch_query_hintContext(_ctx, getState()); - enterRule(_localctx, 30, RULE_fetch_query_hint); - try { - enterOuterAlt(_localctx, 1); - { - setState(173); - match(T__16); - setState(174); - fetch_query_option(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Fetch_lazy_hintContext extends ParserRuleContext { - public Fetch_lazy_optionContext fetch_lazy_option() { - return getRuleContext(Fetch_lazy_optionContext.class, 0); - } - - public Fetch_lazy_hintContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_fetch_lazy_hint; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterFetch_lazy_hint(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitFetch_lazy_hint(this); - } - } - - public final Fetch_lazy_hintContext fetch_lazy_hint() throws RecognitionException { - Fetch_lazy_hintContext _localctx = new Fetch_lazy_hintContext(_ctx, getState()); - enterRule(_localctx, 32, RULE_fetch_lazy_hint); - try { - enterOuterAlt(_localctx, 1); - { - setState(176); - match(T__16); - setState(177); - fetch_lazy_option(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Fetch_optionContext extends ParserRuleContext { - public Fetch_query_optionContext fetch_query_option() { - return getRuleContext(Fetch_query_optionContext.class, 0); - } - - public Fetch_lazy_optionContext fetch_lazy_option() { - return getRuleContext(Fetch_lazy_optionContext.class, 0); - } - - public Fetch_optionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_fetch_option; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterFetch_option(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitFetch_option(this); - } - } - - public final Fetch_optionContext fetch_option() throws RecognitionException { - Fetch_optionContext _localctx = new Fetch_optionContext(_ctx, getState()); - enterRule(_localctx, 34, RULE_fetch_option); - try { - setState(181); - _errHandler.sync(this); - switch (_input.LA(1)) { - case T__17: - enterOuterAlt(_localctx, 1); { - setState(179); - fetch_query_option(); - } - break; - case T__18: - enterOuterAlt(_localctx, 2); { - setState(180); - fetch_lazy_option(); - } - break; - default: - throw new NoViableAltException(this); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Fetch_query_optionContext extends ParserRuleContext { - public Fetch_batch_sizeContext fetch_batch_size() { - return getRuleContext(Fetch_batch_sizeContext.class, 0); - } - - public Fetch_query_optionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_fetch_query_option; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterFetch_query_option(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitFetch_query_option(this); - } - } - - public final Fetch_query_optionContext fetch_query_option() throws RecognitionException { - Fetch_query_optionContext _localctx = new Fetch_query_optionContext(_ctx, getState()); - enterRule(_localctx, 36, RULE_fetch_query_option); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(183); - match(T__17); - setState(185); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == T__1) { - { - setState(184); - fetch_batch_size(); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Fetch_lazy_optionContext extends ParserRuleContext { - public Fetch_batch_sizeContext fetch_batch_size() { - return getRuleContext(Fetch_batch_sizeContext.class, 0); - } - - public Fetch_lazy_optionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_fetch_lazy_option; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterFetch_lazy_option(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitFetch_lazy_option(this); - } - } - - public final Fetch_lazy_optionContext fetch_lazy_option() throws RecognitionException { - Fetch_lazy_optionContext _localctx = new Fetch_lazy_optionContext(_ctx, getState()); - enterRule(_localctx, 38, RULE_fetch_lazy_option); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(187); - match(T__18); - setState(189); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == T__1) { - { - setState(188); - fetch_batch_size(); - } - } - - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Fetch_batch_sizeContext extends ParserRuleContext { - public TerminalNode NUMBER_LITERAL() { - return getToken(EQLParser.NUMBER_LITERAL, 0); - } - - public Fetch_batch_sizeContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_fetch_batch_size; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterFetch_batch_size(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitFetch_batch_size(this); - } - } - - public final Fetch_batch_sizeContext fetch_batch_size() throws RecognitionException { - Fetch_batch_sizeContext _localctx = new Fetch_batch_sizeContext(_ctx, getState()); - enterRule(_localctx, 40, RULE_fetch_batch_size); - try { - enterOuterAlt(_localctx, 1); - { - setState(191); - match(T__1); - setState(192); - match(NUMBER_LITERAL); - setState(193); - match(T__2); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Conditional_expressionContext extends ParserRuleContext { - public List conditional_term() { - return getRuleContexts(Conditional_termContext.class); - } - - public Conditional_termContext conditional_term(int i) { - return getRuleContext(Conditional_termContext.class, i); - } - - public Conditional_expressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_conditional_expression; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterConditional_expression(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitConditional_expression(this); - } - } - - public final Conditional_expressionContext conditional_expression() throws RecognitionException { - Conditional_expressionContext _localctx = new Conditional_expressionContext(_ctx, getState()); - enterRule(_localctx, 42, RULE_conditional_expression); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(195); - conditional_term(); - setState(200); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == T__19) { - { - { - setState(196); - match(T__19); - setState(197); - conditional_term(); - } - } - setState(202); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Conditional_termContext extends ParserRuleContext { - public List conditional_factor() { - return getRuleContexts(Conditional_factorContext.class); - } - - public Conditional_factorContext conditional_factor(int i) { - return getRuleContext(Conditional_factorContext.class, i); - } - - public Conditional_termContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_conditional_term; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterConditional_term(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitConditional_term(this); - } - } - - public final Conditional_termContext conditional_term() throws RecognitionException { - Conditional_termContext _localctx = new Conditional_termContext(_ctx, getState()); - enterRule(_localctx, 44, RULE_conditional_term); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(203); - conditional_factor(); - setState(208); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == T__20) { - { - { - setState(204); - match(T__20); - setState(205); - conditional_factor(); - } - } - setState(210); - _errHandler.sync(this); - _la = _input.LA(1); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Conditional_factorContext extends ParserRuleContext { - public Conditional_primaryContext conditional_primary() { - return getRuleContext(Conditional_primaryContext.class, 0); - } - - public Conditional_factorContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_conditional_factor; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterConditional_factor(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitConditional_factor(this); - } - } - - public final Conditional_factorContext conditional_factor() throws RecognitionException { - Conditional_factorContext _localctx = new Conditional_factorContext(_ctx, getState()); - enterRule(_localctx, 46, RULE_conditional_factor); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(212); - _errHandler.sync(this); - _la = _input.LA(1); - if (_la == T__21) { - { - setState(211); - match(T__21); - } - } - - setState(214); - conditional_primary(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Conditional_primaryContext extends ParserRuleContext { - public Any_expressionContext any_expression() { - return getRuleContext(Any_expressionContext.class, 0); - } - - public Conditional_expressionContext conditional_expression() { - return getRuleContext(Conditional_expressionContext.class, 0); - } - - public Conditional_primaryContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_conditional_primary; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterConditional_primary(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitConditional_primary(this); - } - } - - public final Conditional_primaryContext conditional_primary() throws RecognitionException { - Conditional_primaryContext _localctx = new Conditional_primaryContext(_ctx, getState()); - enterRule(_localctx, 48, RULE_conditional_primary); - try { - setState(221); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 21, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); { - setState(216); - any_expression(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); { - setState(217); - match(T__1); - setState(218); - conditional_expression(); - setState(219); - match(T__2); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Any_expressionContext extends ParserRuleContext { - public Comparison_expressionContext comparison_expression() { - return getRuleContext(Comparison_expressionContext.class, 0); - } - - public Like_expressionContext like_expression() { - return getRuleContext(Like_expressionContext.class, 0); - } - - public Between_expressionContext between_expression() { - return getRuleContext(Between_expressionContext.class, 0); - } - - public PropertyBetween_expressionContext propertyBetween_expression() { - return getRuleContext(PropertyBetween_expressionContext.class, 0); - } - - public In_expressionContext in_expression() { - return getRuleContext(In_expressionContext.class, 0); - } - - public IsNull_expressionContext isNull_expression() { - return getRuleContext(IsNull_expressionContext.class, 0); - } - - public IsNotNull_expressionContext isNotNull_expression() { - return getRuleContext(IsNotNull_expressionContext.class, 0); - } - - public IsEmpty_expressionContext isEmpty_expression() { - return getRuleContext(IsEmpty_expressionContext.class, 0); - } - - public IsNotEmpty_expressionContext isNotEmpty_expression() { - return getRuleContext(IsNotEmpty_expressionContext.class, 0); - } - - public Any_expressionContext any_expression() { - return getRuleContext(Any_expressionContext.class, 0); - } - - public Any_expressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_any_expression; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterAny_expression(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitAny_expression(this); - } - } - - public final Any_expressionContext any_expression() throws RecognitionException { - Any_expressionContext _localctx = new Any_expressionContext(_ctx, getState()); - enterRule(_localctx, 50, RULE_any_expression); - try { - setState(236); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 22, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); { - setState(223); - comparison_expression(); - } - break; - case 2: - enterOuterAlt(_localctx, 2); { - setState(224); - like_expression(); - } - break; - case 3: - enterOuterAlt(_localctx, 3); { - setState(225); - between_expression(); - } - break; - case 4: - enterOuterAlt(_localctx, 4); { - setState(226); - propertyBetween_expression(); - } - break; - case 5: - enterOuterAlt(_localctx, 5); { - setState(227); - in_expression(); - } - break; - case 6: - enterOuterAlt(_localctx, 6); { - setState(228); - isNull_expression(); - } - break; - case 7: - enterOuterAlt(_localctx, 7); { - setState(229); - isNotNull_expression(); - } - break; - case 8: - enterOuterAlt(_localctx, 8); { - setState(230); - isEmpty_expression(); - } - break; - case 9: - enterOuterAlt(_localctx, 9); { - setState(231); - isNotEmpty_expression(); - } - break; - case 10: - enterOuterAlt(_localctx, 10); { - setState(232); - match(T__1); - setState(233); - any_expression(); - setState(234); - match(T__2); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class In_expressionContext extends ParserRuleContext { - public TerminalNode PATH_VARIABLE() { - return getToken(EQLParser.PATH_VARIABLE, 0); - } - - public In_valueContext in_value() { - return getRuleContext(In_valueContext.class, 0); - } - - public In_expressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_in_expression; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterIn_expression(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitIn_expression(this); - } - } - - public final In_expressionContext in_expression() throws RecognitionException { - In_expressionContext _localctx = new In_expressionContext(_ctx, getState()); - enterRule(_localctx, 52, RULE_in_expression); - try { - enterOuterAlt(_localctx, 1); - { - setState(238); - match(PATH_VARIABLE); - setState(239); - match(T__22); - setState(240); - in_value(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class In_valueContext extends ParserRuleContext { - public TerminalNode INPUT_VARIABLE() { - return getToken(EQLParser.INPUT_VARIABLE, 0); - } - - public List value_expression() { - return getRuleContexts(Value_expressionContext.class); - } - - public Value_expressionContext value_expression(int i) { - return getRuleContext(Value_expressionContext.class, i); - } - - public In_valueContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_in_value; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterIn_value(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitIn_value(this); - } - } - - public final In_valueContext in_value() throws RecognitionException { - In_valueContext _localctx = new In_valueContext(_ctx, getState()); - enterRule(_localctx, 54, RULE_in_value); - int _la; - try { - setState(254); - _errHandler.sync(this); - switch (_input.LA(1)) { - case INPUT_VARIABLE: - enterOuterAlt(_localctx, 1); { - setState(242); - match(INPUT_VARIABLE); - } - break; - case T__1: - enterOuterAlt(_localctx, 2); { - setState(243); - match(T__1); - setState(244); - value_expression(); - setState(249); - _errHandler.sync(this); - _la = _input.LA(1); - while (_la == T__7) { - { - { - setState(245); - match(T__7); - setState(246); - value_expression(); - } - } - setState(251); - _errHandler.sync(this); - _la = _input.LA(1); - } - setState(252); - match(T__2); - } - break; - default: - throw new NoViableAltException(this); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Between_expressionContext extends ParserRuleContext { - public TerminalNode PATH_VARIABLE() { - return getToken(EQLParser.PATH_VARIABLE, 0); - } - - public List value_expression() { - return getRuleContexts(Value_expressionContext.class); - } - - public Value_expressionContext value_expression(int i) { - return getRuleContext(Value_expressionContext.class, i); - } - - public Between_expressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_between_expression; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterBetween_expression(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitBetween_expression(this); - } - } - - public final Between_expressionContext between_expression() throws RecognitionException { - Between_expressionContext _localctx = new Between_expressionContext(_ctx, getState()); - enterRule(_localctx, 56, RULE_between_expression); - try { - enterOuterAlt(_localctx, 1); - { - setState(256); - match(PATH_VARIABLE); - setState(257); - match(T__23); - setState(258); - value_expression(); - setState(259); - match(T__20); - setState(260); - value_expression(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class PropertyBetween_expressionContext extends ParserRuleContext { - public Value_expressionContext value_expression() { - return getRuleContext(Value_expressionContext.class, 0); - } - - public List PATH_VARIABLE() { - return getTokens(EQLParser.PATH_VARIABLE); - } - - public TerminalNode PATH_VARIABLE(int i) { - return getToken(EQLParser.PATH_VARIABLE, i); - } - - public PropertyBetween_expressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_propertyBetween_expression; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterPropertyBetween_expression(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitPropertyBetween_expression(this); - } - } - - public final PropertyBetween_expressionContext propertyBetween_expression() throws RecognitionException { - PropertyBetween_expressionContext _localctx = new PropertyBetween_expressionContext(_ctx, getState()); - enterRule(_localctx, 58, RULE_propertyBetween_expression); - try { - enterOuterAlt(_localctx, 1); - { - setState(262); - value_expression(); - setState(263); - match(T__23); - setState(264); - match(PATH_VARIABLE); - setState(265); - match(T__20); - setState(266); - match(PATH_VARIABLE); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class IsNull_expressionContext extends ParserRuleContext { - public TerminalNode PATH_VARIABLE() { - return getToken(EQLParser.PATH_VARIABLE, 0); - } - - public IsNull_expressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_isNull_expression; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterIsNull_expression(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitIsNull_expression(this); - } - } - - public final IsNull_expressionContext isNull_expression() throws RecognitionException { - IsNull_expressionContext _localctx = new IsNull_expressionContext(_ctx, getState()); - enterRule(_localctx, 60, RULE_isNull_expression); - try { - setState(273); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 25, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); { - setState(268); - match(PATH_VARIABLE); - setState(269); - match(T__24); - setState(270); - match(T__25); - } - break; - case 2: - enterOuterAlt(_localctx, 2); { - setState(271); - match(PATH_VARIABLE); - setState(272); - match(T__26); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class IsNotNull_expressionContext extends ParserRuleContext { - public TerminalNode PATH_VARIABLE() { - return getToken(EQLParser.PATH_VARIABLE, 0); - } - - public IsNotNull_expressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_isNotNull_expression; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterIsNotNull_expression(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitIsNotNull_expression(this); - } - } - - public final IsNotNull_expressionContext isNotNull_expression() throws RecognitionException { - IsNotNull_expressionContext _localctx = new IsNotNull_expressionContext(_ctx, getState()); - enterRule(_localctx, 62, RULE_isNotNull_expression); - try { - setState(283); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 26, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); { - setState(275); - match(PATH_VARIABLE); - setState(276); - match(T__24); - setState(277); - match(T__21); - setState(278); - match(T__25); - } - break; - case 2: - enterOuterAlt(_localctx, 2); { - setState(279); - match(PATH_VARIABLE); - setState(280); - match(T__27); - } - break; - case 3: - enterOuterAlt(_localctx, 3); { - setState(281); - match(PATH_VARIABLE); - setState(282); - match(T__28); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class IsEmpty_expressionContext extends ParserRuleContext { - public TerminalNode PATH_VARIABLE() { - return getToken(EQLParser.PATH_VARIABLE, 0); - } - - public IsEmpty_expressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_isEmpty_expression; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterIsEmpty_expression(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitIsEmpty_expression(this); - } - } - - public final IsEmpty_expressionContext isEmpty_expression() throws RecognitionException { - IsEmpty_expressionContext _localctx = new IsEmpty_expressionContext(_ctx, getState()); - enterRule(_localctx, 64, RULE_isEmpty_expression); - try { - setState(290); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 27, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); { - setState(285); - match(PATH_VARIABLE); - setState(286); - match(T__24); - setState(287); - match(T__29); - } - break; - case 2: - enterOuterAlt(_localctx, 2); { - setState(288); - match(PATH_VARIABLE); - setState(289); - match(T__30); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class IsNotEmpty_expressionContext extends ParserRuleContext { - public TerminalNode PATH_VARIABLE() { - return getToken(EQLParser.PATH_VARIABLE, 0); - } - - public IsNotEmpty_expressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_isNotEmpty_expression; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterIsNotEmpty_expression(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitIsNotEmpty_expression(this); - } - } - - public final IsNotEmpty_expressionContext isNotEmpty_expression() throws RecognitionException { - IsNotEmpty_expressionContext _localctx = new IsNotEmpty_expressionContext(_ctx, getState()); - enterRule(_localctx, 66, RULE_isNotEmpty_expression); - try { - setState(300); - _errHandler.sync(this); - switch (getInterpreter().adaptivePredict(_input, 28, _ctx)) { - case 1: - enterOuterAlt(_localctx, 1); { - setState(292); - match(PATH_VARIABLE); - setState(293); - match(T__24); - setState(294); - match(T__21); - setState(295); - match(T__29); - } - break; - case 2: - enterOuterAlt(_localctx, 2); { - setState(296); - match(PATH_VARIABLE); - setState(297); - match(T__31); - } - break; - case 3: - enterOuterAlt(_localctx, 3); { - setState(298); - match(PATH_VARIABLE); - setState(299); - match(T__32); - } - break; - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Like_expressionContext extends ParserRuleContext { - public TerminalNode PATH_VARIABLE() { - return getToken(EQLParser.PATH_VARIABLE, 0); - } - - public Like_opContext like_op() { - return getRuleContext(Like_opContext.class, 0); - } - - public Value_expressionContext value_expression() { - return getRuleContext(Value_expressionContext.class, 0); - } - - public Like_expressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_like_expression; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterLike_expression(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitLike_expression(this); - } - } - - public final Like_expressionContext like_expression() throws RecognitionException { - Like_expressionContext _localctx = new Like_expressionContext(_ctx, getState()); - enterRule(_localctx, 68, RULE_like_expression); - try { - enterOuterAlt(_localctx, 1); - { - setState(302); - match(PATH_VARIABLE); - setState(303); - like_op(); - setState(304); - value_expression(); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Like_opContext extends ParserRuleContext { - public Like_opContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_like_op; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterLike_op(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitLike_op(this); - } - } - - public final Like_opContext like_op() throws RecognitionException { - Like_opContext _localctx = new Like_opContext(_ctx, getState()); - enterRule(_localctx, 70, RULE_like_op); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(306); - _la = _input.LA(1); - if (!((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__33) | (1L << T__34) | (1L << T__35) | (1L << T__36) - | (1L << T__37) | (1L << T__38) | (1L << T__39) | (1L << T__40))) != 0))) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) - matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Comparison_expressionContext extends ParserRuleContext { - public TerminalNode PATH_VARIABLE() { - return getToken(EQLParser.PATH_VARIABLE, 0); - } - - public Comparison_operatorContext comparison_operator() { - return getRuleContext(Comparison_operatorContext.class, 0); - } - - public Value_expressionContext value_expression() { - return getRuleContext(Value_expressionContext.class, 0); - } - - public Comparison_expressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_comparison_expression; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterComparison_expression(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitComparison_expression(this); - } - } - - public final Comparison_expressionContext comparison_expression() throws RecognitionException { - Comparison_expressionContext _localctx = new Comparison_expressionContext(_ctx, getState()); - enterRule(_localctx, 72, RULE_comparison_expression); - try { - setState(316); - _errHandler.sync(this); - switch (_input.LA(1)) { - case PATH_VARIABLE: - enterOuterAlt(_localctx, 1); { - setState(308); - match(PATH_VARIABLE); - setState(309); - comparison_operator(); - setState(310); - value_expression(); - } - break; - case INPUT_VARIABLE: - case BOOLEAN_LITERAL: - case NUMBER_LITERAL: - case STRING_LITERAL: - enterOuterAlt(_localctx, 2); { - setState(312); - value_expression(); - setState(313); - comparison_operator(); - setState(314); - match(PATH_VARIABLE); - } - break; - default: - throw new NoViableAltException(this); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Comparison_operatorContext extends ParserRuleContext { - public Comparison_operatorContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_comparison_operator; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterComparison_operator(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitComparison_operator(this); - } - } - - public final Comparison_operatorContext comparison_operator() throws RecognitionException { - Comparison_operatorContext _localctx = new Comparison_operatorContext(_ctx, getState()); - enterRule(_localctx, 74, RULE_comparison_operator); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(318); - _la = _input.LA(1); - if (!((((_la) & ~0x3f) == 0 && ((1L << _la) - & ((1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) - | (1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__50) | (1L << T__51) | (1L << T__52) - | (1L << T__53) | (1L << T__54) | (1L << T__55) | (1L << T__56) | (1L << T__57))) != 0))) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) - matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class Value_expressionContext extends ParserRuleContext { - public LiteralContext literal() { - return getRuleContext(LiteralContext.class, 0); - } - - public TerminalNode INPUT_VARIABLE() { - return getToken(EQLParser.INPUT_VARIABLE, 0); - } - - public Value_expressionContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_value_expression; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterValue_expression(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitValue_expression(this); - } - } - - public final Value_expressionContext value_expression() throws RecognitionException { - Value_expressionContext _localctx = new Value_expressionContext(_ctx, getState()); - enterRule(_localctx, 76, RULE_value_expression); - try { - setState(322); - _errHandler.sync(this); - switch (_input.LA(1)) { - case BOOLEAN_LITERAL: - case NUMBER_LITERAL: - case STRING_LITERAL: - enterOuterAlt(_localctx, 1); { - setState(320); - literal(); - } - break; - case INPUT_VARIABLE: - enterOuterAlt(_localctx, 2); { - setState(321); - match(INPUT_VARIABLE); - } - break; - default: - throw new NoViableAltException(this); - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static class LiteralContext extends ParserRuleContext { - public TerminalNode STRING_LITERAL() { - return getToken(EQLParser.STRING_LITERAL, 0); - } - - public TerminalNode BOOLEAN_LITERAL() { - return getToken(EQLParser.BOOLEAN_LITERAL, 0); - } - - public TerminalNode NUMBER_LITERAL() { - return getToken(EQLParser.NUMBER_LITERAL, 0); - } - - public LiteralContext(ParserRuleContext parent, int invokingState) { - super(parent, invokingState); - } - - @Override - public int getRuleIndex() { - return RULE_literal; - } - - @Override - public void enterRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).enterLiteral(this); - } - - @Override - public void exitRule(ParseTreeListener listener) { - if (listener instanceof EQLListener) - ((EQLListener) listener).exitLiteral(this); - } - } - - public final LiteralContext literal() throws RecognitionException { - LiteralContext _localctx = new LiteralContext(_ctx, getState()); - enterRule(_localctx, 78, RULE_literal); - int _la; - try { - enterOuterAlt(_localctx, 1); - { - setState(324); - _la = _input.LA(1); - if (!(((((_la - 61)) & ~0x3f) == 0 && ((1L << (_la - 61)) & ((1L << (BOOLEAN_LITERAL - 61)) - | (1L << (NUMBER_LITERAL - 61)) | (1L << (STRING_LITERAL - 61)))) != 0))) { - _errHandler.recoverInline(this); - } else { - if (_input.LA(1) == Token.EOF) - matchedEOF = true; - _errHandler.reportMatch(this); - consume(); - } - } - } catch (RecognitionException re) { - _localctx.exception = re; - _errHandler.reportError(this, re); - _errHandler.recover(this, re); - } finally { - exitRule(); - } - return _localctx; - } - - public static final String _serializedATN = "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3E\u0149\4\2\t\2\4" - + "\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t" - + "\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22" - + "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31" - + "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!" - + "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\3\2\5\2T\n\2\3" - + "\2\7\2W\n\2\f\2\16\2Z\13\2\3\2\5\2]\n\2\3\2\5\2`\n\2\3\2\5\2c\n\2\3\2" - + "\3\2\3\3\3\3\5\3i\n\3\3\3\3\3\3\3\3\3\3\4\3\4\3\5\3\5\3\6\3\6\3\6\3\7" - + "\3\7\3\7\3\7\3\7\7\7{\n\7\f\7\16\7~\13\7\3\b\3\b\5\b\u0082\n\b\3\b\5\b" - + "\u0085\n\b\3\t\3\t\3\t\3\t\5\t\u008b\n\t\3\n\3\n\3\13\3\13\3\13\5\13\u0092" - + "\n\13\3\f\3\f\3\f\3\r\3\r\5\r\u0099\n\r\3\r\3\r\5\r\u009d\n\r\3\16\3\16" - + "\3\16\3\16\3\17\3\17\3\17\7\17\u00a6\n\17\f\17\16\17\u00a9\13\17\3\20" - + "\3\20\3\20\5\20\u00ae\n\20\3\21\3\21\3\21\3\22\3\22\3\22\3\23\3\23\5\23" - + "\u00b8\n\23\3\24\3\24\5\24\u00bc\n\24\3\25\3\25\5\25\u00c0\n\25\3\26\3" - + "\26\3\26\3\26\3\27\3\27\3\27\7\27\u00c9\n\27\f\27\16\27\u00cc\13\27\3" - + "\30\3\30\3\30\7\30\u00d1\n\30\f\30\16\30\u00d4\13\30\3\31\5\31\u00d7\n" - + "\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32\5\32\u00e0\n\32\3\33\3\33\3\33" - + "\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\5\33\u00ef\n\33\3\34" - + "\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\7\35\u00fa\n\35\f\35\16\35\u00fd" - + "\13\35\3\35\3\35\5\35\u0101\n\35\3\36\3\36\3\36\3\36\3\36\3\36\3\37\3" - + "\37\3\37\3\37\3\37\3\37\3 \3 \3 \3 \3 \5 \u0114\n \3!\3!\3!\3!\3!\3!\3" - + "!\3!\5!\u011e\n!\3\"\3\"\3\"\3\"\3\"\5\"\u0125\n\"\3#\3#\3#\3#\3#\3#\3" - + "#\3#\5#\u012f\n#\3$\3$\3$\3$\3%\3%\3&\3&\3&\3&\3&\3&\3&\3&\5&\u013f\n" - + "&\3\'\3\'\3(\3(\5(\u0145\n(\3)\3)\3)\2\2*\2\4\6\b\n\f\16\20\22\24\26\30" - + "\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFHJLNP\2\6\3\2\16\17\3\2$+\3\2,<" - + "\4\2?@DD\2\u014a\2S\3\2\2\2\4f\3\2\2\2\6n\3\2\2\2\bp\3\2\2\2\nr\3\2\2" - + "\2\fu\3\2\2\2\16\177\3\2\2\2\20\u008a\3\2\2\2\22\u008c\3\2\2\2\24\u008e" - + "\3\2\2\2\26\u0093\3\2\2\2\30\u0096\3\2\2\2\32\u009e\3\2\2\2\34\u00a2\3" - + "\2\2\2\36\u00ad\3\2\2\2 \u00af\3\2\2\2\"\u00b2\3\2\2\2$\u00b7\3\2\2\2" - + "&\u00b9\3\2\2\2(\u00bd\3\2\2\2*\u00c1\3\2\2\2,\u00c5\3\2\2\2.\u00cd\3" - + "\2\2\2\60\u00d6\3\2\2\2\62\u00df\3\2\2\2\64\u00ee\3\2\2\2\66\u00f0\3\2" - + "\2\28\u0100\3\2\2\2:\u0102\3\2\2\2<\u0108\3\2\2\2>\u0113\3\2\2\2@\u011d" - + "\3\2\2\2B\u0124\3\2\2\2D\u012e\3\2\2\2F\u0130\3\2\2\2H\u0134\3\2\2\2J" - + "\u013e\3\2\2\2L\u0140\3\2\2\2N\u0144\3\2\2\2P\u0146\3\2\2\2RT\5\4\3\2" - + "SR\3\2\2\2ST\3\2\2\2TX\3\2\2\2UW\5\b\5\2VU\3\2\2\2WZ\3\2\2\2XV\3\2\2\2" - + "XY\3\2\2\2Y\\\3\2\2\2ZX\3\2\2\2[]\5\n\6\2\\[\3\2\2\2\\]\3\2\2\2]_\3\2" - + "\2\2^`\5\f\7\2_^\3\2\2\2_`\3\2\2\2`b\3\2\2\2ac\5\24\13\2ba\3\2\2\2bc\3" - + "\2\2\2cd\3\2\2\2de\7\2\2\3e\3\3\2\2\2fh\7\3\2\2gi\5\6\4\2hg\3\2\2\2hi" - + "\3\2\2\2ij\3\2\2\2jk\7\4\2\2kl\5\34\17\2lm\7\5\2\2m\5\3\2\2\2no\7\6\2" - + "\2o\7\3\2\2\2pq\5\30\r\2q\t\3\2\2\2rs\7\7\2\2st\5,\27\2t\13\3\2\2\2uv" - + "\7\b\2\2vw\7\t\2\2w|\5\16\b\2xy\7\n\2\2y{\5\16\b\2zx\3\2\2\2{~\3\2\2\2" - + "|z\3\2\2\2|}\3\2\2\2}\r\3\2\2\2~|\3\2\2\2\177\u0081\7>\2\2\u0080\u0082" - + "\5\22\n\2\u0081\u0080\3\2\2\2\u0081\u0082\3\2\2\2\u0082\u0084\3\2\2\2" - + "\u0083\u0085\5\20\t\2\u0084\u0083\3\2\2\2\u0084\u0085\3\2\2\2\u0085\17" - + "\3\2\2\2\u0086\u0087\7\13\2\2\u0087\u008b\7\f\2\2\u0088\u0089\7\13\2\2" - + "\u0089\u008b\7\r\2\2\u008a\u0086\3\2\2\2\u008a\u0088\3\2\2\2\u008b\21" - + "\3\2\2\2\u008c\u008d\t\2\2\2\u008d\23\3\2\2\2\u008e\u008f\7\20\2\2\u008f" - + "\u0091\7@\2\2\u0090\u0092\5\26\f\2\u0091\u0090\3\2\2\2\u0091\u0092\3\2" - + "\2\2\u0092\25\3\2\2\2\u0093\u0094\7\21\2\2\u0094\u0095\7@\2\2\u0095\27" - + "\3\2\2\2\u0096\u0098\7\22\2\2\u0097\u0099\5$\23\2\u0098\u0097\3\2\2\2" - + "\u0098\u0099\3\2\2\2\u0099\u009a\3\2\2\2\u009a\u009c\7>\2\2\u009b\u009d" - + "\5\32\16\2\u009c\u009b\3\2\2\2\u009c\u009d\3\2\2\2\u009d\31\3\2\2\2\u009e" - + "\u009f\7\4\2\2\u009f\u00a0\5\34\17\2\u00a0\u00a1\7\5\2\2\u00a1\33\3\2" - + "\2\2\u00a2\u00a7\5\36\20\2\u00a3\u00a4\7\n\2\2\u00a4\u00a6\5\36\20\2\u00a5" - + "\u00a3\3\2\2\2\u00a6\u00a9\3\2\2\2\u00a7\u00a5\3\2\2\2\u00a7\u00a8\3\2" - + "\2\2\u00a8\35\3\2\2\2\u00a9\u00a7\3\2\2\2\u00aa\u00ae\7>\2\2\u00ab\u00ae" - + "\5 \21\2\u00ac\u00ae\5\"\22\2\u00ad\u00aa\3\2\2\2\u00ad\u00ab\3\2\2\2" - + "\u00ad\u00ac\3\2\2\2\u00ae\37\3\2\2\2\u00af\u00b0\7\23\2\2\u00b0\u00b1" - + "\5&\24\2\u00b1!\3\2\2\2\u00b2\u00b3\7\23\2\2\u00b3\u00b4\5(\25\2\u00b4" - + "#\3\2\2\2\u00b5\u00b8\5&\24\2\u00b6\u00b8\5(\25\2\u00b7\u00b5\3\2\2\2" - + "\u00b7\u00b6\3\2\2\2\u00b8%\3\2\2\2\u00b9\u00bb\7\24\2\2\u00ba\u00bc\5" - + "*\26\2\u00bb\u00ba\3\2\2\2\u00bb\u00bc\3\2\2\2\u00bc\'\3\2\2\2\u00bd\u00bf" - + "\7\25\2\2\u00be\u00c0\5*\26\2\u00bf\u00be\3\2\2\2\u00bf\u00c0\3\2\2\2" - + "\u00c0)\3\2\2\2\u00c1\u00c2\7\4\2\2\u00c2\u00c3\7@\2\2\u00c3\u00c4\7\5" - + "\2\2\u00c4+\3\2\2\2\u00c5\u00ca\5.\30\2\u00c6\u00c7\7\26\2\2\u00c7\u00c9" - + "\5.\30\2\u00c8\u00c6\3\2\2\2\u00c9\u00cc\3\2\2\2\u00ca\u00c8\3\2\2\2\u00ca" - + "\u00cb\3\2\2\2\u00cb-\3\2\2\2\u00cc\u00ca\3\2\2\2\u00cd\u00d2\5\60\31" - + "\2\u00ce\u00cf\7\27\2\2\u00cf\u00d1\5\60\31\2\u00d0\u00ce\3\2\2\2\u00d1" - + "\u00d4\3\2\2\2\u00d2\u00d0\3\2\2\2\u00d2\u00d3\3\2\2\2\u00d3/\3\2\2\2" - + "\u00d4\u00d2\3\2\2\2\u00d5\u00d7\7\30\2\2\u00d6\u00d5\3\2\2\2\u00d6\u00d7" - + "\3\2\2\2\u00d7\u00d8\3\2\2\2\u00d8\u00d9\5\62\32\2\u00d9\61\3\2\2\2\u00da" - + "\u00e0\5\64\33\2\u00db\u00dc\7\4\2\2\u00dc\u00dd\5,\27\2\u00dd\u00de\7" - + "\5\2\2\u00de\u00e0\3\2\2\2\u00df\u00da\3\2\2\2\u00df\u00db\3\2\2\2\u00e0" - + "\63\3\2\2\2\u00e1\u00ef\5J&\2\u00e2\u00ef\5F$\2\u00e3\u00ef\5:\36\2\u00e4" - + "\u00ef\5<\37\2\u00e5\u00ef\5\66\34\2\u00e6\u00ef\5> \2\u00e7\u00ef\5@" - + "!\2\u00e8\u00ef\5B\"\2\u00e9\u00ef\5D#\2\u00ea\u00eb\7\4\2\2\u00eb\u00ec" - + "\5\64\33\2\u00ec\u00ed\7\5\2\2\u00ed\u00ef\3\2\2\2\u00ee\u00e1\3\2\2\2" - + "\u00ee\u00e2\3\2\2\2\u00ee\u00e3\3\2\2\2\u00ee\u00e4\3\2\2\2\u00ee\u00e5" - + "\3\2\2\2\u00ee\u00e6\3\2\2\2\u00ee\u00e7\3\2\2\2\u00ee\u00e8\3\2\2\2\u00ee" - + "\u00e9\3\2\2\2\u00ee\u00ea\3\2\2\2\u00ef\65\3\2\2\2\u00f0\u00f1\7>\2\2" - + "\u00f1\u00f2\7\31\2\2\u00f2\u00f3\58\35\2\u00f3\67\3\2\2\2\u00f4\u0101" - + "\7=\2\2\u00f5\u00f6\7\4\2\2\u00f6\u00fb\5N(\2\u00f7\u00f8\7\n\2\2\u00f8" - + "\u00fa\5N(\2\u00f9\u00f7\3\2\2\2\u00fa\u00fd\3\2\2\2\u00fb\u00f9\3\2\2" - + "\2\u00fb\u00fc\3\2\2\2\u00fc\u00fe\3\2\2\2\u00fd\u00fb\3\2\2\2\u00fe\u00ff" - + "\7\5\2\2\u00ff\u0101\3\2\2\2\u0100\u00f4\3\2\2\2\u0100\u00f5\3\2\2\2\u0101" - + "9\3\2\2\2\u0102\u0103\7>\2\2\u0103\u0104\7\32\2\2\u0104\u0105\5N(\2\u0105" - + "\u0106\7\27\2\2\u0106\u0107\5N(\2\u0107;\3\2\2\2\u0108\u0109\5N(\2\u0109" - + "\u010a\7\32\2\2\u010a\u010b\7>\2\2\u010b\u010c\7\27\2\2\u010c\u010d\7" - + ">\2\2\u010d=\3\2\2\2\u010e\u010f\7>\2\2\u010f\u0110\7\33\2\2\u0110\u0114" - + "\7\34\2\2\u0111\u0112\7>\2\2\u0112\u0114\7\35\2\2\u0113\u010e\3\2\2\2" - + "\u0113\u0111\3\2\2\2\u0114?\3\2\2\2\u0115\u0116\7>\2\2\u0116\u0117\7\33" - + "\2\2\u0117\u0118\7\30\2\2\u0118\u011e\7\34\2\2\u0119\u011a\7>\2\2\u011a" - + "\u011e\7\36\2\2\u011b\u011c\7>\2\2\u011c\u011e\7\37\2\2\u011d\u0115\3" - + "\2\2\2\u011d\u0119\3\2\2\2\u011d\u011b\3\2\2\2\u011eA\3\2\2\2\u011f\u0120" - + "\7>\2\2\u0120\u0121\7\33\2\2\u0121\u0125\7 \2\2\u0122\u0123\7>\2\2\u0123" - + "\u0125\7!\2\2\u0124\u011f\3\2\2\2\u0124\u0122\3\2\2\2\u0125C\3\2\2\2\u0126" - + "\u0127\7>\2\2\u0127\u0128\7\33\2\2\u0128\u0129\7\30\2\2\u0129\u012f\7" - + " \2\2\u012a\u012b\7>\2\2\u012b\u012f\7\"\2\2\u012c\u012d\7>\2\2\u012d" - + "\u012f\7#\2\2\u012e\u0126\3\2\2\2\u012e\u012a\3\2\2\2\u012e\u012c\3\2" - + "\2\2\u012fE\3\2\2\2\u0130\u0131\7>\2\2\u0131\u0132\5H%\2\u0132\u0133\5" - + "N(\2\u0133G\3\2\2\2\u0134\u0135\t\3\2\2\u0135I\3\2\2\2\u0136\u0137\7>" - + "\2\2\u0137\u0138\5L\'\2\u0138\u0139\5N(\2\u0139\u013f\3\2\2\2\u013a\u013b" - + "\5N(\2\u013b\u013c\5L\'\2\u013c\u013d\7>\2\2\u013d\u013f\3\2\2\2\u013e" - + "\u0136\3\2\2\2\u013e\u013a\3\2\2\2\u013fK\3\2\2\2\u0140\u0141\t\4\2\2" - + "\u0141M\3\2\2\2\u0142\u0145\5P)\2\u0143\u0145\7=\2\2\u0144\u0142\3\2\2" - + "\2\u0144\u0143\3\2\2\2\u0145O\3\2\2\2\u0146\u0147\t\5\2\2\u0147Q\3\2\2" - + "\2!SX\\_bh|\u0081\u0084\u008a\u0091\u0098\u009c\u00a7\u00ad\u00b7\u00bb" - + "\u00bf\u00ca\u00d2\u00d6\u00df\u00ee\u00fb\u0100\u0113\u011d\u0124\u012e" + "\u013e\u0144"; - public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray()); - static { - _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; - for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { - _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); - } - } + static { RuntimeMetaData.checkVersion("4.7.2", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, + T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17, + T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24, + T__24=25, T__25=26, T__26=27, T__27=28, T__28=29, T__29=30, T__30=31, + T__31=32, T__32=33, T__33=34, T__34=35, T__35=36, T__36=37, T__37=38, + T__38=39, T__39=40, T__40=41, T__41=42, T__42=43, T__43=44, T__44=45, + T__45=46, T__46=47, T__47=48, T__48=49, T__49=50, T__50=51, T__51=52, + T__52=53, T__53=54, T__54=55, T__55=56, T__56=57, T__57=58, T__58=59, + T__59=60, INPUT_VARIABLE=61, PATH_VARIABLE=62, BOOLEAN_LITERAL=63, NUMBER_LITERAL=64, + DOUBLE=65, INT=66, ZERO=67, STRING_LITERAL=68, WS=69; + public static final int + RULE_select_statement = 0, RULE_select_clause = 1, RULE_distinct = 2, + RULE_fetch_clause = 3, RULE_where_clause = 4, RULE_orderby_clause = 5, + RULE_orderby_property = 6, RULE_nulls_firstlast = 7, RULE_asc_desc = 8, + RULE_limit_clause = 9, RULE_offset_clause = 10, RULE_fetch_path = 11, + RULE_fetch_property_set = 12, RULE_fetch_property_group = 13, RULE_fetch_property = 14, + RULE_fetch_query_hint = 15, RULE_fetch_lazy_hint = 16, RULE_fetch_option = 17, + RULE_fetch_query_option = 18, RULE_fetch_lazy_option = 19, RULE_fetch_batch_size = 20, + RULE_conditional_expression = 21, RULE_conditional_term = 22, RULE_conditional_factor = 23, + RULE_conditional_primary = 24, RULE_any_expression = 25, RULE_in_expression = 26, + RULE_in_value = 27, RULE_between_expression = 28, RULE_inrange_expression = 29, + RULE_propertyBetween_expression = 30, RULE_isNull_expression = 31, RULE_isNotNull_expression = 32, + RULE_isEmpty_expression = 33, RULE_isNotEmpty_expression = 34, RULE_like_expression = 35, + RULE_like_op = 36, RULE_comparison_expression = 37, RULE_comparison_operator = 38, + RULE_value_expression = 39, RULE_literal = 40; + private static String[] makeRuleNames() { + return new String[] { + "select_statement", "select_clause", "distinct", "fetch_clause", "where_clause", + "orderby_clause", "orderby_property", "nulls_firstlast", "asc_desc", + "limit_clause", "offset_clause", "fetch_path", "fetch_property_set", + "fetch_property_group", "fetch_property", "fetch_query_hint", "fetch_lazy_hint", + "fetch_option", "fetch_query_option", "fetch_lazy_option", "fetch_batch_size", + "conditional_expression", "conditional_term", "conditional_factor", "conditional_primary", + "any_expression", "in_expression", "in_value", "between_expression", + "inrange_expression", "propertyBetween_expression", "isNull_expression", + "isNotNull_expression", "isEmpty_expression", "isNotEmpty_expression", + "like_expression", "like_op", "comparison_expression", "comparison_operator", + "value_expression", "literal" + }; + } + public static final String[] ruleNames = makeRuleNames(); + + private static String[] makeLiteralNames() { + return new String[] { + null, "'select'", "'('", "')'", "'distinct'", "'where'", "'order'", "'by'", + "','", "'nulls'", "'first'", "'last'", "'asc'", "'desc'", "'limit'", + "'offset'", "'fetch'", "'+'", "'query'", "'lazy'", "'or'", "'and'", "'not'", + "'in'", "'between'", "'inrange'", "'to'", "'is'", "'null'", "'isNull'", + "'isNotNull'", "'notNull'", "'empty'", "'isEmpty'", "'isNotEmpty'", "'notEmpty'", + "'like'", "'ilike'", "'contains'", "'icontains'", "'startsWith'", "'istartsWith'", + "'endsWith'", "'iendsWith'", "'='", "'eq'", "'>'", "'gt'", "'>='", "'ge'", + "'gte'", "'<'", "'lt'", "'<='", "'le'", "'lte'", "'<>'", "'!='", "'ne'", + "'ieq'", "'ine'", null, null, null, null, null, null, "'0'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, + null, "INPUT_VARIABLE", "PATH_VARIABLE", "BOOLEAN_LITERAL", "NUMBER_LITERAL", + "DOUBLE", "INT", "ZERO", "STRING_LITERAL", "WS" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + @Override + public String getGrammarFileName() { return "EQL.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public ATN getATN() { return _ATN; } + + public EQLParser(TokenStream input) { + super(input); + _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + public static class Select_statementContext extends ParserRuleContext { + public TerminalNode EOF() { return getToken(EQLParser.EOF, 0); } + public Select_clauseContext select_clause() { + return getRuleContext(Select_clauseContext.class,0); + } + public List fetch_clause() { + return getRuleContexts(Fetch_clauseContext.class); + } + public Fetch_clauseContext fetch_clause(int i) { + return getRuleContext(Fetch_clauseContext.class,i); + } + public Where_clauseContext where_clause() { + return getRuleContext(Where_clauseContext.class,0); + } + public Orderby_clauseContext orderby_clause() { + return getRuleContext(Orderby_clauseContext.class,0); + } + public Limit_clauseContext limit_clause() { + return getRuleContext(Limit_clauseContext.class,0); + } + public Select_statementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_select_statement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterSelect_statement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitSelect_statement(this); + } + } + + public final Select_statementContext select_statement() throws RecognitionException { + Select_statementContext _localctx = new Select_statementContext(_ctx, getState()); + enterRule(_localctx, 0, RULE_select_statement); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(83); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==T__0) { + { + setState(82); + select_clause(); + } + } + + setState(88); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__15) { + { + { + setState(85); + fetch_clause(); + } + } + setState(90); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(92); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==T__4) { + { + setState(91); + where_clause(); + } + } + + setState(95); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==T__5) { + { + setState(94); + orderby_clause(); + } + } + + setState(98); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==T__13) { + { + setState(97); + limit_clause(); + } + } + + setState(100); + match(EOF); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Select_clauseContext extends ParserRuleContext { + public Fetch_property_groupContext fetch_property_group() { + return getRuleContext(Fetch_property_groupContext.class,0); + } + public DistinctContext distinct() { + return getRuleContext(DistinctContext.class,0); + } + public Select_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_select_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterSelect_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitSelect_clause(this); + } + } + + public final Select_clauseContext select_clause() throws RecognitionException { + Select_clauseContext _localctx = new Select_clauseContext(_ctx, getState()); + enterRule(_localctx, 2, RULE_select_clause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(102); + match(T__0); + setState(104); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==T__3) { + { + setState(103); + distinct(); + } + } + + setState(106); + match(T__1); + setState(107); + fetch_property_group(); + setState(108); + match(T__2); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class DistinctContext extends ParserRuleContext { + public DistinctContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_distinct; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterDistinct(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitDistinct(this); + } + } + + public final DistinctContext distinct() throws RecognitionException { + DistinctContext _localctx = new DistinctContext(_ctx, getState()); + enterRule(_localctx, 4, RULE_distinct); + try { + enterOuterAlt(_localctx, 1); + { + setState(110); + match(T__3); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Fetch_clauseContext extends ParserRuleContext { + public Fetch_pathContext fetch_path() { + return getRuleContext(Fetch_pathContext.class,0); + } + public Fetch_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fetch_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterFetch_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitFetch_clause(this); + } + } + + public final Fetch_clauseContext fetch_clause() throws RecognitionException { + Fetch_clauseContext _localctx = new Fetch_clauseContext(_ctx, getState()); + enterRule(_localctx, 6, RULE_fetch_clause); + try { + enterOuterAlt(_localctx, 1); + { + setState(112); + fetch_path(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Where_clauseContext extends ParserRuleContext { + public Conditional_expressionContext conditional_expression() { + return getRuleContext(Conditional_expressionContext.class,0); + } + public Where_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_where_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterWhere_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitWhere_clause(this); + } + } + + public final Where_clauseContext where_clause() throws RecognitionException { + Where_clauseContext _localctx = new Where_clauseContext(_ctx, getState()); + enterRule(_localctx, 8, RULE_where_clause); + try { + enterOuterAlt(_localctx, 1); + { + setState(114); + match(T__4); + setState(115); + conditional_expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Orderby_clauseContext extends ParserRuleContext { + public List orderby_property() { + return getRuleContexts(Orderby_propertyContext.class); + } + public Orderby_propertyContext orderby_property(int i) { + return getRuleContext(Orderby_propertyContext.class,i); + } + public Orderby_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_orderby_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterOrderby_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitOrderby_clause(this); + } + } + + public final Orderby_clauseContext orderby_clause() throws RecognitionException { + Orderby_clauseContext _localctx = new Orderby_clauseContext(_ctx, getState()); + enterRule(_localctx, 10, RULE_orderby_clause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(117); + match(T__5); + setState(118); + match(T__6); + setState(119); + orderby_property(); + setState(124); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__7) { + { + { + setState(120); + match(T__7); + setState(121); + orderby_property(); + } + } + setState(126); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Orderby_propertyContext extends ParserRuleContext { + public TerminalNode PATH_VARIABLE() { return getToken(EQLParser.PATH_VARIABLE, 0); } + public Asc_descContext asc_desc() { + return getRuleContext(Asc_descContext.class,0); + } + public Nulls_firstlastContext nulls_firstlast() { + return getRuleContext(Nulls_firstlastContext.class,0); + } + public Orderby_propertyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_orderby_property; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterOrderby_property(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitOrderby_property(this); + } + } + + public final Orderby_propertyContext orderby_property() throws RecognitionException { + Orderby_propertyContext _localctx = new Orderby_propertyContext(_ctx, getState()); + enterRule(_localctx, 12, RULE_orderby_property); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(127); + match(PATH_VARIABLE); + setState(129); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==T__11 || _la==T__12) { + { + setState(128); + asc_desc(); + } + } + + setState(132); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==T__8) { + { + setState(131); + nulls_firstlast(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Nulls_firstlastContext extends ParserRuleContext { + public Nulls_firstlastContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nulls_firstlast; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterNulls_firstlast(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitNulls_firstlast(this); + } + } + + public final Nulls_firstlastContext nulls_firstlast() throws RecognitionException { + Nulls_firstlastContext _localctx = new Nulls_firstlastContext(_ctx, getState()); + enterRule(_localctx, 14, RULE_nulls_firstlast); + try { + setState(138); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,9,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(134); + match(T__8); + setState(135); + match(T__9); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(136); + match(T__8); + setState(137); + match(T__10); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Asc_descContext extends ParserRuleContext { + public Asc_descContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_asc_desc; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterAsc_desc(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitAsc_desc(this); + } + } + + public final Asc_descContext asc_desc() throws RecognitionException { + Asc_descContext _localctx = new Asc_descContext(_ctx, getState()); + enterRule(_localctx, 16, RULE_asc_desc); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(140); + _la = _input.LA(1); + if ( !(_la==T__11 || _la==T__12) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Limit_clauseContext extends ParserRuleContext { + public TerminalNode NUMBER_LITERAL() { return getToken(EQLParser.NUMBER_LITERAL, 0); } + public Offset_clauseContext offset_clause() { + return getRuleContext(Offset_clauseContext.class,0); + } + public Limit_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_limit_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterLimit_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitLimit_clause(this); + } + } + + public final Limit_clauseContext limit_clause() throws RecognitionException { + Limit_clauseContext _localctx = new Limit_clauseContext(_ctx, getState()); + enterRule(_localctx, 18, RULE_limit_clause); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(142); + match(T__13); + setState(143); + match(NUMBER_LITERAL); + setState(145); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==T__14) { + { + setState(144); + offset_clause(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Offset_clauseContext extends ParserRuleContext { + public TerminalNode NUMBER_LITERAL() { return getToken(EQLParser.NUMBER_LITERAL, 0); } + public Offset_clauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_offset_clause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterOffset_clause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitOffset_clause(this); + } + } + + public final Offset_clauseContext offset_clause() throws RecognitionException { + Offset_clauseContext _localctx = new Offset_clauseContext(_ctx, getState()); + enterRule(_localctx, 20, RULE_offset_clause); + try { + enterOuterAlt(_localctx, 1); + { + setState(147); + match(T__14); + setState(148); + match(NUMBER_LITERAL); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Fetch_pathContext extends ParserRuleContext { + public TerminalNode PATH_VARIABLE() { return getToken(EQLParser.PATH_VARIABLE, 0); } + public Fetch_optionContext fetch_option() { + return getRuleContext(Fetch_optionContext.class,0); + } + public Fetch_property_setContext fetch_property_set() { + return getRuleContext(Fetch_property_setContext.class,0); + } + public Fetch_pathContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fetch_path; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterFetch_path(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitFetch_path(this); + } + } + + public final Fetch_pathContext fetch_path() throws RecognitionException { + Fetch_pathContext _localctx = new Fetch_pathContext(_ctx, getState()); + enterRule(_localctx, 22, RULE_fetch_path); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(150); + match(T__15); + setState(152); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==T__17 || _la==T__18) { + { + setState(151); + fetch_option(); + } + } + + setState(154); + match(PATH_VARIABLE); + setState(156); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==T__1) { + { + setState(155); + fetch_property_set(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Fetch_property_setContext extends ParserRuleContext { + public Fetch_property_groupContext fetch_property_group() { + return getRuleContext(Fetch_property_groupContext.class,0); + } + public Fetch_property_setContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fetch_property_set; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterFetch_property_set(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitFetch_property_set(this); + } + } + + public final Fetch_property_setContext fetch_property_set() throws RecognitionException { + Fetch_property_setContext _localctx = new Fetch_property_setContext(_ctx, getState()); + enterRule(_localctx, 24, RULE_fetch_property_set); + try { + enterOuterAlt(_localctx, 1); + { + setState(158); + match(T__1); + setState(159); + fetch_property_group(); + setState(160); + match(T__2); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Fetch_property_groupContext extends ParserRuleContext { + public List fetch_property() { + return getRuleContexts(Fetch_propertyContext.class); + } + public Fetch_propertyContext fetch_property(int i) { + return getRuleContext(Fetch_propertyContext.class,i); + } + public Fetch_property_groupContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fetch_property_group; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterFetch_property_group(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitFetch_property_group(this); + } + } + + public final Fetch_property_groupContext fetch_property_group() throws RecognitionException { + Fetch_property_groupContext _localctx = new Fetch_property_groupContext(_ctx, getState()); + enterRule(_localctx, 26, RULE_fetch_property_group); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(162); + fetch_property(); + setState(167); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__7) { + { + { + setState(163); + match(T__7); + setState(164); + fetch_property(); + } + } + setState(169); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Fetch_propertyContext extends ParserRuleContext { + public TerminalNode PATH_VARIABLE() { return getToken(EQLParser.PATH_VARIABLE, 0); } + public Fetch_query_hintContext fetch_query_hint() { + return getRuleContext(Fetch_query_hintContext.class,0); + } + public Fetch_lazy_hintContext fetch_lazy_hint() { + return getRuleContext(Fetch_lazy_hintContext.class,0); + } + public Fetch_propertyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fetch_property; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterFetch_property(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitFetch_property(this); + } + } + + public final Fetch_propertyContext fetch_property() throws RecognitionException { + Fetch_propertyContext _localctx = new Fetch_propertyContext(_ctx, getState()); + enterRule(_localctx, 28, RULE_fetch_property); + try { + setState(173); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,14,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(170); + match(PATH_VARIABLE); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(171); + fetch_query_hint(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(172); + fetch_lazy_hint(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Fetch_query_hintContext extends ParserRuleContext { + public Fetch_query_optionContext fetch_query_option() { + return getRuleContext(Fetch_query_optionContext.class,0); + } + public Fetch_query_hintContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fetch_query_hint; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterFetch_query_hint(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitFetch_query_hint(this); + } + } + + public final Fetch_query_hintContext fetch_query_hint() throws RecognitionException { + Fetch_query_hintContext _localctx = new Fetch_query_hintContext(_ctx, getState()); + enterRule(_localctx, 30, RULE_fetch_query_hint); + try { + enterOuterAlt(_localctx, 1); + { + setState(175); + match(T__16); + setState(176); + fetch_query_option(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Fetch_lazy_hintContext extends ParserRuleContext { + public Fetch_lazy_optionContext fetch_lazy_option() { + return getRuleContext(Fetch_lazy_optionContext.class,0); + } + public Fetch_lazy_hintContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fetch_lazy_hint; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterFetch_lazy_hint(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitFetch_lazy_hint(this); + } + } + + public final Fetch_lazy_hintContext fetch_lazy_hint() throws RecognitionException { + Fetch_lazy_hintContext _localctx = new Fetch_lazy_hintContext(_ctx, getState()); + enterRule(_localctx, 32, RULE_fetch_lazy_hint); + try { + enterOuterAlt(_localctx, 1); + { + setState(178); + match(T__16); + setState(179); + fetch_lazy_option(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Fetch_optionContext extends ParserRuleContext { + public Fetch_query_optionContext fetch_query_option() { + return getRuleContext(Fetch_query_optionContext.class,0); + } + public Fetch_lazy_optionContext fetch_lazy_option() { + return getRuleContext(Fetch_lazy_optionContext.class,0); + } + public Fetch_optionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fetch_option; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterFetch_option(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitFetch_option(this); + } + } + + public final Fetch_optionContext fetch_option() throws RecognitionException { + Fetch_optionContext _localctx = new Fetch_optionContext(_ctx, getState()); + enterRule(_localctx, 34, RULE_fetch_option); + try { + setState(183); + _errHandler.sync(this); + switch (_input.LA(1)) { + case T__17: + enterOuterAlt(_localctx, 1); + { + setState(181); + fetch_query_option(); + } + break; + case T__18: + enterOuterAlt(_localctx, 2); + { + setState(182); + fetch_lazy_option(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Fetch_query_optionContext extends ParserRuleContext { + public Fetch_batch_sizeContext fetch_batch_size() { + return getRuleContext(Fetch_batch_sizeContext.class,0); + } + public Fetch_query_optionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fetch_query_option; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterFetch_query_option(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitFetch_query_option(this); + } + } + + public final Fetch_query_optionContext fetch_query_option() throws RecognitionException { + Fetch_query_optionContext _localctx = new Fetch_query_optionContext(_ctx, getState()); + enterRule(_localctx, 36, RULE_fetch_query_option); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(185); + match(T__17); + setState(187); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==T__1) { + { + setState(186); + fetch_batch_size(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Fetch_lazy_optionContext extends ParserRuleContext { + public Fetch_batch_sizeContext fetch_batch_size() { + return getRuleContext(Fetch_batch_sizeContext.class,0); + } + public Fetch_lazy_optionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fetch_lazy_option; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterFetch_lazy_option(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitFetch_lazy_option(this); + } + } + + public final Fetch_lazy_optionContext fetch_lazy_option() throws RecognitionException { + Fetch_lazy_optionContext _localctx = new Fetch_lazy_optionContext(_ctx, getState()); + enterRule(_localctx, 38, RULE_fetch_lazy_option); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(189); + match(T__18); + setState(191); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==T__1) { + { + setState(190); + fetch_batch_size(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Fetch_batch_sizeContext extends ParserRuleContext { + public TerminalNode NUMBER_LITERAL() { return getToken(EQLParser.NUMBER_LITERAL, 0); } + public Fetch_batch_sizeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fetch_batch_size; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterFetch_batch_size(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitFetch_batch_size(this); + } + } + + public final Fetch_batch_sizeContext fetch_batch_size() throws RecognitionException { + Fetch_batch_sizeContext _localctx = new Fetch_batch_sizeContext(_ctx, getState()); + enterRule(_localctx, 40, RULE_fetch_batch_size); + try { + enterOuterAlt(_localctx, 1); + { + setState(193); + match(T__1); + setState(194); + match(NUMBER_LITERAL); + setState(195); + match(T__2); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Conditional_expressionContext extends ParserRuleContext { + public List conditional_term() { + return getRuleContexts(Conditional_termContext.class); + } + public Conditional_termContext conditional_term(int i) { + return getRuleContext(Conditional_termContext.class,i); + } + public Conditional_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_conditional_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterConditional_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitConditional_expression(this); + } + } + + public final Conditional_expressionContext conditional_expression() throws RecognitionException { + Conditional_expressionContext _localctx = new Conditional_expressionContext(_ctx, getState()); + enterRule(_localctx, 42, RULE_conditional_expression); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(197); + conditional_term(); + setState(202); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__19) { + { + { + setState(198); + match(T__19); + setState(199); + conditional_term(); + } + } + setState(204); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Conditional_termContext extends ParserRuleContext { + public List conditional_factor() { + return getRuleContexts(Conditional_factorContext.class); + } + public Conditional_factorContext conditional_factor(int i) { + return getRuleContext(Conditional_factorContext.class,i); + } + public Conditional_termContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_conditional_term; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterConditional_term(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitConditional_term(this); + } + } + + public final Conditional_termContext conditional_term() throws RecognitionException { + Conditional_termContext _localctx = new Conditional_termContext(_ctx, getState()); + enterRule(_localctx, 44, RULE_conditional_term); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(205); + conditional_factor(); + setState(210); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__20) { + { + { + setState(206); + match(T__20); + setState(207); + conditional_factor(); + } + } + setState(212); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Conditional_factorContext extends ParserRuleContext { + public Conditional_primaryContext conditional_primary() { + return getRuleContext(Conditional_primaryContext.class,0); + } + public Conditional_factorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_conditional_factor; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterConditional_factor(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitConditional_factor(this); + } + } + + public final Conditional_factorContext conditional_factor() throws RecognitionException { + Conditional_factorContext _localctx = new Conditional_factorContext(_ctx, getState()); + enterRule(_localctx, 46, RULE_conditional_factor); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(214); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==T__21) { + { + setState(213); + match(T__21); + } + } + + setState(216); + conditional_primary(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Conditional_primaryContext extends ParserRuleContext { + public Any_expressionContext any_expression() { + return getRuleContext(Any_expressionContext.class,0); + } + public Conditional_expressionContext conditional_expression() { + return getRuleContext(Conditional_expressionContext.class,0); + } + public Conditional_primaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_conditional_primary; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterConditional_primary(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitConditional_primary(this); + } + } + + public final Conditional_primaryContext conditional_primary() throws RecognitionException { + Conditional_primaryContext _localctx = new Conditional_primaryContext(_ctx, getState()); + enterRule(_localctx, 48, RULE_conditional_primary); + try { + setState(223); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,21,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(218); + any_expression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(219); + match(T__1); + setState(220); + conditional_expression(); + setState(221); + match(T__2); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Any_expressionContext extends ParserRuleContext { + public Comparison_expressionContext comparison_expression() { + return getRuleContext(Comparison_expressionContext.class,0); + } + public Like_expressionContext like_expression() { + return getRuleContext(Like_expressionContext.class,0); + } + public Inrange_expressionContext inrange_expression() { + return getRuleContext(Inrange_expressionContext.class,0); + } + public Between_expressionContext between_expression() { + return getRuleContext(Between_expressionContext.class,0); + } + public PropertyBetween_expressionContext propertyBetween_expression() { + return getRuleContext(PropertyBetween_expressionContext.class,0); + } + public In_expressionContext in_expression() { + return getRuleContext(In_expressionContext.class,0); + } + public IsNull_expressionContext isNull_expression() { + return getRuleContext(IsNull_expressionContext.class,0); + } + public IsNotNull_expressionContext isNotNull_expression() { + return getRuleContext(IsNotNull_expressionContext.class,0); + } + public IsEmpty_expressionContext isEmpty_expression() { + return getRuleContext(IsEmpty_expressionContext.class,0); + } + public IsNotEmpty_expressionContext isNotEmpty_expression() { + return getRuleContext(IsNotEmpty_expressionContext.class,0); + } + public Any_expressionContext any_expression() { + return getRuleContext(Any_expressionContext.class,0); + } + public Any_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_any_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterAny_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitAny_expression(this); + } + } + + public final Any_expressionContext any_expression() throws RecognitionException { + Any_expressionContext _localctx = new Any_expressionContext(_ctx, getState()); + enterRule(_localctx, 50, RULE_any_expression); + try { + setState(239); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,22,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(225); + comparison_expression(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(226); + like_expression(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(227); + inrange_expression(); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(228); + between_expression(); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(229); + propertyBetween_expression(); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(230); + in_expression(); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(231); + isNull_expression(); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(232); + isNotNull_expression(); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(233); + isEmpty_expression(); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(234); + isNotEmpty_expression(); + } + break; + case 11: + enterOuterAlt(_localctx, 11); + { + setState(235); + match(T__1); + setState(236); + any_expression(); + setState(237); + match(T__2); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class In_expressionContext extends ParserRuleContext { + public TerminalNode PATH_VARIABLE() { return getToken(EQLParser.PATH_VARIABLE, 0); } + public In_valueContext in_value() { + return getRuleContext(In_valueContext.class,0); + } + public In_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_in_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterIn_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitIn_expression(this); + } + } + + public final In_expressionContext in_expression() throws RecognitionException { + In_expressionContext _localctx = new In_expressionContext(_ctx, getState()); + enterRule(_localctx, 52, RULE_in_expression); + try { + enterOuterAlt(_localctx, 1); + { + setState(241); + match(PATH_VARIABLE); + setState(242); + match(T__22); + setState(243); + in_value(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class In_valueContext extends ParserRuleContext { + public TerminalNode INPUT_VARIABLE() { return getToken(EQLParser.INPUT_VARIABLE, 0); } + public List value_expression() { + return getRuleContexts(Value_expressionContext.class); + } + public Value_expressionContext value_expression(int i) { + return getRuleContext(Value_expressionContext.class,i); + } + public In_valueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_in_value; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterIn_value(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitIn_value(this); + } + } + + public final In_valueContext in_value() throws RecognitionException { + In_valueContext _localctx = new In_valueContext(_ctx, getState()); + enterRule(_localctx, 54, RULE_in_value); + int _la; + try { + setState(257); + _errHandler.sync(this); + switch (_input.LA(1)) { + case INPUT_VARIABLE: + enterOuterAlt(_localctx, 1); + { + setState(245); + match(INPUT_VARIABLE); + } + break; + case T__1: + enterOuterAlt(_localctx, 2); + { + setState(246); + match(T__1); + setState(247); + value_expression(); + setState(252); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__7) { + { + { + setState(248); + match(T__7); + setState(249); + value_expression(); + } + } + setState(254); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(255); + match(T__2); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Between_expressionContext extends ParserRuleContext { + public TerminalNode PATH_VARIABLE() { return getToken(EQLParser.PATH_VARIABLE, 0); } + public List value_expression() { + return getRuleContexts(Value_expressionContext.class); + } + public Value_expressionContext value_expression(int i) { + return getRuleContext(Value_expressionContext.class,i); + } + public Between_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_between_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterBetween_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitBetween_expression(this); + } + } + + public final Between_expressionContext between_expression() throws RecognitionException { + Between_expressionContext _localctx = new Between_expressionContext(_ctx, getState()); + enterRule(_localctx, 56, RULE_between_expression); + try { + enterOuterAlt(_localctx, 1); + { + setState(259); + match(PATH_VARIABLE); + setState(260); + match(T__23); + setState(261); + value_expression(); + setState(262); + match(T__20); + setState(263); + value_expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Inrange_expressionContext extends ParserRuleContext { + public TerminalNode PATH_VARIABLE() { return getToken(EQLParser.PATH_VARIABLE, 0); } + public List value_expression() { + return getRuleContexts(Value_expressionContext.class); + } + public Value_expressionContext value_expression(int i) { + return getRuleContext(Value_expressionContext.class,i); + } + public Inrange_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_inrange_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterInrange_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitInrange_expression(this); + } + } + + public final Inrange_expressionContext inrange_expression() throws RecognitionException { + Inrange_expressionContext _localctx = new Inrange_expressionContext(_ctx, getState()); + enterRule(_localctx, 58, RULE_inrange_expression); + try { + enterOuterAlt(_localctx, 1); + { + setState(265); + match(PATH_VARIABLE); + setState(266); + match(T__24); + setState(267); + value_expression(); + setState(268); + match(T__25); + setState(269); + value_expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class PropertyBetween_expressionContext extends ParserRuleContext { + public Value_expressionContext value_expression() { + return getRuleContext(Value_expressionContext.class,0); + } + public List PATH_VARIABLE() { return getTokens(EQLParser.PATH_VARIABLE); } + public TerminalNode PATH_VARIABLE(int i) { + return getToken(EQLParser.PATH_VARIABLE, i); + } + public PropertyBetween_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_propertyBetween_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterPropertyBetween_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitPropertyBetween_expression(this); + } + } + + public final PropertyBetween_expressionContext propertyBetween_expression() throws RecognitionException { + PropertyBetween_expressionContext _localctx = new PropertyBetween_expressionContext(_ctx, getState()); + enterRule(_localctx, 60, RULE_propertyBetween_expression); + try { + enterOuterAlt(_localctx, 1); + { + setState(271); + value_expression(); + setState(272); + match(T__23); + setState(273); + match(PATH_VARIABLE); + setState(274); + match(T__20); + setState(275); + match(PATH_VARIABLE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class IsNull_expressionContext extends ParserRuleContext { + public TerminalNode PATH_VARIABLE() { return getToken(EQLParser.PATH_VARIABLE, 0); } + public IsNull_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_isNull_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterIsNull_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitIsNull_expression(this); + } + } + + public final IsNull_expressionContext isNull_expression() throws RecognitionException { + IsNull_expressionContext _localctx = new IsNull_expressionContext(_ctx, getState()); + enterRule(_localctx, 62, RULE_isNull_expression); + try { + setState(282); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,25,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(277); + match(PATH_VARIABLE); + setState(278); + match(T__26); + setState(279); + match(T__27); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(280); + match(PATH_VARIABLE); + setState(281); + match(T__28); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class IsNotNull_expressionContext extends ParserRuleContext { + public TerminalNode PATH_VARIABLE() { return getToken(EQLParser.PATH_VARIABLE, 0); } + public IsNotNull_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_isNotNull_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterIsNotNull_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitIsNotNull_expression(this); + } + } + + public final IsNotNull_expressionContext isNotNull_expression() throws RecognitionException { + IsNotNull_expressionContext _localctx = new IsNotNull_expressionContext(_ctx, getState()); + enterRule(_localctx, 64, RULE_isNotNull_expression); + try { + setState(292); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,26,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(284); + match(PATH_VARIABLE); + setState(285); + match(T__26); + setState(286); + match(T__21); + setState(287); + match(T__27); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(288); + match(PATH_VARIABLE); + setState(289); + match(T__29); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(290); + match(PATH_VARIABLE); + setState(291); + match(T__30); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class IsEmpty_expressionContext extends ParserRuleContext { + public TerminalNode PATH_VARIABLE() { return getToken(EQLParser.PATH_VARIABLE, 0); } + public IsEmpty_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_isEmpty_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterIsEmpty_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitIsEmpty_expression(this); + } + } + + public final IsEmpty_expressionContext isEmpty_expression() throws RecognitionException { + IsEmpty_expressionContext _localctx = new IsEmpty_expressionContext(_ctx, getState()); + enterRule(_localctx, 66, RULE_isEmpty_expression); + try { + setState(299); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,27,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(294); + match(PATH_VARIABLE); + setState(295); + match(T__26); + setState(296); + match(T__31); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(297); + match(PATH_VARIABLE); + setState(298); + match(T__32); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class IsNotEmpty_expressionContext extends ParserRuleContext { + public TerminalNode PATH_VARIABLE() { return getToken(EQLParser.PATH_VARIABLE, 0); } + public IsNotEmpty_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_isNotEmpty_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterIsNotEmpty_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitIsNotEmpty_expression(this); + } + } + + public final IsNotEmpty_expressionContext isNotEmpty_expression() throws RecognitionException { + IsNotEmpty_expressionContext _localctx = new IsNotEmpty_expressionContext(_ctx, getState()); + enterRule(_localctx, 68, RULE_isNotEmpty_expression); + try { + setState(309); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,28,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(301); + match(PATH_VARIABLE); + setState(302); + match(T__26); + setState(303); + match(T__21); + setState(304); + match(T__31); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(305); + match(PATH_VARIABLE); + setState(306); + match(T__33); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(307); + match(PATH_VARIABLE); + setState(308); + match(T__34); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Like_expressionContext extends ParserRuleContext { + public TerminalNode PATH_VARIABLE() { return getToken(EQLParser.PATH_VARIABLE, 0); } + public Like_opContext like_op() { + return getRuleContext(Like_opContext.class,0); + } + public Value_expressionContext value_expression() { + return getRuleContext(Value_expressionContext.class,0); + } + public Like_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_like_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterLike_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitLike_expression(this); + } + } + + public final Like_expressionContext like_expression() throws RecognitionException { + Like_expressionContext _localctx = new Like_expressionContext(_ctx, getState()); + enterRule(_localctx, 70, RULE_like_expression); + try { + enterOuterAlt(_localctx, 1); + { + setState(311); + match(PATH_VARIABLE); + setState(312); + like_op(); + setState(313); + value_expression(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Like_opContext extends ParserRuleContext { + public Like_opContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_like_op; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterLike_op(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitLike_op(this); + } + } + + public final Like_opContext like_op() throws RecognitionException { + Like_opContext _localctx = new Like_opContext(_ctx, getState()); + enterRule(_localctx, 72, RULE_like_op); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(315); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__35) | (1L << T__36) | (1L << T__37) | (1L << T__38) | (1L << T__39) | (1L << T__40) | (1L << T__41) | (1L << T__42))) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Comparison_expressionContext extends ParserRuleContext { + public TerminalNode PATH_VARIABLE() { return getToken(EQLParser.PATH_VARIABLE, 0); } + public Comparison_operatorContext comparison_operator() { + return getRuleContext(Comparison_operatorContext.class,0); + } + public Value_expressionContext value_expression() { + return getRuleContext(Value_expressionContext.class,0); + } + public Comparison_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_comparison_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterComparison_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitComparison_expression(this); + } + } + + public final Comparison_expressionContext comparison_expression() throws RecognitionException { + Comparison_expressionContext _localctx = new Comparison_expressionContext(_ctx, getState()); + enterRule(_localctx, 74, RULE_comparison_expression); + try { + setState(325); + _errHandler.sync(this); + switch (_input.LA(1)) { + case PATH_VARIABLE: + enterOuterAlt(_localctx, 1); + { + setState(317); + match(PATH_VARIABLE); + setState(318); + comparison_operator(); + setState(319); + value_expression(); + } + break; + case INPUT_VARIABLE: + case BOOLEAN_LITERAL: + case NUMBER_LITERAL: + case STRING_LITERAL: + enterOuterAlt(_localctx, 2); + { + setState(321); + value_expression(); + setState(322); + comparison_operator(); + setState(323); + match(PATH_VARIABLE); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Comparison_operatorContext extends ParserRuleContext { + public Comparison_operatorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_comparison_operator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterComparison_operator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitComparison_operator(this); + } + } + + public final Comparison_operatorContext comparison_operator() throws RecognitionException { + Comparison_operatorContext _localctx = new Comparison_operatorContext(_ctx, getState()); + enterRule(_localctx, 76, RULE_comparison_operator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(327); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__50) | (1L << T__51) | (1L << T__52) | (1L << T__53) | (1L << T__54) | (1L << T__55) | (1L << T__56) | (1L << T__57) | (1L << T__58) | (1L << T__59))) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Value_expressionContext extends ParserRuleContext { + public LiteralContext literal() { + return getRuleContext(LiteralContext.class,0); + } + public TerminalNode INPUT_VARIABLE() { return getToken(EQLParser.INPUT_VARIABLE, 0); } + public Value_expressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_value_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterValue_expression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitValue_expression(this); + } + } + + public final Value_expressionContext value_expression() throws RecognitionException { + Value_expressionContext _localctx = new Value_expressionContext(_ctx, getState()); + enterRule(_localctx, 78, RULE_value_expression); + try { + setState(331); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BOOLEAN_LITERAL: + case NUMBER_LITERAL: + case STRING_LITERAL: + enterOuterAlt(_localctx, 1); + { + setState(329); + literal(); + } + break; + case INPUT_VARIABLE: + enterOuterAlt(_localctx, 2); + { + setState(330); + match(INPUT_VARIABLE); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LiteralContext extends ParserRuleContext { + public TerminalNode STRING_LITERAL() { return getToken(EQLParser.STRING_LITERAL, 0); } + public TerminalNode BOOLEAN_LITERAL() { return getToken(EQLParser.BOOLEAN_LITERAL, 0); } + public TerminalNode NUMBER_LITERAL() { return getToken(EQLParser.NUMBER_LITERAL, 0); } + public LiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_literal; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).enterLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof EQLListener ) ((EQLListener)listener).exitLiteral(this); + } + } + + public final LiteralContext literal() throws RecognitionException { + LiteralContext _localctx = new LiteralContext(_ctx, getState()); + enterRule(_localctx, 80, RULE_literal); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(333); + _la = _input.LA(1); + if ( !(((((_la - 63)) & ~0x3f) == 0 && ((1L << (_la - 63)) & ((1L << (BOOLEAN_LITERAL - 63)) | (1L << (NUMBER_LITERAL - 63)) | (1L << (STRING_LITERAL - 63)))) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static final String _serializedATN = + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3G\u0152\4\2\t\2\4"+ + "\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+ + "\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ + "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ + "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+ + "\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\3\2\5\2"+ + "V\n\2\3\2\7\2Y\n\2\f\2\16\2\\\13\2\3\2\5\2_\n\2\3\2\5\2b\n\2\3\2\5\2e"+ + "\n\2\3\2\3\2\3\3\3\3\5\3k\n\3\3\3\3\3\3\3\3\3\3\4\3\4\3\5\3\5\3\6\3\6"+ + "\3\6\3\7\3\7\3\7\3\7\3\7\7\7}\n\7\f\7\16\7\u0080\13\7\3\b\3\b\5\b\u0084"+ + "\n\b\3\b\5\b\u0087\n\b\3\t\3\t\3\t\3\t\5\t\u008d\n\t\3\n\3\n\3\13\3\13"+ + "\3\13\5\13\u0094\n\13\3\f\3\f\3\f\3\r\3\r\5\r\u009b\n\r\3\r\3\r\5\r\u009f"+ + "\n\r\3\16\3\16\3\16\3\16\3\17\3\17\3\17\7\17\u00a8\n\17\f\17\16\17\u00ab"+ + "\13\17\3\20\3\20\3\20\5\20\u00b0\n\20\3\21\3\21\3\21\3\22\3\22\3\22\3"+ + "\23\3\23\5\23\u00ba\n\23\3\24\3\24\5\24\u00be\n\24\3\25\3\25\5\25\u00c2"+ + "\n\25\3\26\3\26\3\26\3\26\3\27\3\27\3\27\7\27\u00cb\n\27\f\27\16\27\u00ce"+ + "\13\27\3\30\3\30\3\30\7\30\u00d3\n\30\f\30\16\30\u00d6\13\30\3\31\5\31"+ + "\u00d9\n\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32\5\32\u00e2\n\32\3\33\3"+ + "\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\5\33\u00f2"+ + "\n\33\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\7\35\u00fd\n\35\f\35"+ + "\16\35\u0100\13\35\3\35\3\35\5\35\u0104\n\35\3\36\3\36\3\36\3\36\3\36"+ + "\3\36\3\37\3\37\3\37\3\37\3\37\3\37\3 \3 \3 \3 \3 \3 \3!\3!\3!\3!\3!\5"+ + "!\u011d\n!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\5\"\u0127\n\"\3#\3#\3#\3#\3"+ + "#\5#\u012e\n#\3$\3$\3$\3$\3$\3$\3$\3$\5$\u0138\n$\3%\3%\3%\3%\3&\3&\3"+ + "\'\3\'\3\'\3\'\3\'\3\'\3\'\3\'\5\'\u0148\n\'\3(\3(\3)\3)\5)\u014e\n)\3"+ + "*\3*\3*\2\2+\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&(*,.\60\62\64"+ + "\668:<>@BDFHJLNPR\2\6\3\2\16\17\3\2&-\3\2.>\4\2ABFF\2\u0153\2U\3\2\2\2"+ + "\4h\3\2\2\2\6p\3\2\2\2\br\3\2\2\2\nt\3\2\2\2\fw\3\2\2\2\16\u0081\3\2\2"+ + "\2\20\u008c\3\2\2\2\22\u008e\3\2\2\2\24\u0090\3\2\2\2\26\u0095\3\2\2\2"+ + "\30\u0098\3\2\2\2\32\u00a0\3\2\2\2\34\u00a4\3\2\2\2\36\u00af\3\2\2\2 "+ + "\u00b1\3\2\2\2\"\u00b4\3\2\2\2$\u00b9\3\2\2\2&\u00bb\3\2\2\2(\u00bf\3"+ + "\2\2\2*\u00c3\3\2\2\2,\u00c7\3\2\2\2.\u00cf\3\2\2\2\60\u00d8\3\2\2\2\62"+ + "\u00e1\3\2\2\2\64\u00f1\3\2\2\2\66\u00f3\3\2\2\28\u0103\3\2\2\2:\u0105"+ + "\3\2\2\2<\u010b\3\2\2\2>\u0111\3\2\2\2@\u011c\3\2\2\2B\u0126\3\2\2\2D"+ + "\u012d\3\2\2\2F\u0137\3\2\2\2H\u0139\3\2\2\2J\u013d\3\2\2\2L\u0147\3\2"+ + "\2\2N\u0149\3\2\2\2P\u014d\3\2\2\2R\u014f\3\2\2\2TV\5\4\3\2UT\3\2\2\2"+ + "UV\3\2\2\2VZ\3\2\2\2WY\5\b\5\2XW\3\2\2\2Y\\\3\2\2\2ZX\3\2\2\2Z[\3\2\2"+ + "\2[^\3\2\2\2\\Z\3\2\2\2]_\5\n\6\2^]\3\2\2\2^_\3\2\2\2_a\3\2\2\2`b\5\f"+ + "\7\2a`\3\2\2\2ab\3\2\2\2bd\3\2\2\2ce\5\24\13\2dc\3\2\2\2de\3\2\2\2ef\3"+ + "\2\2\2fg\7\2\2\3g\3\3\2\2\2hj\7\3\2\2ik\5\6\4\2ji\3\2\2\2jk\3\2\2\2kl"+ + "\3\2\2\2lm\7\4\2\2mn\5\34\17\2no\7\5\2\2o\5\3\2\2\2pq\7\6\2\2q\7\3\2\2"+ + "\2rs\5\30\r\2s\t\3\2\2\2tu\7\7\2\2uv\5,\27\2v\13\3\2\2\2wx\7\b\2\2xy\7"+ + "\t\2\2y~\5\16\b\2z{\7\n\2\2{}\5\16\b\2|z\3\2\2\2}\u0080\3\2\2\2~|\3\2"+ + "\2\2~\177\3\2\2\2\177\r\3\2\2\2\u0080~\3\2\2\2\u0081\u0083\7@\2\2\u0082"+ + "\u0084\5\22\n\2\u0083\u0082\3\2\2\2\u0083\u0084\3\2\2\2\u0084\u0086\3"+ + "\2\2\2\u0085\u0087\5\20\t\2\u0086\u0085\3\2\2\2\u0086\u0087\3\2\2\2\u0087"+ + "\17\3\2\2\2\u0088\u0089\7\13\2\2\u0089\u008d\7\f\2\2\u008a\u008b\7\13"+ + "\2\2\u008b\u008d\7\r\2\2\u008c\u0088\3\2\2\2\u008c\u008a\3\2\2\2\u008d"+ + "\21\3\2\2\2\u008e\u008f\t\2\2\2\u008f\23\3\2\2\2\u0090\u0091\7\20\2\2"+ + "\u0091\u0093\7B\2\2\u0092\u0094\5\26\f\2\u0093\u0092\3\2\2\2\u0093\u0094"+ + "\3\2\2\2\u0094\25\3\2\2\2\u0095\u0096\7\21\2\2\u0096\u0097\7B\2\2\u0097"+ + "\27\3\2\2\2\u0098\u009a\7\22\2\2\u0099\u009b\5$\23\2\u009a\u0099\3\2\2"+ + "\2\u009a\u009b\3\2\2\2\u009b\u009c\3\2\2\2\u009c\u009e\7@\2\2\u009d\u009f"+ + "\5\32\16\2\u009e\u009d\3\2\2\2\u009e\u009f\3\2\2\2\u009f\31\3\2\2\2\u00a0"+ + "\u00a1\7\4\2\2\u00a1\u00a2\5\34\17\2\u00a2\u00a3\7\5\2\2\u00a3\33\3\2"+ + "\2\2\u00a4\u00a9\5\36\20\2\u00a5\u00a6\7\n\2\2\u00a6\u00a8\5\36\20\2\u00a7"+ + "\u00a5\3\2\2\2\u00a8\u00ab\3\2\2\2\u00a9\u00a7\3\2\2\2\u00a9\u00aa\3\2"+ + "\2\2\u00aa\35\3\2\2\2\u00ab\u00a9\3\2\2\2\u00ac\u00b0\7@\2\2\u00ad\u00b0"+ + "\5 \21\2\u00ae\u00b0\5\"\22\2\u00af\u00ac\3\2\2\2\u00af\u00ad\3\2\2\2"+ + "\u00af\u00ae\3\2\2\2\u00b0\37\3\2\2\2\u00b1\u00b2\7\23\2\2\u00b2\u00b3"+ + "\5&\24\2\u00b3!\3\2\2\2\u00b4\u00b5\7\23\2\2\u00b5\u00b6\5(\25\2\u00b6"+ + "#\3\2\2\2\u00b7\u00ba\5&\24\2\u00b8\u00ba\5(\25\2\u00b9\u00b7\3\2\2\2"+ + "\u00b9\u00b8\3\2\2\2\u00ba%\3\2\2\2\u00bb\u00bd\7\24\2\2\u00bc\u00be\5"+ + "*\26\2\u00bd\u00bc\3\2\2\2\u00bd\u00be\3\2\2\2\u00be\'\3\2\2\2\u00bf\u00c1"+ + "\7\25\2\2\u00c0\u00c2\5*\26\2\u00c1\u00c0\3\2\2\2\u00c1\u00c2\3\2\2\2"+ + "\u00c2)\3\2\2\2\u00c3\u00c4\7\4\2\2\u00c4\u00c5\7B\2\2\u00c5\u00c6\7\5"+ + "\2\2\u00c6+\3\2\2\2\u00c7\u00cc\5.\30\2\u00c8\u00c9\7\26\2\2\u00c9\u00cb"+ + "\5.\30\2\u00ca\u00c8\3\2\2\2\u00cb\u00ce\3\2\2\2\u00cc\u00ca\3\2\2\2\u00cc"+ + "\u00cd\3\2\2\2\u00cd-\3\2\2\2\u00ce\u00cc\3\2\2\2\u00cf\u00d4\5\60\31"+ + "\2\u00d0\u00d1\7\27\2\2\u00d1\u00d3\5\60\31\2\u00d2\u00d0\3\2\2\2\u00d3"+ + "\u00d6\3\2\2\2\u00d4\u00d2\3\2\2\2\u00d4\u00d5\3\2\2\2\u00d5/\3\2\2\2"+ + "\u00d6\u00d4\3\2\2\2\u00d7\u00d9\7\30\2\2\u00d8\u00d7\3\2\2\2\u00d8\u00d9"+ + "\3\2\2\2\u00d9\u00da\3\2\2\2\u00da\u00db\5\62\32\2\u00db\61\3\2\2\2\u00dc"+ + "\u00e2\5\64\33\2\u00dd\u00de\7\4\2\2\u00de\u00df\5,\27\2\u00df\u00e0\7"+ + "\5\2\2\u00e0\u00e2\3\2\2\2\u00e1\u00dc\3\2\2\2\u00e1\u00dd\3\2\2\2\u00e2"+ + "\63\3\2\2\2\u00e3\u00f2\5L\'\2\u00e4\u00f2\5H%\2\u00e5\u00f2\5<\37\2\u00e6"+ + "\u00f2\5:\36\2\u00e7\u00f2\5> \2\u00e8\u00f2\5\66\34\2\u00e9\u00f2\5@"+ + "!\2\u00ea\u00f2\5B\"\2\u00eb\u00f2\5D#\2\u00ec\u00f2\5F$\2\u00ed\u00ee"+ + "\7\4\2\2\u00ee\u00ef\5\64\33\2\u00ef\u00f0\7\5\2\2\u00f0\u00f2\3\2\2\2"+ + "\u00f1\u00e3\3\2\2\2\u00f1\u00e4\3\2\2\2\u00f1\u00e5\3\2\2\2\u00f1\u00e6"+ + "\3\2\2\2\u00f1\u00e7\3\2\2\2\u00f1\u00e8\3\2\2\2\u00f1\u00e9\3\2\2\2\u00f1"+ + "\u00ea\3\2\2\2\u00f1\u00eb\3\2\2\2\u00f1\u00ec\3\2\2\2\u00f1\u00ed\3\2"+ + "\2\2\u00f2\65\3\2\2\2\u00f3\u00f4\7@\2\2\u00f4\u00f5\7\31\2\2\u00f5\u00f6"+ + "\58\35\2\u00f6\67\3\2\2\2\u00f7\u0104\7?\2\2\u00f8\u00f9\7\4\2\2\u00f9"+ + "\u00fe\5P)\2\u00fa\u00fb\7\n\2\2\u00fb\u00fd\5P)\2\u00fc\u00fa\3\2\2\2"+ + "\u00fd\u0100\3\2\2\2\u00fe\u00fc\3\2\2\2\u00fe\u00ff\3\2\2\2\u00ff\u0101"+ + "\3\2\2\2\u0100\u00fe\3\2\2\2\u0101\u0102\7\5\2\2\u0102\u0104\3\2\2\2\u0103"+ + "\u00f7\3\2\2\2\u0103\u00f8\3\2\2\2\u01049\3\2\2\2\u0105\u0106\7@\2\2\u0106"+ + "\u0107\7\32\2\2\u0107\u0108\5P)\2\u0108\u0109\7\27\2\2\u0109\u010a\5P"+ + ")\2\u010a;\3\2\2\2\u010b\u010c\7@\2\2\u010c\u010d\7\33\2\2\u010d\u010e"+ + "\5P)\2\u010e\u010f\7\34\2\2\u010f\u0110\5P)\2\u0110=\3\2\2\2\u0111\u0112"+ + "\5P)\2\u0112\u0113\7\32\2\2\u0113\u0114\7@\2\2\u0114\u0115\7\27\2\2\u0115"+ + "\u0116\7@\2\2\u0116?\3\2\2\2\u0117\u0118\7@\2\2\u0118\u0119\7\35\2\2\u0119"+ + "\u011d\7\36\2\2\u011a\u011b\7@\2\2\u011b\u011d\7\37\2\2\u011c\u0117\3"+ + "\2\2\2\u011c\u011a\3\2\2\2\u011dA\3\2\2\2\u011e\u011f\7@\2\2\u011f\u0120"+ + "\7\35\2\2\u0120\u0121\7\30\2\2\u0121\u0127\7\36\2\2\u0122\u0123\7@\2\2"+ + "\u0123\u0127\7 \2\2\u0124\u0125\7@\2\2\u0125\u0127\7!\2\2\u0126\u011e"+ + "\3\2\2\2\u0126\u0122\3\2\2\2\u0126\u0124\3\2\2\2\u0127C\3\2\2\2\u0128"+ + "\u0129\7@\2\2\u0129\u012a\7\35\2\2\u012a\u012e\7\"\2\2\u012b\u012c\7@"+ + "\2\2\u012c\u012e\7#\2\2\u012d\u0128\3\2\2\2\u012d\u012b\3\2\2\2\u012e"+ + "E\3\2\2\2\u012f\u0130\7@\2\2\u0130\u0131\7\35\2\2\u0131\u0132\7\30\2\2"+ + "\u0132\u0138\7\"\2\2\u0133\u0134\7@\2\2\u0134\u0138\7$\2\2\u0135\u0136"+ + "\7@\2\2\u0136\u0138\7%\2\2\u0137\u012f\3\2\2\2\u0137\u0133\3\2\2\2\u0137"+ + "\u0135\3\2\2\2\u0138G\3\2\2\2\u0139\u013a\7@\2\2\u013a\u013b\5J&\2\u013b"+ + "\u013c\5P)\2\u013cI\3\2\2\2\u013d\u013e\t\3\2\2\u013eK\3\2\2\2\u013f\u0140"+ + "\7@\2\2\u0140\u0141\5N(\2\u0141\u0142\5P)\2\u0142\u0148\3\2\2\2\u0143"+ + "\u0144\5P)\2\u0144\u0145\5N(\2\u0145\u0146\7@\2\2\u0146\u0148\3\2\2\2"+ + "\u0147\u013f\3\2\2\2\u0147\u0143\3\2\2\2\u0148M\3\2\2\2\u0149\u014a\t"+ + "\4\2\2\u014aO\3\2\2\2\u014b\u014e\5R*\2\u014c\u014e\7?\2\2\u014d\u014b"+ + "\3\2\2\2\u014d\u014c\3\2\2\2\u014eQ\3\2\2\2\u014f\u0150\t\5\2\2\u0150"+ + "S\3\2\2\2!UZ^adj~\u0083\u0086\u008c\u0093\u009a\u009e\u00a9\u00af\u00b9"+ + "\u00bd\u00c1\u00cc\u00d4\u00d8\u00e1\u00f1\u00fe\u0103\u011c\u0126\u012d"+ + "\u0137\u0147\u014d"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } } diff --git a/src/test/java/io/ebeaninternal/server/grammer/EqlParserTest.java b/src/test/java/io/ebeaninternal/server/grammer/EqlParserTest.java index 29ad43ae4..0ed479085 100644 --- a/src/test/java/io/ebeaninternal/server/grammer/EqlParserTest.java +++ b/src/test/java/io/ebeaninternal/server/grammer/EqlParserTest.java @@ -274,6 +274,26 @@ public class EqlParserTest extends BaseTestCase { platformAssertIn(query.getGeneratedSql(),"where t0.name"); } + @Test + public void where_inrange() { + + Query query = parse("where name inrange 'As' to 'B'"); + query.findList(); + + assertThat(query.getGeneratedSql()).contains("where (t0.name >= ? and t0.name < ?) "); + } + + @Test + public void where_inrange_withNamedParams() { + + Query query = parse("where name inrange :one to :two"); + query.setParameter("one", "a"); + query.setParameter("two", "b"); + query.findList(); + + assertThat(query.getGeneratedSql()).contains("where (t0.name >= ? and t0.name < ?)"); + } + @Test public void where_between() { diff --git a/src/test/resources/EQL.g4 b/src/test/resources/EQL.g4 index 30aa67ae0..c017775e1 100644 --- a/src/test/resources/EQL.g4 +++ b/src/test/resources/EQL.g4 @@ -109,6 +109,7 @@ conditional_primary any_expression : comparison_expression | like_expression + | inrange_expression | between_expression | propertyBetween_expression | in_expression @@ -132,6 +133,10 @@ between_expression : PATH_VARIABLE 'between' value_expression 'and' value_expression ; +inrange_expression + : PATH_VARIABLE 'inrange' value_expression 'to' value_expression + ; + propertyBetween_expression : value_expression 'between' PATH_VARIABLE 'and' PATH_VARIABLE ; @@ -181,7 +186,7 @@ comparison_operator | '<' | 'lt' | '<=' | 'le' | 'lte' | '<>' | '!=' | 'ne' - | 'ieq' + | 'ieq' | 'ine' ;