You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hugegraph.apache.org by ji...@apache.org on 2025/10/30 12:44:21 UTC

(incubator-hugegraph-ai) 12/32: feat: add ANTLR-generated Gremlin grammar package with lexer, parser and visitor classes

This is an automated email from the ASF dual-hosted git repository.

jin pushed a commit to branch text2gql
in repository https://gitbox.apache.org/repos/asf/incubator-hugegraph-ai.git

commit 4b9fb27aa5ed7e172e226ef97a14385a21ddbe4b
Author: Lriver <zj...@foxmail.com>
AuthorDate: Tue Sep 30 21:16:33 2025 +0800

    feat: add ANTLR-generated Gremlin grammar package with lexer, parser and visitor classes
---
 .../AST_Text2Gremlin/base/gremlin/Gremlin.g4       |  3094 ++
 .../AST_Text2Gremlin/base/gremlin/Gremlin.interp   |   855 +
 .../AST_Text2Gremlin/base/gremlin/Gremlin.tokens   |   532 +
 .../base/gremlin/GremlinLexer.interp               |   865 +
 .../AST_Text2Gremlin/base/gremlin/GremlinLexer.py  |  1598 +
 .../base/gremlin/GremlinLexer.tokens               |   532 +
 .../base/gremlin/GremlinListener.py                |  3747 +++
 .../AST_Text2Gremlin/base/gremlin/GremlinParser.py | 32739 +++++++++++++++++++
 .../base/gremlin/GremlinVisitor.py                 |  2088 ++
 .../AST_Text2Gremlin/base/gremlin/__init__.py      |     0
 .../base/gremlin/antlr-4.13.1-complete.jar         |   Bin 0 -> 2139203 bytes
 11 files changed, 46050 insertions(+)

diff --git a/text2gremlin/AST_Text2Gremlin/base/gremlin/Gremlin.g4 b/text2gremlin/AST_Text2Gremlin/base/gremlin/Gremlin.g4
new file mode 100644
index 00000000..ef4d9a4e
--- /dev/null
+++ b/text2gremlin/AST_Text2Gremlin/base/gremlin/Gremlin.g4
@@ -0,0 +1,3094 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+grammar Gremlin;
+
+/*********************************************
+    PARSER RULES
+**********************************************/
+
+queryList
+    : query (SEMI? query)* SEMI? EOF
+    ;
+
+query
+    : traversalSource
+    | traversalSource DOT transactionPart
+    | rootTraversal
+    | rootTraversal DOT traversalTerminalMethod
+    | query DOT K_TOSTRING LPAREN RPAREN
+    | emptyQuery
+    ;
+
+emptyQuery
+    : EmptyStringLiteral
+    ;
+
+traversalSource
+    : TRAVERSAL_ROOT
+    | TRAVERSAL_ROOT DOT traversalSourceSelfMethod
+    | traversalSource DOT traversalSourceSelfMethod
+    ;
+
+transactionPart
+    : K_TX LPAREN RPAREN DOT K_BEGIN LPAREN RPAREN
+    | K_TX LPAREN RPAREN DOT K_COMMIT LPAREN RPAREN
+    | K_TX LPAREN RPAREN DOT K_ROLLBACK LPAREN RPAREN
+    ;
+
+rootTraversal
+    : traversalSource DOT traversalSourceSpawnMethod
+    | traversalSource DOT traversalSourceSpawnMethod DOT chainedTraversal
+    ;
+
+traversalSourceSelfMethod
+    : traversalSourceSelfMethod_withBulk
+    | traversalSourceSelfMethod_withPath
+    | traversalSourceSelfMethod_withSack
+    | traversalSourceSelfMethod_withSideEffect
+    | traversalSourceSelfMethod_withStrategies
+    | traversalSourceSelfMethod_withoutStrategies
+    | traversalSourceSelfMethod_with
+    ;
+
+traversalSourceSelfMethod_withBulk
+    : K_WITHBULK LPAREN booleanArgument RPAREN
+    ;
+
+traversalSourceSelfMethod_withPath
+    : K_WITHPATH LPAREN RPAREN
+    ;
+
+traversalSourceSelfMethod_withSack
+    : K_WITHSACK LPAREN genericArgument RPAREN
+    | K_WITHSACK LPAREN genericArgument COMMA traversalBiFunction RPAREN
+    ;
+
+traversalSourceSelfMethod_withSideEffect
+    : K_WITHSIDEEFFECT LPAREN stringLiteral COMMA genericArgument RPAREN
+    | K_WITHSIDEEFFECT LPAREN stringLiteral COMMA genericArgument COMMA traversalBiFunction RPAREN
+    ;
+
+traversalSourceSelfMethod_withStrategies
+    : K_WITHSTRATEGIES LPAREN traversalStrategy (COMMA traversalStrategyVarargs)? RPAREN
+    ;
+
+traversalSourceSelfMethod_withoutStrategies
+    : K_WITHOUTSTRATEGIES LPAREN classType (COMMA classTypeList)? RPAREN
+    ;
+
+traversalSourceSelfMethod_with
+    : K_WITH LPAREN stringLiteral RPAREN
+    | K_WITH LPAREN stringLiteral COMMA genericArgument RPAREN
+    ;
+
+traversalSourceSpawnMethod
+    : traversalSourceSpawnMethod_addE
+    | traversalSourceSpawnMethod_addV
+    | traversalSourceSpawnMethod_E
+    | traversalSourceSpawnMethod_V
+    | traversalSourceSpawnMethod_mergeE
+    | traversalSourceSpawnMethod_mergeV
+    | traversalSourceSpawnMethod_inject
+    | traversalSourceSpawnMethod_io
+    | traversalSourceSpawnMethod_call
+    | traversalSourceSpawnMethod_union
+    ;
+
+traversalSourceSpawnMethod_addE
+    : K_ADDE LPAREN stringArgument RPAREN
+    | K_ADDE LPAREN nestedTraversal RPAREN
+    ;
+
+traversalSourceSpawnMethod_addV
+    : K_ADDV LPAREN RPAREN
+    | K_ADDV LPAREN stringArgument RPAREN
+    | K_ADDV LPAREN nestedTraversal RPAREN
+    ;
+
+traversalSourceSpawnMethod_E
+    : K_E LPAREN genericArgumentVarargs RPAREN
+    ;
+
+traversalSourceSpawnMethod_V
+    : K_V LPAREN genericArgumentVarargs RPAREN
+    ;
+
+traversalSourceSpawnMethod_inject
+    : K_INJECT LPAREN genericArgumentVarargs RPAREN
+    ;
+
+traversalSourceSpawnMethod_io
+    : K_IO LPAREN stringLiteral RPAREN
+    ;
+
+traversalSourceSpawnMethod_mergeV
+    : K_MERGEV LPAREN genericMapNullableArgument RPAREN #traversalSourceSpawnMethod_mergeV_Map
+    | K_MERGEV LPAREN nestedTraversal RPAREN #traversalSourceSpawnMethod_mergeV_Traversal
+    ;
+
+traversalSourceSpawnMethod_mergeE
+    : K_MERGEE LPAREN genericMapNullableArgument RPAREN #traversalSourceSpawnMethod_mergeE_Map
+    | K_MERGEE LPAREN nestedTraversal RPAREN #traversalSourceSpawnMethod_mergeE_Traversal
+    ;
+
+traversalSourceSpawnMethod_call
+    : K_CALL LPAREN RPAREN #traversalSourceSpawnMethod_call_empty
+    | K_CALL LPAREN stringLiteral RPAREN #traversalSourceSpawnMethod_call_string
+    | K_CALL LPAREN stringLiteral COMMA genericMapArgument RPAREN #traversalSourceSpawnMethod_call_string_map
+    | K_CALL LPAREN stringLiteral COMMA nestedTraversal RPAREN #traversalSourceSpawnMethod_call_string_traversal
+    | K_CALL LPAREN stringLiteral COMMA genericMapArgument COMMA nestedTraversal RPAREN #traversalSourceSpawnMethod_call_string_map_traversal
+    ;
+
+traversalSourceSpawnMethod_union
+    : K_UNION LPAREN nestedTraversalList RPAREN
+    ;
+
+chainedTraversal
+    : traversalMethod
+    | chainedTraversal DOT traversalMethod
+    ;
+
+nestedTraversal
+    : chainedTraversal
+    | ANON_TRAVERSAL_ROOT DOT chainedTraversal
+    ;
+
+terminatedTraversal
+    : rootTraversal DOT traversalTerminalMethod
+    ;
+
+traversalMethod
+    : traversalMethod_V
+    | traversalMethod_E
+    | traversalMethod_addE
+    | traversalMethod_addV
+    | traversalMethod_mergeE
+    | traversalMethod_mergeV
+    | traversalMethod_aggregate
+    | traversalMethod_all
+    | traversalMethod_and
+    | traversalMethod_any
+    | traversalMethod_as
+    | traversalMethod_barrier
+    | traversalMethod_both
+    | traversalMethod_bothE
+    | traversalMethod_bothV
+    | traversalMethod_branch
+    | traversalMethod_by
+    | traversalMethod_cap
+    | traversalMethod_choose
+    | traversalMethod_coalesce
+    | traversalMethod_coin
+    | traversalMethod_conjoin
+    | traversalMethod_connectedComponent
+    | traversalMethod_constant
+    | traversalMethod_count
+    | traversalMethod_cyclicPath
+    | traversalMethod_dedup
+    | traversalMethod_difference
+    | traversalMethod_discard
+    | traversalMethod_disjunct
+    | traversalMethod_drop
+    | traversalMethod_elementMap
+    | traversalMethod_emit
+    | traversalMethod_filter
+    | traversalMethod_flatMap
+    | traversalMethod_fold
+    | traversalMethod_from
+    | traversalMethod_group
+    | traversalMethod_groupCount
+    | traversalMethod_has
+    | traversalMethod_hasId
+    | traversalMethod_hasKey
+    | traversalMethod_hasLabel
+    | traversalMethod_hasNot
+    | traversalMethod_hasValue
+    | traversalMethod_id
+    | traversalMethod_identity
+    | traversalMethod_in
+    | traversalMethod_inE
+    | traversalMethod_intersect
+    | traversalMethod_inV
+    | traversalMethod_index
+    | traversalMethod_inject
+    | traversalMethod_is
+    | traversalMethod_key
+    | traversalMethod_label
+    | traversalMethod_limit
+    | traversalMethod_local
+    | traversalMethod_loops
+    | traversalMethod_map
+    | traversalMethod_match
+    | traversalMethod_math
+    | traversalMethod_max
+    | traversalMethod_mean
+    | traversalMethod_min
+    | traversalMethod_none
+    | traversalMethod_not
+    | traversalMethod_option
+    | traversalMethod_optional
+    | traversalMethod_or
+    | traversalMethod_order
+    | traversalMethod_otherV
+    | traversalMethod_out
+    | traversalMethod_outE
+    | traversalMethod_outV
+    | traversalMethod_pageRank
+    | traversalMethod_path
+    | traversalMethod_peerPressure
+    | traversalMethod_profile
+    | traversalMethod_project
+    | traversalMethod_properties
+    | traversalMethod_property
+    | traversalMethod_propertyMap
+    | traversalMethod_range
+    | traversalMethod_read
+    | traversalMethod_repeat
+    | traversalMethod_sack
+    | traversalMethod_sample
+    | traversalMethod_select
+    | traversalMethod_combine
+    | traversalMethod_product
+    | traversalMethod_merge
+    | traversalMethod_shortestPath
+    | traversalMethod_sideEffect
+    | traversalMethod_simplePath
+    | traversalMethod_skip
+    | traversalMethod_store
+    | traversalMethod_subgraph
+    | traversalMethod_sum
+    | traversalMethod_tail
+    | traversalMethod_fail
+    | traversalMethod_timeLimit
+    | traversalMethod_times
+    | traversalMethod_to
+    | traversalMethod_toE
+    | traversalMethod_toV
+    | traversalMethod_tree
+    | traversalMethod_unfold
+    | traversalMethod_union
+    | traversalMethod_until
+    | traversalMethod_value
+    | traversalMethod_valueMap
+    | traversalMethod_values
+    | traversalMethod_where
+    | traversalMethod_with
+    | traversalMethod_write
+    | traversalMethod_element
+    | traversalMethod_call
+    | traversalMethod_concat
+    | traversalMethod_asString
+    | traversalMethod_format
+    | traversalMethod_toUpper
+    | traversalMethod_toLower
+    | traversalMethod_length
+    | traversalMethod_trim
+    | traversalMethod_lTrim
+    | traversalMethod_rTrim
+    | traversalMethod_reverse
+    | traversalMethod_replace
+    | traversalMethod_split
+    | traversalMethod_substring
+    | traversalMethod_asDate
+    | traversalMethod_dateAdd
+    | traversalMethod_dateDiff
+    ;
+
+traversalMethod_V
+    : K_V LPAREN genericArgumentVarargs RPAREN
+    ;
+
+traversalMethod_E
+    : K_E LPAREN genericArgumentVarargs RPAREN
+    ;
+
+traversalMethod_addE
+    : K_ADDE LPAREN stringArgument RPAREN #traversalMethod_addE_String
+    | K_ADDE LPAREN nestedTraversal RPAREN #traversalMethod_addE_Traversal
+    ;
+
+traversalMethod_addV
+    : K_ADDV LPAREN RPAREN #traversalMethod_addV_Empty
+    | K_ADDV LPAREN stringArgument RPAREN #traversalMethod_addV_String
+    | K_ADDV LPAREN nestedTraversal RPAREN #traversalMethod_addV_Traversal
+    ;
+
+traversalMethod_aggregate
+    : K_AGGREGATE LPAREN traversalScope COMMA stringLiteral RPAREN #traversalMethod_aggregate_Scope_String
+    | K_AGGREGATE LPAREN stringLiteral RPAREN #traversalMethod_aggregate_String
+    ;
+
+traversalMethod_all
+    : K_ALL LPAREN traversalPredicate RPAREN #traversalMethod_all_P
+    ;
+
+traversalMethod_and
+    : K_AND LPAREN nestedTraversalList RPAREN
+    ;
+
+traversalMethod_any
+    : K_ANY LPAREN traversalPredicate RPAREN #traversalMethod_any_P
+    ;
+
+traversalMethod_as
+    : K_AS LPAREN stringLiteral (COMMA stringNullableLiteralVarargs)? RPAREN
+    ;
+
+traversalMethod_asDate
+    : K_ASDATE LPAREN RPAREN
+    ;
+
+traversalMethod_asString
+    : K_ASSTRING LPAREN RPAREN #traversalMethod_asString_Empty
+    | K_ASSTRING LPAREN traversalScope RPAREN #traversalMethod_asString_Scope
+    ;
+
+traversalMethod_barrier
+    : K_BARRIER LPAREN traversalSackMethod RPAREN #traversalMethod_barrier_Consumer
+    | K_BARRIER LPAREN RPAREN #traversalMethod_barrier_Empty
+    | K_BARRIER LPAREN integerLiteral RPAREN #traversalMethod_barrier_int
+    ;
+
+traversalMethod_both
+    : K_BOTH LPAREN stringNullableArgumentVarargs RPAREN
+    ;
+
+traversalMethod_bothE
+    : K_BOTHE LPAREN stringNullableArgumentVarargs RPAREN
+    ;
+
+traversalMethod_bothV
+    : K_BOTHV LPAREN RPAREN
+    ;
+
+traversalMethod_branch
+    : K_BRANCH LPAREN nestedTraversal RPAREN
+    ;
+
+traversalMethod_by
+    : K_BY LPAREN traversalComparator RPAREN #traversalMethod_by_Comparator
+    | K_BY LPAREN RPAREN #traversalMethod_by_Empty
+    | K_BY LPAREN traversalFunction RPAREN #traversalMethod_by_Function
+    | K_BY LPAREN traversalFunction COMMA traversalComparator RPAREN #traversalMethod_by_Function_Comparator
+    | K_BY LPAREN traversalOrder RPAREN #traversalMethod_by_Order
+    | K_BY LPAREN stringLiteral RPAREN #traversalMethod_by_String
+    | K_BY LPAREN stringLiteral COMMA traversalComparator RPAREN #traversalMethod_by_String_Comparator
+    | K_BY LPAREN traversalT RPAREN #traversalMethod_by_T
+    | K_BY LPAREN nestedTraversal RPAREN #traversalMethod_by_Traversal
+    | K_BY LPAREN nestedTraversal COMMA traversalComparator RPAREN #traversalMethod_by_Traversal_Comparator
+    ;
+
+traversalMethod_call
+    : K_CALL LPAREN stringLiteral RPAREN #traversalMethod_call_string
+    | K_CALL LPAREN stringLiteral COMMA genericMapArgument RPAREN #traversalMethod_call_string_map
+    | K_CALL LPAREN stringLiteral COMMA nestedTraversal RPAREN #traversalMethod_call_string_traversal
+    | K_CALL LPAREN stringLiteral COMMA genericMapArgument COMMA nestedTraversal RPAREN #traversalMethod_call_string_map_traversal
+    ;
+
+traversalMethod_cap
+    : K_CAP LPAREN stringLiteral (COMMA stringNullableLiteralVarargs)? RPAREN
+    ;
+
+traversalMethod_choose
+    : K_CHOOSE LPAREN traversalFunction RPAREN #traversalMethod_choose_Function
+    | K_CHOOSE LPAREN traversalPredicate COMMA nestedTraversal RPAREN #traversalMethod_choose_Predicate_Traversal
+    | K_CHOOSE LPAREN traversalPredicate COMMA nestedTraversal COMMA nestedTraversal RPAREN #traversalMethod_choose_Predicate_Traversal_Traversal
+    | K_CHOOSE LPAREN nestedTraversal RPAREN #traversalMethod_choose_Traversal
+    | K_CHOOSE LPAREN nestedTraversal COMMA nestedTraversal RPAREN #traversalMethod_choose_Traversal_Traversal
+    | K_CHOOSE LPAREN nestedTraversal COMMA nestedTraversal COMMA nestedTraversal RPAREN #traversalMethod_choose_Traversal_Traversal_Traversal
+    ;
+
+traversalMethod_coalesce
+    : K_COALESCE LPAREN nestedTraversalList RPAREN
+    ;
+
+traversalMethod_coin
+    : K_COIN LPAREN floatArgument RPAREN
+    ;
+
+traversalMethod_combine
+    : K_COMBINE LPAREN genericArgument RPAREN #traversalMethod_combine_Object
+    ;
+
+traversalMethod_concat
+    : K_CONCAT LPAREN nestedTraversal (COMMA nestedTraversalList)? RPAREN #traversalMethod_concat_Traversal_Traversal
+    | K_CONCAT LPAREN stringNullableLiteralVarargs RPAREN #traversalMethod_concat_String
+    ;
+
+traversalMethod_conjoin
+    : K_CONJOIN LPAREN stringArgument RPAREN #traversalMethod_conjoin_String
+    ;
+
+traversalMethod_connectedComponent
+    : K_CONNECTEDCOMPONENT LPAREN RPAREN
+    ;
+
+traversalMethod_constant
+    : K_CONSTANT LPAREN genericArgument RPAREN
+    ;
+
+traversalMethod_count
+    : K_COUNT LPAREN RPAREN #traversalMethod_count_Empty
+    | K_COUNT LPAREN traversalScope RPAREN #traversalMethod_count_Scope
+    ;
+
+traversalMethod_cyclicPath
+    : K_CYCLICPATH LPAREN RPAREN
+    ;
+
+traversalMethod_dateAdd
+    : K_DATEADD LPAREN traversalDT COMMA integerLiteral RPAREN
+    ;
+
+traversalMethod_dateDiff
+    : K_DATEDIFF LPAREN nestedTraversal RPAREN #traversalMethod_dateDiff_Traversal
+    | K_DATEDIFF LPAREN dateLiteral RPAREN #traversalMethod_dateDiff_Date
+    ;
+
+traversalMethod_dedup
+    : K_DEDUP LPAREN traversalScope (COMMA stringNullableLiteralVarargs)? RPAREN #traversalMethod_dedup_Scope_String
+    | K_DEDUP LPAREN stringNullableLiteralVarargs RPAREN #traversalMethod_dedup_String
+    ;
+
+traversalMethod_difference
+    : K_DIFFERENCE LPAREN genericArgument RPAREN #traversalMethod_difference_Object
+    ;
+
+traversalMethod_discard
+    : 'discard' LPAREN RPAREN
+    ;
+
+traversalMethod_disjunct
+    : K_DISJUNCT LPAREN genericArgument RPAREN #traversalMethod_disjunct_Object
+    ;
+
+traversalMethod_drop
+    : K_DROP LPAREN RPAREN
+    ;
+
+traversalMethod_element
+    : K_ELEMENT LPAREN RPAREN
+    ;
+
+traversalMethod_elementMap
+    : K_ELEMENTMAP LPAREN stringNullableLiteralVarargs RPAREN
+    ;
+
+traversalMethod_emit
+    : K_EMIT LPAREN RPAREN #traversalMethod_emit_Empty
+    | K_EMIT LPAREN traversalPredicate RPAREN #traversalMethod_emit_Predicate
+    | K_EMIT LPAREN nestedTraversal RPAREN #traversalMethod_emit_Traversal
+    ;
+
+traversalMethod_fail
+    : K_FAIL LPAREN RPAREN #traversalMethod_fail_Empty
+    | K_FAIL LPAREN stringLiteral RPAREN #traversalMethod_fail_String
+    ;
+
+traversalMethod_filter
+    : K_FILTER LPAREN traversalPredicate RPAREN #traversalMethod_filter_Predicate
+    | K_FILTER LPAREN nestedTraversal RPAREN #traversalMethod_filter_Traversal
+    ;
+
+traversalMethod_flatMap
+    : K_FLATMAP LPAREN nestedTraversal RPAREN
+    ;
+
+traversalMethod_fold
+    : K_FOLD LPAREN RPAREN #traversalMethod_fold_Empty
+    | K_FOLD LPAREN genericArgument COMMA traversalBiFunction RPAREN #traversalMethod_fold_Object_BiFunction
+    ;
+
+traversalMethod_format
+    : K_FORMAT LPAREN stringLiteral RPAREN #traversalMethod_format_String
+    ;
+
+traversalMethod_from
+    : K_FROM LPAREN stringLiteral RPAREN #traversalMethod_from_String
+    | K_FROM LPAREN structureVertexArgument RPAREN #traversalMethod_from_Vertex
+    | K_FROM LPAREN nestedTraversal RPAREN #traversalMethod_from_Traversal
+    ;
+
+traversalMethod_group
+    : K_GROUP LPAREN RPAREN #traversalMethod_group_Empty
+    | K_GROUP LPAREN stringLiteral RPAREN #traversalMethod_group_String
+    ;
+
+traversalMethod_groupCount
+    : K_GROUPCOUNT LPAREN RPAREN #traversalMethod_groupCount_Empty
+    | K_GROUPCOUNT LPAREN stringLiteral RPAREN #traversalMethod_groupCount_String
+    ;
+
+traversalMethod_has
+    : K_HAS LPAREN stringNullableLiteral RPAREN #traversalMethod_has_String
+    | K_HAS LPAREN stringNullableLiteral COMMA genericArgument RPAREN #traversalMethod_has_String_Object
+    | K_HAS LPAREN stringNullableLiteral COMMA traversalPredicate RPAREN #traversalMethod_has_String_P
+    | K_HAS LPAREN stringNullableArgument COMMA stringNullableLiteral COMMA genericArgument RPAREN #traversalMethod_has_String_String_Object
+    | K_HAS LPAREN stringNullableArgument COMMA stringNullableLiteral COMMA traversalPredicate RPAREN #traversalMethod_has_String_String_P
+    | K_HAS LPAREN stringNullableLiteral COMMA nestedTraversal RPAREN #traversalMethod_has_String_Traversal
+    | K_HAS LPAREN traversalT COMMA genericArgument RPAREN #traversalMethod_has_T_Object
+    | K_HAS LPAREN traversalT COMMA traversalPredicate RPAREN #traversalMethod_has_T_P
+    | K_HAS LPAREN traversalT COMMA nestedTraversal RPAREN #traversalMethod_has_T_Traversal
+    ;
+
+traversalMethod_hasId
+    : K_HASID LPAREN genericArgument (COMMA genericArgumentVarargs)? RPAREN #traversalMethod_hasId_Object_Object
+    | K_HASID LPAREN traversalPredicate RPAREN #traversalMethod_hasId_P
+    ;
+
+traversalMethod_hasKey
+    : K_HASKEY LPAREN traversalPredicate RPAREN #traversalMethod_hasKey_P
+    | K_HASKEY LPAREN stringNullableLiteral (COMMA stringNullableLiteralVarargs)? RPAREN #traversalMethod_hasKey_String_String
+    ;
+
+traversalMethod_hasLabel
+    : K_HASLABEL LPAREN traversalPredicate RPAREN #traversalMethod_hasLabel_P
+    | K_HASLABEL LPAREN stringNullableArgument (COMMA stringNullableArgumentVarargs)? RPAREN #traversalMethod_hasLabel_String_String
+    ;
+
+traversalMethod_hasNot
+    : K_HASNOT LPAREN stringNullableLiteral RPAREN
+    ;
+
+traversalMethod_hasValue
+    : K_HASVALUE LPAREN genericArgument (COMMA genericArgumentVarargs)? RPAREN #traversalMethod_hasValue_Object_Object
+    | K_HASVALUE LPAREN traversalPredicate RPAREN #traversalMethod_hasValue_P
+    ;
+
+traversalMethod_id
+    : K_ID LPAREN RPAREN
+    ;
+
+traversalMethod_identity
+    : K_IDENTITY LPAREN RPAREN
+    ;
+
+traversalMethod_in
+    : K_IN LPAREN stringNullableArgumentVarargs RPAREN
+    ;
+
+traversalMethod_inE
+    : K_INE LPAREN stringNullableArgumentVarargs RPAREN
+    ;
+
+traversalMethod_intersect
+    : K_INTERSECT LPAREN genericArgument RPAREN #traversalMethod_intersect_Object
+    ;
+
+traversalMethod_inV
+    : K_INV LPAREN RPAREN
+    ;
+
+traversalMethod_index
+    : K_INDEX LPAREN RPAREN
+    ;
+
+traversalMethod_inject
+    : K_INJECT LPAREN genericArgumentVarargs RPAREN
+    ;
+
+traversalMethod_is
+    : K_IS LPAREN genericArgument RPAREN #traversalMethod_is_Object
+    | K_IS LPAREN traversalPredicate RPAREN #traversalMethod_is_P
+    ;
+
+traversalMethod_key
+    : K_KEY LPAREN RPAREN
+    ;
+
+traversalMethod_label
+    : K_LABEL LPAREN RPAREN
+    ;
+
+traversalMethod_length
+    : K_LENGTH LPAREN RPAREN #traversalMethod_length_Empty
+    | K_LENGTH LPAREN traversalScope RPAREN #traversalMethod_length_Scope
+    ;
+
+traversalMethod_limit
+    : K_LIMIT LPAREN traversalScope COMMA integerArgument RPAREN #traversalMethod_limit_Scope_long
+    | K_LIMIT LPAREN integerArgument RPAREN #traversalMethod_limit_long
+    ;
+
+traversalMethod_local
+    : K_LOCAL LPAREN nestedTraversal RPAREN
+    ;
+
+traversalMethod_loops
+    : K_LOOPS LPAREN RPAREN #traversalMethod_loops_Empty
+    | K_LOOPS LPAREN stringLiteral RPAREN #traversalMethod_loops_String
+    ;
+
+traversalMethod_lTrim
+    : K_LTRIM LPAREN RPAREN #traversalMethod_lTrim_Empty
+    | K_LTRIM LPAREN traversalScope RPAREN #traversalMethod_lTrim_Scope
+    ;
+
+traversalMethod_map
+    : K_MAP LPAREN nestedTraversal RPAREN
+    ;
+
+traversalMethod_match
+    : K_MATCH LPAREN nestedTraversalList RPAREN
+    ;
+
+traversalMethod_math
+    : K_MATH LPAREN stringLiteral RPAREN
+    ;
+
+traversalMethod_max
+    : K_MAX LPAREN RPAREN #traversalMethod_max_Empty
+    | K_MAX LPAREN traversalScope RPAREN #traversalMethod_max_Scope
+    ;
+
+traversalMethod_mean
+    : K_MEAN LPAREN RPAREN #traversalMethod_mean_Empty
+    | K_MEAN LPAREN traversalScope RPAREN #traversalMethod_mean_Scope
+    ;
+
+traversalMethod_merge
+    : K_MERGE LPAREN genericArgument RPAREN #traversalMethod_merge_Object
+    ;
+
+traversalMethod_mergeV
+    : K_MERGEV LPAREN RPAREN #traversalMethod_mergeV_empty
+    | K_MERGEV LPAREN genericMapNullableArgument RPAREN #traversalMethod_mergeV_Map
+    | K_MERGEV LPAREN nestedTraversal RPAREN #traversalMethod_mergeV_Traversal
+    ;
+
+traversalMethod_mergeE
+    : K_MERGEE LPAREN RPAREN #traversalMethod_mergeE_empty
+    | K_MERGEE LPAREN genericMapNullableArgument RPAREN #traversalMethod_mergeE_Map
+    | K_MERGEE LPAREN nestedTraversal RPAREN #traversalMethod_mergeE_Traversal
+    ;
+
+traversalMethod_min
+    : K_MIN LPAREN RPAREN #traversalMethod_min_Empty
+    | K_MIN LPAREN traversalScope RPAREN #traversalMethod_min_Scope
+    ;
+
+traversalMethod_none
+    : K_NONE LPAREN traversalPredicate RPAREN #traversalMethod_none_P
+    ;
+
+traversalMethod_not
+    : K_NOT LPAREN nestedTraversal RPAREN
+    ;
+
+traversalMethod_option
+    : K_OPTION LPAREN traversalPredicate COMMA nestedTraversal RPAREN #traversalMethod_option_Predicate_Traversal
+    | K_OPTION LPAREN traversalMerge COMMA genericMapNullableArgument RPAREN #traversalMethod_option_Merge_Map
+    | K_OPTION LPAREN traversalMerge COMMA genericMapNullableArgument COMMA traversalCardinality RPAREN #traversalMethod_option_Merge_Map_Cardinality
+    | K_OPTION LPAREN traversalMerge COMMA nestedTraversal RPAREN #traversalMethod_option_Merge_Traversal
+    | K_OPTION LPAREN genericArgument COMMA nestedTraversal RPAREN #traversalMethod_option_Object_Traversal
+    | K_OPTION LPAREN nestedTraversal RPAREN #traversalMethod_option_Traversal
+    ;
+
+traversalMethod_optional
+    : K_OPTIONAL LPAREN nestedTraversal RPAREN
+    ;
+
+traversalMethod_or
+    : K_OR LPAREN nestedTraversalList RPAREN
+    ;
+
+traversalMethod_order
+    : K_ORDER LPAREN RPAREN #traversalMethod_order_Empty
+    | K_ORDER LPAREN traversalScope RPAREN #traversalMethod_order_Scope
+    ;
+
+traversalMethod_otherV
+    : K_OTHERV LPAREN RPAREN
+    ;
+
+traversalMethod_out
+    : K_OUT LPAREN stringNullableArgumentVarargs RPAREN
+    ;
+
+traversalMethod_outE
+    : K_OUTE LPAREN stringNullableArgumentVarargs RPAREN
+    ;
+
+traversalMethod_outV
+    : K_OUTV LPAREN RPAREN
+    ;
+
+traversalMethod_pageRank
+    : K_PAGERANK LPAREN RPAREN #traversalMethod_pageRank_Empty
+    | K_PAGERANK LPAREN floatArgument RPAREN #traversalMethod_pageRank_double
+    ;
+
+traversalMethod_path
+    : K_PATH LPAREN RPAREN
+    ;
+
+traversalMethod_peerPressure
+    : K_PEERPRESSURE LPAREN RPAREN
+    ;
+
+traversalMethod_product
+    : K_PRODUCT LPAREN genericArgument RPAREN #traversalMethod_product_Object
+    ;
+
+traversalMethod_profile
+    : K_PROFILE LPAREN RPAREN #traversalMethod_profile_Empty
+    | K_PROFILE LPAREN stringLiteral RPAREN #traversalMethod_profile_String
+    ;
+
+traversalMethod_project
+    : K_PROJECT LPAREN stringLiteral (COMMA stringNullableLiteralVarargs)? RPAREN
+    ;
+
+traversalMethod_properties
+    : K_PROPERTIES LPAREN stringNullableLiteralVarargs RPAREN
+    ;
+
+traversalMethod_property
+    : K_PROPERTY LPAREN traversalCardinality COMMA genericArgument COMMA genericArgument (COMMA genericArgumentVarargs)? RPAREN #traversalMethod_property_Cardinality_Object_Object_Object
+    | K_PROPERTY LPAREN traversalCardinality COMMA genericMapNullableArgument RPAREN # traversalMethod_property_Cardinality_Object
+    | K_PROPERTY LPAREN genericArgument COMMA genericArgument (COMMA genericArgumentVarargs)? RPAREN #traversalMethod_property_Object_Object_Object
+    | K_PROPERTY LPAREN genericMapNullableArgument RPAREN # traversalMethod_property_Object
+    ;
+
+traversalMethod_propertyMap
+    : K_PROPERTYMAP LPAREN stringNullableLiteralVarargs RPAREN
+    ;
+
+traversalMethod_range
+    : K_RANGE LPAREN traversalScope COMMA integerArgument COMMA integerArgument RPAREN #traversalMethod_range_Scope_long_long
+    | K_RANGE LPAREN integerArgument COMMA integerArgument RPAREN #traversalMethod_range_long_long
+    ;
+
+traversalMethod_read
+    : K_READ LPAREN RPAREN
+    ;
+
+traversalMethod_repeat
+    : K_REPEAT LPAREN stringLiteral COMMA nestedTraversal RPAREN #traversalMethod_repeat_String_Traversal
+    | K_REPEAT LPAREN nestedTraversal RPAREN #traversalMethod_repeat_Traversal
+    ;
+
+traversalMethod_replace
+    : K_REPLACE LPAREN stringNullableLiteral COMMA stringNullableLiteral RPAREN #traversalMethod_replace_String_String
+    | K_REPLACE LPAREN traversalScope COMMA stringNullableLiteral COMMA stringNullableLiteral RPAREN #traversalMethod_replace_Scope_String_String
+    ;
+
+traversalMethod_reverse
+    : K_REVERSE LPAREN RPAREN #traversalMethod_reverse_Empty
+    ;
+
+traversalMethod_rTrim
+    : K_RTRIM LPAREN RPAREN #traversalMethod_rTrim_Empty
+    | K_RTRIM LPAREN traversalScope RPAREN #traversalMethod_rTrim_Scope
+    ;
+
+traversalMethod_sack
+    : K_SACK LPAREN traversalBiFunction RPAREN #traversalMethod_sack_BiFunction
+    | K_SACK LPAREN RPAREN #traversalMethod_sack_Empty
+    ;
+
+traversalMethod_sample
+    : K_SAMPLE LPAREN traversalScope COMMA integerLiteral RPAREN #traversalMethod_sample_Scope_int
+    | K_SAMPLE LPAREN integerLiteral RPAREN #traversalMethod_sample_int
+    ;
+
+traversalMethod_select
+    : K_SELECT LPAREN traversalColumn RPAREN #traversalMethod_select_Column
+    | K_SELECT LPAREN traversalPop COMMA stringLiteral RPAREN #traversalMethod_select_Pop_String
+    | K_SELECT LPAREN traversalPop COMMA stringLiteral COMMA stringLiteral (COMMA stringNullableLiteralVarargs)? RPAREN #traversalMethod_select_Pop_String_String_String
+    | K_SELECT LPAREN traversalPop COMMA nestedTraversal RPAREN #traversalMethod_select_Pop_Traversal
+    | K_SELECT LPAREN stringLiteral RPAREN #traversalMethod_select_String
+    | K_SELECT LPAREN stringLiteral COMMA stringLiteral (COMMA stringNullableLiteralVarargs)? RPAREN #traversalMethod_select_String_String_String
+    | K_SELECT LPAREN nestedTraversal RPAREN #traversalMethod_select_Traversal
+    ;
+
+traversalMethod_shortestPath
+    : K_SHORTESTPATH LPAREN RPAREN
+    ;
+
+traversalMethod_sideEffect
+    : K_SIDEEFFECT LPAREN nestedTraversal RPAREN
+    ;
+
+traversalMethod_simplePath
+    : K_SIMPLEPATH LPAREN RPAREN
+    ;
+
+traversalMethod_skip
+    : K_SKIP LPAREN traversalScope COMMA integerArgument RPAREN #traversalMethod_skip_Scope_long
+    | K_SKIP LPAREN integerArgument RPAREN #traversalMethod_skip_long
+    ;
+
+traversalMethod_split
+    : K_SPLIT LPAREN stringNullableLiteral RPAREN #traversalMethod_split_String
+    | K_SPLIT LPAREN traversalScope COMMA stringNullableLiteral RPAREN #traversalMethod_split_Scope_String
+    ;
+
+traversalMethod_store
+    : K_STORE LPAREN stringLiteral RPAREN
+    ;
+
+traversalMethod_subgraph
+    : K_SUBGRAPH LPAREN stringLiteral RPAREN
+    ;
+
+traversalMethod_substring
+    : K_SUBSTRING LPAREN integerLiteral RPAREN #traversalMethod_substring_int
+    | K_SUBSTRING LPAREN traversalScope COMMA integerLiteral RPAREN #traversalMethod_substring_Scope_int
+    | K_SUBSTRING LPAREN integerLiteral COMMA integerLiteral RPAREN #traversalMethod_substring_int_int
+    | K_SUBSTRING LPAREN traversalScope COMMA integerLiteral COMMA integerLiteral RPAREN #traversalMethod_substring_Scope_int_int
+    ;
+
+traversalMethod_sum
+    : K_SUM LPAREN RPAREN #traversalMethod_sum_Empty
+    | K_SUM LPAREN traversalScope RPAREN #traversalMethod_sum_Scope
+    ;
+
+traversalMethod_tail
+    : K_TAIL LPAREN RPAREN #traversalMethod_tail_Empty
+    | K_TAIL LPAREN traversalScope RPAREN #traversalMethod_tail_Scope
+    | K_TAIL LPAREN traversalScope COMMA integerArgument RPAREN #traversalMethod_tail_Scope_long
+    | K_TAIL LPAREN integerArgument RPAREN #traversalMethod_tail_long
+    ;
+
+traversalMethod_timeLimit
+    : K_TIMELIMIT LPAREN integerLiteral RPAREN
+    ;
+
+traversalMethod_times
+    : K_TIMES LPAREN integerLiteral RPAREN
+    ;
+
+traversalMethod_to
+    : K_TO LPAREN traversalDirection (COMMA stringNullableLiteralVarargs)? RPAREN #traversalMethod_to_Direction_String
+    | K_TO LPAREN stringLiteral RPAREN #traversalMethod_to_String
+    | K_TO LPAREN structureVertexArgument RPAREN #traversalMethod_to_Vertex
+    | K_TO LPAREN nestedTraversal RPAREN #traversalMethod_to_Traversal
+    ;
+
+traversalMethod_toE
+    : K_TOE LPAREN traversalDirection (COMMA stringNullableArgumentVarargs)? RPAREN
+    ;
+
+traversalMethod_toLower
+    : K_TOLOWER LPAREN RPAREN #traversalMethod_toLower_Empty
+    | K_TOLOWER LPAREN traversalScope RPAREN #traversalMethod_toLower_Scope
+    ;
+
+traversalMethod_toUpper
+    : K_TOUPPER LPAREN RPAREN #traversalMethod_toUpper_Empty
+    | K_TOUPPER LPAREN traversalScope RPAREN #traversalMethod_toUpper_Scope
+    ;
+
+traversalMethod_toV
+    : K_TOV LPAREN traversalDirection RPAREN
+    ;
+
+traversalMethod_tree
+    : K_TREE LPAREN RPAREN #traversalMethod_tree_Empty
+    | K_TREE LPAREN stringLiteral RPAREN #traversalMethod_tree_String
+    ;
+
+traversalMethod_trim
+    : K_TRIM LPAREN RPAREN #traversalMethod_trim_Empty
+    | K_TRIM LPAREN traversalScope RPAREN #traversalMethod_trim_Scope
+    ;
+
+traversalMethod_unfold
+    : K_UNFOLD LPAREN RPAREN
+    ;
+
+traversalMethod_union
+    : K_UNION LPAREN nestedTraversalList RPAREN
+    ;
+
+traversalMethod_until
+    : K_UNTIL LPAREN traversalPredicate RPAREN #traversalMethod_until_Predicate
+    | K_UNTIL LPAREN nestedTraversal RPAREN #traversalMethod_until_Traversal
+    ;
+
+traversalMethod_value
+    : K_VALUE LPAREN RPAREN
+    ;
+
+traversalMethod_valueMap
+    : K_VALUEMAP LPAREN stringNullableLiteralVarargs RPAREN #traversalMethod_valueMap_String
+    | K_VALUEMAP LPAREN booleanLiteral  (COMMA stringNullableLiteralVarargs)? RPAREN #traversalMethod_valueMap_boolean_String
+    ;
+
+traversalMethod_values
+    : K_VALUES LPAREN stringNullableLiteralVarargs RPAREN
+    ;
+
+traversalMethod_where
+    : K_WHERE LPAREN traversalPredicate RPAREN #traversalMethod_where_P
+    | K_WHERE LPAREN stringLiteral COMMA traversalPredicate RPAREN #traversalMethod_where_String_P
+    | K_WHERE LPAREN nestedTraversal RPAREN #traversalMethod_where_Traversal
+    ;
+
+traversalMethod_with
+    : K_WITH LPAREN (withOptionKeys | stringLiteral) RPAREN #traversalMethod_with_String
+    | K_WITH LPAREN (withOptionKeys | stringLiteral) COMMA (withOptionsValues | ioOptionsValues | genericArgument) RPAREN #traversalMethod_with_String_Object
+    ;
+
+traversalMethod_write
+    : K_WRITE LPAREN RPAREN
+    ;
+
+/*********************************************
+    ARGUMENT AND TERMINAL RULES
+**********************************************/
+
+// There is syntax available in the construction of a ReferenceVertex, that allows the label to not be specified.
+// That use case is related to OLAP when the StarGraph does not preserve the label of adjacent vertices or other
+// fail fast scenarios in that processing model. It is not relevant to the grammar however when a user is creating
+// the Vertex to be used in a Traversal and therefore both id and label are required.
+structureVertexLiteral
+    : K_NEW? (K_VERTEX | K_REFERENCEVERTEX) LPAREN genericArgument COMMA stringArgument RPAREN
+    ;
+
+traversalStrategy
+    : K_NEW? classType (LPAREN (configuration (COMMA configuration)*)? RPAREN)?
+    ;
+
+configuration
+    : (keyword | nakedKey) COLON genericArgument
+    ;
+
+traversalScope
+    : K_LOCAL | K_SCOPE DOT K_LOCAL
+    | K_GLOBAL | K_SCOPE DOT K_GLOBAL
+    ;
+
+traversalBarrier
+    : K_NORMSACK | K_BARRIERU DOT K_NORMSACK
+    ;
+
+traversalT
+    : traversalTShort
+    | traversalTLong
+    ;
+
+traversalTShort
+    : K_ID
+    | K_LABEL
+    | K_KEY
+    | K_VALUE
+    ;
+
+traversalTLong
+    : K_T DOT K_ID
+    | K_T DOT K_LABEL
+    | K_T DOT K_KEY
+    | K_T DOT K_VALUE
+    ;
+
+traversalMerge
+    : K_ONCREATE | K_MERGEU DOT K_ONCREATE
+    | K_ONMATCH | K_MERGEU DOT K_ONMATCH
+    | K_OUTV | K_MERGEU DOT K_OUTV
+    | K_INV | K_MERGEU DOT K_INV
+    ;
+
+traversalOrder
+    : K_ASC  | K_ORDERU DOT K_ASC
+    | K_DESC | K_ORDERU DOT K_DESC
+    | K_SHUFFLE | K_ORDERU DOT K_SHUFFLE
+    ;
+
+traversalDirection
+    : traversalDirectionShort
+    | traversalDirectionLong
+    ;
+
+traversalDirectionShort
+    : K_INU | K_FROM
+    | K_OUTU | K_TO
+    | K_BOTHU
+    ;
+
+traversalDirectionLong
+    : K_DIRECTION DOT K_INU | K_DIRECTION DOT K_FROM
+    | K_DIRECTION DOT K_OUTU | K_DIRECTION DOT K_TO
+    | K_DIRECTION DOT K_BOTHU
+    ;
+
+traversalCardinality
+    : (K_CARDINALITY DOT K_SINGLE | K_SINGLE) LPAREN genericLiteral RPAREN
+    | (K_CARDINALITY DOT K_SET | K_SET) LPAREN genericLiteral RPAREN
+    | (K_CARDINALITY DOT K_LIST | K_LIST) LPAREN genericLiteral RPAREN
+    | K_SINGLE | K_CARDINALITY DOT K_SINGLE
+    | K_SET | K_CARDINALITY DOT K_SET
+    | K_LIST | K_CARDINALITY DOT K_LIST
+    ;
+
+traversalColumn
+    : K_KEYS | K_COLUMN DOT K_KEYS
+    | K_VALUES | K_COLUMN DOT K_VALUES
+    ;
+
+traversalPop
+    : K_FIRST | K_POP DOT K_FIRST
+    | K_LAST | K_POP DOT K_LAST
+    | K_ALL | K_POP DOT K_ALL
+    | K_MIXED | K_POP DOT K_MIXED
+    ;
+
+traversalOperator
+    : K_ADDALL | K_OPERATOR DOT K_ADDALL
+    | K_AND | K_OPERATOR DOT K_AND
+    | K_ASSIGN | K_OPERATOR DOT K_ASSIGN
+    | K_DIV | K_OPERATOR DOT K_DIV
+    | K_MAX | K_OPERATOR DOT K_MAX
+    | K_MIN | K_OPERATOR DOT K_MIN
+    | K_MINUS | K_OPERATOR DOT K_MINUS
+    | K_MULT | K_OPERATOR DOT K_MULT
+    | K_OR | K_OPERATOR DOT K_OR
+    | K_SUM | K_OPERATOR DOT K_SUM
+    | K_SUMLONG | K_OPERATOR DOT K_SUMLONG
+    ;
+
+traversalPick
+    : K_ANY | K_PICK DOT K_ANY
+    | K_NONE | K_PICK DOT K_NONE
+    ;
+
+traversalDT
+    : K_SECOND | K_DT DOT K_SECOND
+    | K_MINUTE | K_DT DOT K_MINUTE
+    | K_HOUR | K_DT DOT K_HOUR
+    | K_DAY | K_DT DOT K_DAY
+    ;
+
+traversalPredicate
+    : traversalPredicate_eq
+    | traversalPredicate_neq
+    | traversalPredicate_lt
+    | traversalPredicate_lte
+    | traversalPredicate_gt
+    | traversalPredicate_gte
+    | traversalPredicate_inside
+    | traversalPredicate_outside
+    | traversalPredicate_between
+    | traversalPredicate_within
+    | traversalPredicate_without
+    | traversalPredicate_not
+    | traversalPredicate_startingWith
+    | traversalPredicate_notStartingWith
+    | traversalPredicate_endingWith
+    | traversalPredicate_notEndingWith
+    | traversalPredicate_containing
+    | traversalPredicate_notContaining
+    | traversalPredicate_regex
+    | traversalPredicate_notRegex
+    | traversalPredicate DOT K_AND LPAREN traversalPredicate RPAREN
+    | traversalPredicate DOT K_OR LPAREN traversalPredicate RPAREN
+    | traversalPredicate DOT K_NEGATE LPAREN RPAREN
+    ;
+
+traversalTerminalMethod
+    : traversalTerminalMethod_explain
+    | traversalTerminalMethod_iterate
+    | traversalTerminalMethod_hasNext
+    | traversalTerminalMethod_tryNext
+    | traversalTerminalMethod_next
+    | traversalTerminalMethod_toList
+    | traversalTerminalMethod_toSet
+    | traversalTerminalMethod_toBulkSet
+    ;
+
+traversalSackMethod
+    : traversalBarrier
+    ;
+
+// Additional special rules that are derived from above
+// These are used to restrict broad method signatures that accept lambdas
+// to a smaller set.
+traversalComparator
+    : traversalOrder
+    ;
+
+traversalFunction
+    : traversalT
+    | traversalColumn
+    ;
+
+traversalBiFunction
+    : traversalOperator
+    ;
+
+traversalPredicate_eq
+    : (K_P DOT K_EQ | K_EQ) LPAREN genericArgument RPAREN
+    ;
+
+traversalPredicate_neq
+    : (K_P DOT K_NEQ | K_NEQ) LPAREN genericArgument RPAREN
+    ;
+
+traversalPredicate_lt
+    : (K_P DOT K_LT | K_LT) LPAREN genericArgument RPAREN
+    ;
+
+traversalPredicate_lte
+    : (K_P DOT K_LTE | K_LTE) LPAREN genericArgument RPAREN
+    ;
+
+traversalPredicate_gt
+    : (K_P DOT K_GT | K_GT) LPAREN genericArgument RPAREN
+    ;
+
+traversalPredicate_gte
+    : (K_P DOT K_GTE | K_GTE) LPAREN genericArgument RPAREN
+    ;
+
+traversalPredicate_inside
+    : (K_P DOT K_INSIDE | K_INSIDE) LPAREN genericArgument COMMA genericArgument RPAREN
+    ;
+
+traversalPredicate_outside
+    : (K_P DOT K_OUTSIDE | K_OUTSIDE) LPAREN genericArgument COMMA genericArgument RPAREN
+    ;
+
+traversalPredicate_between
+    : (K_P DOT K_BETWEEN | K_BETWEEN) LPAREN genericArgument COMMA genericArgument RPAREN
+    ;
+
+traversalPredicate_within
+    : (K_P DOT K_WITHIN | K_WITHIN) LPAREN RPAREN
+    | (K_P DOT K_WITHIN | K_WITHIN) LPAREN genericArgumentVarargs RPAREN
+    ;
+
+traversalPredicate_without
+    : (K_P DOT K_WITHOUT | K_WITHOUT) LPAREN RPAREN
+    | (K_P DOT K_WITHOUT | K_WITHOUT) LPAREN genericArgumentVarargs RPAREN
+    ;
+
+traversalPredicate_not
+    : (K_P DOT K_NOT | K_NOT) LPAREN traversalPredicate RPAREN
+    ;
+
+traversalPredicate_containing
+    : (K_TEXTP DOT K_CONTAINING | K_CONTAINING) LPAREN stringArgument RPAREN
+    ;
+
+traversalPredicate_notContaining
+    : (K_TEXTP DOT K_NOTCONTAINING | K_NOTCONTAINING) LPAREN stringArgument RPAREN
+    ;
+
+traversalPredicate_startingWith
+    : (K_TEXTP DOT K_STARTINGWITH | K_STARTINGWITH) LPAREN stringArgument RPAREN
+    ;
+
+traversalPredicate_notStartingWith
+    : (K_TEXTP DOT K_NOTSTARTINGWITH | K_NOTSTARTINGWITH) LPAREN stringArgument RPAREN
+    ;
+
+traversalPredicate_endingWith
+    : (K_TEXTP DOT K_ENDINGWITH | K_ENDINGWITH) LPAREN stringArgument RPAREN
+    ;
+
+traversalPredicate_notEndingWith
+    : (K_TEXTP DOT K_NOTENDINGWITH | K_NOTENDINGWITH) LPAREN stringArgument RPAREN
+    ;
+
+traversalPredicate_regex
+    : (K_TEXTP DOT K_REGEX | K_REGEX) LPAREN stringArgument RPAREN
+    ;
+
+traversalPredicate_notRegex
+    : (K_TEXTP DOT K_NOTREGEX | K_NOTREGEX) LPAREN stringArgument RPAREN
+    ;
+
+traversalTerminalMethod_explain
+    : K_EXPLAIN LPAREN RPAREN
+    ;
+
+traversalTerminalMethod_hasNext
+    : K_HASNEXT LPAREN RPAREN
+    ;
+
+traversalTerminalMethod_iterate
+    : K_ITERATE LPAREN RPAREN
+    ;
+
+traversalTerminalMethod_tryNext
+    : K_TRYNEXT LPAREN RPAREN
+    ;
+
+traversalTerminalMethod_next
+    : K_NEXT LPAREN RPAREN
+    | K_NEXT LPAREN integerLiteral RPAREN
+    ;
+
+traversalTerminalMethod_toList
+    : K_TOLIST LPAREN RPAREN
+    ;
+
+traversalTerminalMethod_toSet
+    : K_TOSET LPAREN RPAREN
+    ;
+
+traversalTerminalMethod_toBulkSet
+    : K_TOBULKSET LPAREN RPAREN
+    ;
+
+// Gremlin specific lexer rules
+
+withOptionKeys
+    : shortestPathConstants
+    | connectedComponentConstants
+    | pageRankConstants
+    | peerPressureConstants
+    | ioOptionsKeys
+    | withOptionsConstants_tokens
+    | withOptionsConstants_indexer
+    ;
+
+connectedComponentConstants
+    : connectedComponentConstants_component
+    | connectedComponentConstants_edges
+    | connectedComponentConstants_propertyName
+    ;
+
+pageRankConstants
+    : pageRankConstants_edges
+    | pageRankConstants_times
+    | pageRankConstants_propertyName
+    ;
+
+peerPressureConstants
+    : peerPressureConstants_edges
+    | peerPressureConstants_times
+    | peerPressureConstants_propertyName
+    ;
+
+shortestPathConstants
+    : shortestPathConstants_target
+    | shortestPathConstants_edges
+    | shortestPathConstants_distance
+    | shortestPathConstants_maxDistance
+    | shortestPathConstants_includeEdges
+    ;
+
+withOptionsValues
+    : withOptionsConstants_tokens
+    | withOptionsConstants_none
+    | withOptionsConstants_ids
+    | withOptionsConstants_labels
+    | withOptionsConstants_keys
+    | withOptionsConstants_values
+    | withOptionsConstants_all
+    | withOptionsConstants_list
+    | withOptionsConstants_map
+    ;
+
+ioOptionsKeys
+    : ioOptionsConstants_reader
+    | ioOptionsConstants_writer
+    ;
+
+ioOptionsValues
+    : ioOptionsConstants_gryo
+    | ioOptionsConstants_graphson
+    | ioOptionsConstants_graphml
+    ;
+
+connectedComponentConstants_component
+    : connectedComponentStringConstant DOT K_COMPONENT
+    ;
+
+connectedComponentConstants_edges
+    : connectedComponentStringConstant DOT K_EDGES
+    ;
+
+connectedComponentConstants_propertyName
+    : connectedComponentStringConstant DOT K_PROPERTYNAME
+    ;
+
+pageRankConstants_edges
+    : pageRankStringConstant DOT K_EDGES
+    ;
+
+pageRankConstants_times
+    : pageRankStringConstant DOT K_TIMES
+    ;
+
+pageRankConstants_propertyName
+    : pageRankStringConstant DOT K_PROPERTYNAME
+    ;
+
+peerPressureConstants_edges
+    : peerPressureStringConstant DOT K_EDGES
+    ;
+
+peerPressureConstants_times
+    : peerPressureStringConstant DOT K_TIMES
+    ;
+
+peerPressureConstants_propertyName
+    : peerPressureStringConstant DOT K_PROPERTYNAME
+    ;
+
+shortestPathConstants_target
+    : shortestPathStringConstant DOT K_TARGET
+    ;
+
+shortestPathConstants_edges
+    : shortestPathStringConstant DOT K_EDGES
+    ;
+
+shortestPathConstants_distance
+    : shortestPathStringConstant DOT K_DISTANCE
+    ;
+
+shortestPathConstants_maxDistance
+    : shortestPathStringConstant DOT K_MAXDISTANCE
+    ;
+
+shortestPathConstants_includeEdges
+    : shortestPathStringConstant DOT K_INCLUDEEDGES
+    ;
+
+withOptionsConstants_tokens
+    : withOptionsStringConstant DOT K_TOKENS
+    ;
+
+withOptionsConstants_none
+    : withOptionsStringConstant DOT K_NONE
+    ;
+
+withOptionsConstants_ids
+    : withOptionsStringConstant DOT K_IDS
+    ;
+
+withOptionsConstants_labels
+    : withOptionsStringConstant DOT K_LABELS
+    ;
+
+withOptionsConstants_keys
+    : withOptionsStringConstant DOT K_KEYS
+    ;
+
+withOptionsConstants_values
+    : withOptionsStringConstant DOT K_VALUES
+    ;
+
+withOptionsConstants_all
+    : withOptionsStringConstant DOT K_ALL
+    ;
+
+withOptionsConstants_indexer
+    : withOptionsStringConstant DOT K_INDEXER
+    ;
+
+withOptionsConstants_list
+    : withOptionsStringConstant DOT K_LIST
+    ;
+
+withOptionsConstants_map
+    : withOptionsStringConstant DOT K_MAP
+    ;
+
+ioOptionsConstants_reader
+    : ioOptionsStringConstant DOT K_READER
+    ;
+
+ioOptionsConstants_writer
+    : ioOptionsStringConstant DOT K_WRITER
+    ;
+
+ioOptionsConstants_gryo
+    : ioOptionsStringConstant DOT K_GRYO
+    ;
+
+ioOptionsConstants_graphson
+    : ioOptionsStringConstant DOT K_GRAPHSON
+    ;
+
+ioOptionsConstants_graphml
+    : ioOptionsStringConstant DOT K_GRAPHML
+    ;
+
+connectedComponentStringConstant
+    : K_CONNECTEDCOMPONENTU
+    ;
+
+pageRankStringConstant
+    : K_PAGERANKU
+    ;
+
+peerPressureStringConstant
+    : K_PEERPRESSUREU
+    ;
+
+shortestPathStringConstant
+    : K_SHORTESTPATHU
+    ;
+
+withOptionsStringConstant
+    : K_WITHOPTOPTIONS
+    ;
+
+ioOptionsStringConstant
+    : K_IOU
+    ;
+
+booleanArgument
+    : booleanLiteral
+    | variable
+    ;
+
+integerArgument
+    : integerLiteral
+    | variable
+    ;
+
+floatArgument
+    : floatLiteral
+    | variable
+    ;
+
+stringArgument
+    : stringLiteral
+    | variable
+    ;
+
+stringNullableArgument
+    : stringNullableLiteral
+    | variable
+    ;
+
+stringNullableArgumentVarargs
+    : (stringNullableArgument (COMMA stringNullableArgument)*)?
+    ;
+
+dateArgument
+    : dateLiteral
+    | variable
+    ;
+
+genericArgument
+    : genericLiteral
+    | variable
+    ;
+
+genericArgumentVarargs
+    : (genericArgument (COMMA genericArgument)*)?
+    ;
+
+genericMapArgument
+    : genericMapLiteral
+    | variable
+    ;
+
+genericMapNullableArgument
+    : genericMapNullableLiteral
+    | variable
+    ;
+
+nullableGenericLiteralMap
+    : genericMapLiteral
+    | nullLiteral
+    ;
+
+structureVertexArgument
+    : structureVertexLiteral
+    | variable
+    ;
+
+traversalStrategyVarargs
+    : traversalStrategyExpr?
+    ;
+
+traversalStrategyExpr
+    : traversalStrategy (COMMA traversalStrategy)*
+    ;
+
+classTypeList
+    : classTypeExpr?
+    ;
+
+classTypeExpr
+    : classType (COMMA classType)*
+    ;
+
+nestedTraversalList
+    : nestedTraversalExpr?
+    ;
+
+nestedTraversalExpr
+    : nestedTraversal (COMMA nestedTraversal)*
+    ;
+
+genericCollectionLiteral
+    : LBRACK (genericLiteral (COMMA genericLiteral)*)? RBRACK
+    ;
+
+genericLiteralVarargs
+    : genericLiteralExpr?
+    ;
+
+genericLiteralExpr
+    : genericLiteral (COMMA genericLiteral)*
+    ;
+
+genericMapNullableLiteral
+    : genericMapLiteral
+    | nullLiteral
+    ;
+
+genericRangeLiteral
+    : integerLiteral DOT DOT integerLiteral
+    | stringLiteral DOT DOT stringLiteral
+    ;
+
+genericSetLiteral
+    : LBRACE (genericLiteral (COMMA genericLiteral)*)? RBRACE
+    ;
+
+stringNullableLiteralVarargs
+    : (stringNullableLiteral (COMMA stringNullableLiteral)*)?
+    ;
+
+genericLiteral
+    : numericLiteral
+    | booleanLiteral
+    | stringLiteral
+    | dateLiteral
+    | nullLiteral
+    // Allow the generic literal to match specific gremlin tokens also
+    | traversalT
+    | traversalCardinality
+    | traversalDirection
+    | traversalMerge
+    | traversalPick
+    | traversalDT
+    | structureVertexLiteral
+    | genericSetLiteral
+    | genericCollectionLiteral
+    | genericRangeLiteral
+    | nestedTraversal
+    | terminatedTraversal
+    | uuidLiteral
+    | genericMapLiteral
+    ;
+
+genericMapLiteral
+    : LBRACK COLON RBRACK
+    | LBRACK mapEntry (COMMA mapEntry)* RBRACK
+    ;
+
+mapKey
+    : (LPAREN traversalT RPAREN | traversalTLong)
+    | (LPAREN traversalDirection RPAREN | traversalDirectionLong)
+    | (LPAREN genericSetLiteral RPAREN | genericSetLiteral)
+    | (LPAREN genericCollectionLiteral RPAREN | genericCollectionLiteral)
+    | (LPAREN genericMapLiteral RPAREN | genericMapLiteral)
+    | (LPAREN stringLiteral RPAREN | stringLiteral)
+    | (LPAREN numericLiteral RPAREN | numericLiteral)
+    | (keyword | nakedKey)
+    ;
+
+mapEntry
+    : mapKey COLON genericLiteral
+    ;
+
+stringLiteral
+    : EmptyStringLiteral
+    | NonEmptyStringLiteral
+    ;
+
+stringNullableLiteral
+    : EmptyStringLiteral
+    | NonEmptyStringLiteral
+    | K_NULL
+    ;
+
+integerLiteral
+    : IntegerLiteral
+    ;
+
+floatLiteral
+    : FloatingPointLiteral
+    | infLiteral
+    | nanLiteral
+    ;
+
+numericLiteral
+    : integerLiteral
+    | floatLiteral
+    ;
+
+booleanLiteral
+    : K_TRUE
+    | K_FALSE
+    ;
+
+dateLiteral
+    : K_DATETIME LPAREN stringArgument RPAREN
+    | K_DATETIME LPAREN RPAREN
+    | K_DATETIMEU LPAREN stringArgument RPAREN
+    | K_DATETIMEU LPAREN RPAREN
+    ;
+
+nullLiteral
+    : K_NULL
+    ;
+
+nanLiteral
+    : K_NAN
+    ;
+
+infLiteral
+    : K_INFINITY
+    | SignedInfLiteral
+    ;
+
+uuidLiteral
+    : K_UUID LPAREN RPAREN
+    | K_UUID LPAREN stringLiteral RPAREN
+    ;
+
+
+nakedKey
+    : Identifier
+    ;
+
+classType
+    : Identifier
+    ;
+
+variable
+    : Identifier
+    ;
+
+// every Gremlin keyword must be listed here or else these words will not be able to be used as
+// Map/Configuration keys as naked identifiers like [all: 123]. without having that definition
+// here that sort of Map definition will get a syntax error.
+keyword
+    : TRAVERSAL_ROOT // g - __ is not an allowable key in this context
+    | K_ADDALL
+    | K_ADDE
+    | K_ADDV
+    | K_AGGREGATE
+    | K_ALL
+    | K_AND
+    | K_ANY
+    | K_AS
+    | K_ASC
+    | K_ASDATE
+    | K_ASSTRING
+    | K_ASSIGN
+    | K_BARRIER
+    | K_BARRIERU
+    | K_BEGIN
+    | K_BETWEEN
+    | K_BOTH
+    | K_BOTHU
+    | K_BOTHE
+    | K_BOTHV
+    | K_BRANCH
+    | K_BY
+    | K_CALL
+    | K_CAP
+    | K_CARDINALITY
+    | K_CHOOSE
+    | K_COALESCE
+    | K_COIN
+    | K_COLUMN
+    | K_COMBINE
+    | K_CONCAT
+    | K_COMMIT
+    | K_COMPONENT
+    | K_CONJOIN
+    | K_CONNECTEDCOMPONENT
+    | K_CONNECTEDCOMPONENTU
+    | K_CONSTANT
+    | K_CONTAINING
+    | K_COUNT
+    | K_CYCLICPATH
+    | K_DAY
+    | K_DATEADD
+    | K_DATEDIFF
+    | K_DATETIME
+    | K_DATETIMEU
+    | K_DECR
+    | K_DEDUP
+    | K_DESC
+    | K_DIFFERENCE
+    | K_DIRECTION
+    | K_DISJUNCT
+    | K_DISTANCE
+    | K_DIV
+    | K_DROP
+    | K_DT
+    | K_E
+    | K_EDGES
+    | K_ELEMENTMAP
+    | K_ELEMENT
+    | K_EMIT
+    | K_ENDINGWITH
+    | K_EQ
+    | K_EXPLAIN
+    | K_FAIL
+    | K_FALSE
+    | K_FILTER
+    | K_FIRST
+    | K_FLATMAP
+    | K_FOLD
+    | K_FORMAT
+    | K_FROM
+    | K_GLOBAL
+    | K_GT
+    | K_GTE
+    | K_GRAPHML
+    | K_GRAPHSON
+    | K_GROUP
+    | K_GROUPCOUNT
+    | K_GRYO
+    | K_HAS
+    | K_HASID
+    | K_HASKEY
+    | K_HASLABEL
+    | K_HASNEXT
+    | K_HASNOT
+    | K_HASVALUE
+    | K_HOUR
+    | K_ID
+    | K_IDENTITY
+    | K_IDS
+    | K_IN
+    | K_INU
+    | K_INCLUDEEDGES
+    | K_INCR
+    | K_INDEXER
+    | K_INE
+    | K_INDEX
+    | K_INFINITY
+    | K_INJECT
+    | K_INSIDE
+    | K_INTERSECT
+    | K_INV
+    | K_IO
+    | K_IOU
+    | K_IS
+    | K_ITERATE
+    | K_KEY
+    | K_KEYS
+    | K_LABELS
+    | K_LABEL
+    | K_LAST
+    | K_LENGTH
+    | K_LIMIT
+    | K_LIST
+    | K_LOCAL
+    | K_LOOPS
+    | K_LT
+    | K_LTE
+    | K_LTRIM
+    | K_MAP
+    | K_MATCH
+    | K_MATH
+    | K_MAX
+    | K_MAXDISTANCE
+    | K_MEAN
+    | K_MERGE
+    | K_MERGEU
+    | K_MERGEE
+    | K_MERGEV
+    | K_MIN
+    | K_MINUTE
+    | K_MINUS
+    | K_MIXED
+    | K_MULT
+    | K_NAN
+    | K_NEGATE
+    | K_NEW
+    | K_NONE
+    | K_NOTCONTAINING
+    | K_NOTENDINGWITH
+    | K_NOTREGEX
+    | K_NOTSTARTINGWITH
+    | K_NOT
+    | K_NEQ
+    | K_NEXT
+    | K_NULL
+    | K_NORMSACK
+    | K_ONCREATE
+    | K_ONMATCH
+    | K_OPERATOR
+    | K_OPTION
+    | K_OPTIONAL
+    | K_ORDER
+    | K_ORDERU
+    | K_OR
+    | K_OTHERV
+    | K_OUT
+    | K_OUTU
+    | K_OUTE
+    | K_OUTSIDE
+    | K_OUTV
+    | K_P
+    | K_PAGERANK
+    | K_PAGERANKU
+    | K_PATH
+    | K_PEERPRESSURE
+    | K_PEERPRESSUREU
+    | K_PICK
+    | K_POP
+    | K_PROFILE
+    | K_PROJECT
+    | K_PROPERTIES
+    | K_PROPERTYMAP
+    | K_PROPERTYNAME
+    | K_PROPERTY
+    | K_PRODUCT
+    | K_RANGE
+    | K_READ
+    | K_READER
+    | K_REFERENCEVERTEX
+    | K_REGEX
+    | K_REPLACE
+    | K_REPEAT
+    | K_REVERSE
+    | K_ROLLBACK
+    | K_RTRIM
+    | K_SACK
+    | K_SAMPLE
+    | K_SCOPE
+    | K_SECOND
+    | K_SELECT
+    | K_SET
+    | K_SHORTESTPATH
+    | K_SHORTESTPATHU
+    | K_SHUFFLE
+    | K_SIDEEFFECT
+    | K_SIMPLEPATH
+    | K_SINGLE
+    | K_SKIP
+    | K_SPLIT
+    | K_STARTINGWITH
+    | K_STORE
+    | K_SUBGRAPH
+    | K_SUBSTRING
+    | K_SUM
+    | K_SUMLONG
+    | K_T
+    | K_TAIL
+    | K_TARGET
+    | K_TEXTP
+    | K_TIMELIMIT
+    | K_TIMES
+    | K_TO
+    | K_TOBULKSET
+    | K_TOKENS
+    | K_TOLIST
+    | K_TOLOWER
+    | K_TOSET
+    | K_TOSTRING
+    | K_TOUPPER
+    | K_TOE
+    | K_TOV
+    | K_TREE
+    | K_TRIM
+    | K_TRUE
+    | K_TRYNEXT
+    | K_TX
+    | K_UNFOLD
+    | K_UNION
+    | K_UNTIL
+    | K_UUID
+    | K_V
+    | K_VALUEMAP
+    | K_VALUES
+    | K_VALUE
+    | K_VERTEX
+    | K_WHERE
+    | K_WITH
+    | K_WITHBULK
+    | K_WITHIN
+    | K_WITHOPTOPTIONS
+    | K_WITHOUT
+    | K_WITHOUTSTRATEGIES
+    | K_WITHPATH
+    | K_WITHSACK
+    | K_WITHSIDEEFFECT
+    | K_WITHSTRATEGIES
+    | K_WRITE
+    | K_WRITER
+    ;
+
+/*********************************************
+    LEXER RULES
+**********************************************/
+
+// Lexer rules
+// These rules are extracted from Java ANTLRv4 Grammar.
+// Source: https://github.com/antlr/grammars-v4/blob/master/java8/Java8.g4
+
+// ยง3.9 Keywords
+
+K_ADDALL: 'addAll';
+K_ADDE: 'addE';
+K_ADDV: 'addV';
+K_AGGREGATE: 'aggregate';
+K_ALL: 'all';
+K_AND: 'and';
+K_ANY: 'any';
+K_AS: 'as';
+K_ASC: 'asc';
+K_ASDATE: 'asDate';
+K_ASSTRING: 'asString';
+K_ASSIGN: 'assign';
+K_BARRIER: 'barrier';
+K_BARRIERU: 'Barrier';
+K_BEGIN: 'begin';
+K_BETWEEN: 'between';
+K_BOTH: 'both';
+K_BOTHU: 'BOTH';
+K_BOTHE: 'bothE';
+K_BOTHV: 'bothV';
+K_BRANCH: 'branch';
+K_BY: 'by';
+K_CALL: 'call';
+K_CAP: 'cap';
+K_CARDINALITY: 'Cardinality';
+K_CHOOSE: 'choose';
+K_COALESCE: 'coalesce';
+K_COIN: 'coin';
+K_COLUMN: 'Column';
+K_COMBINE: 'combine';
+K_COMMIT: 'commit';
+K_COMPONENT: 'component';
+K_CONCAT: 'concat';
+K_CONJOIN: 'conjoin';
+K_CONNECTEDCOMPONENT: 'connectedComponent';
+K_CONNECTEDCOMPONENTU: 'ConnectedComponent';
+K_CONSTANT: 'constant';
+K_CONTAINING: 'containing';
+K_COUNT: 'count';
+K_CYCLICPATH: 'cyclicPath';
+K_DAY: 'day';
+K_DATEADD: 'dateAdd';
+K_DATEDIFF: 'dateDiff';
+K_DATETIME: 'datetime';
+K_DATETIMEU: 'DateTime';
+K_DECR: 'decr';
+K_DEDUP: 'dedup';
+K_DESC: 'desc';
+K_DIFFERENCE: 'difference';
+K_DIRECTION: 'Direction';
+K_DISJUNCT: 'disjunct';
+K_DISTANCE: 'distance';
+K_DIV: 'div';
+K_DROP: 'drop';
+K_DT: 'DT';
+K_E: 'E';
+K_EDGES: 'edges';
+K_ELEMENTMAP: 'elementMap';
+K_ELEMENT: 'element';
+K_EMIT: 'emit';
+K_ENDINGWITH: 'endingWith';
+K_EQ: 'eq';
+K_EXPLAIN: 'explain';
+K_FAIL: 'fail';
+K_FALSE: 'false';
+K_FILTER: 'filter';
+K_FIRST: 'first';
+K_FLATMAP: 'flatMap';
+K_FOLD: 'fold';
+K_FORMAT: 'format';
+K_FROM: 'from';
+K_GLOBAL: 'global';
+K_GT: 'gt';
+K_GTE: 'gte';
+K_GRAPHML: 'graphml';
+K_GRAPHSON: 'graphson';
+K_GROUPCOUNT: 'groupCount';
+K_GROUP: 'group';
+K_GRYO: 'gryo';
+K_HAS: 'has';
+K_HASID: 'hasId';
+K_HASKEY: 'hasKey';
+K_HASLABEL: 'hasLabel';
+K_HASNEXT: 'hasNext';
+K_HASNOT: 'hasNot';
+K_HASVALUE: 'hasValue';
+K_HOUR: 'hour';
+K_ID: 'id';
+K_IDENTITY: 'identity';
+K_IDS: 'ids';
+K_IN: 'in';
+K_INU: 'IN';
+K_INE: 'inE';
+K_INCLUDEEDGES: 'includeEdges';
+K_INCR: 'incr';
+K_INDEXER: 'indexer';
+K_INDEX: 'index';
+K_INFINITY: 'Infinity';
+K_INJECT: 'inject';
+K_INSIDE: 'inside';
+K_INTERSECT: 'intersect';
+K_INV: 'inV';
+K_IOU: 'IO';
+K_IO: 'io';
+K_IS: 'is';
+K_ITERATE: 'iterate';
+K_KEY: 'key';
+K_KEYS: 'keys';
+K_LABELS: 'labels';
+K_LABEL: 'label';
+K_LAST: 'last';
+K_LENGTH: 'length';
+K_LIMIT: 'limit';
+K_LIST: 'list';
+K_LOCAL: 'local';
+K_LOOPS: 'loops';
+K_LT: 'lt';
+K_LTE: 'lte';
+K_LTRIM: 'lTrim';
+K_MAP: 'map';
+K_MATCH: 'match';
+K_MATH: 'math';
+K_MAX: 'max';
+K_MAXDISTANCE: 'maxDistance';
+K_MEAN: 'mean';
+K_MERGEU: 'Merge';
+K_MERGE: 'merge';
+K_MERGEE: 'mergeE';
+K_MERGEV: 'mergeV';
+K_MIN: 'min';
+K_MINUTE: 'minute';
+K_MINUS: 'minus';
+K_MIXED: 'mixed';
+K_MULT: 'mult';
+K_NAN: 'NaN';
+K_NEGATE: 'negate';
+K_NEXT: 'next';
+K_NONE: 'none';
+K_NOTREGEX: 'notRegex';
+K_NOTCONTAINING: 'notContaining';
+K_NOTENDINGWITH: 'notEndingWith';
+K_NOTSTARTINGWITH: 'notStartingWith';
+K_NOT: 'not';
+K_NEQ: 'neq';
+K_NEW: 'new';
+K_NORMSACK: 'normSack';
+K_NULL: 'null';
+K_ONCREATE: 'onCreate';
+K_ONMATCH: 'onMatch';
+K_OPERATOR: 'Operator';
+K_OPTION: 'option';
+K_OPTIONAL: 'optional';
+K_ORDERU: 'Order';
+K_ORDER: 'order';
+K_OR: 'or';
+K_OTHERV: 'otherV';
+K_OUTU: 'OUT';
+K_OUT: 'out';
+K_OUTE: 'outE';
+K_OUTSIDE: 'outside';
+K_OUTV: 'outV';
+K_P: 'P';
+K_PAGERANKU: 'PageRank';
+K_PAGERANK: 'pageRank';
+K_PATH: 'path';
+K_PEERPRESSUREU: 'PeerPressure';
+K_PEERPRESSURE: 'peerPressure';
+K_PICK: 'Pick';
+K_POP: 'Pop';
+K_PROFILE: 'profile';
+K_PROJECT: 'project';
+K_PROPERTIES: 'properties';
+K_PROPERTYMAP: 'propertyMap';
+K_PROPERTYNAME: 'propertyName';
+K_PROPERTY: 'property';
+K_PRODUCT: 'product';
+K_RANGE: 'range';
+K_READ: 'read';
+K_READER: 'reader';
+K_REFERENCEVERTEX: 'ReferenceVertex';
+K_REGEX: 'regex';
+K_REPLACE: 'replace';
+K_REPEAT: 'repeat';
+K_REVERSE: 'reverse';
+K_ROLLBACK: 'rollback';
+K_RTRIM: 'rTrim';
+K_SACK: 'sack';
+K_SAMPLE: 'sample';
+K_SCOPE: 'Scope';
+K_SECOND: 'second';
+K_SELECT: 'select';
+K_SET: 'set';
+K_SHORTESTPATHU: 'ShortestPath';
+K_SHORTESTPATH: 'shortestPath';
+K_SHUFFLE: 'shuffle';
+K_SIDEEFFECT: 'sideEffect';
+K_SIMPLEPATH: 'simplePath';
+K_SINGLE: 'single';
+K_SKIP: 'skip';
+K_SPLIT: 'split';
+K_STARTINGWITH: 'startingWith';
+K_STORE: 'store';
+K_SUBGRAPH: 'subgraph';
+K_SUBSTRING: 'substring';
+K_SUM: 'sum';
+K_SUMLONG: 'sumLong';
+K_T: 'T';
+K_TAIL: 'tail';
+K_TARGET: 'target';
+K_TEXTP: 'TextP';
+K_TIMELIMIT: 'timeLimit';
+K_TIMES: 'times';
+K_TO: 'to';
+K_TOBULKSET: 'toBulkSet';
+K_TOKENS: 'tokens';
+K_TOLIST: 'toList';
+K_TOLOWER: 'toLower';
+K_TOSET: 'toSet';
+K_TOSTRING: 'toString';
+K_TOUPPER: 'toUpper';
+K_TOE: 'toE';
+K_TOV: 'toV';
+K_TREE: 'tree';
+K_TRIM: 'trim';
+K_TRUE: 'true';
+K_TRYNEXT: 'tryNext';
+K_TX: 'tx';
+K_UNFOLD: 'unfold';
+K_UNION: 'union';
+K_UNTIL: 'until';
+K_UUID: 'UUID';
+K_V: 'V';
+K_VALUEMAP: 'valueMap';
+K_VALUES: 'values';
+K_VALUE: 'value';
+K_VERTEX: 'Vertex';
+K_WHERE: 'where';
+K_WITH: 'with';
+K_WITHBULK: 'withBulk';
+K_WITHIN: 'within';
+K_WITHOPTOPTIONS: 'WithOptions';
+K_WITHOUT: 'without';
+K_WITHOUTSTRATEGIES: 'withoutStrategies';
+K_WITHPATH: 'withPath';
+K_WITHSACK: 'withSack';
+K_WITHSIDEEFFECT: 'withSideEffect';
+K_WITHSTRATEGIES: 'withStrategies';
+K_WRITE: 'write';
+K_WRITER: 'writer';
+
+// Integer Literals
+
+IntegerLiteral
+    : Sign? DecimalIntegerLiteral
+    | Sign? HexIntegerLiteral
+    | Sign? OctalIntegerLiteral
+    ;
+
+fragment
+DecimalIntegerLiteral
+    : DecimalNumeral IntegerTypeSuffix?
+    ;
+
+fragment
+HexIntegerLiteral
+    : HexNumeral IntegerTypeSuffix?
+    ;
+
+fragment
+OctalIntegerLiteral
+    : OctalNumeral IntegerTypeSuffix?
+    ;
+
+fragment
+IntegerTypeSuffix
+    : [bBsSnNiIlL]
+    ;
+
+fragment
+DecimalNumeral
+    : '0'
+    | NonZeroDigit (Digits? | Underscores Digits)
+    ;
+
+fragment
+Digits
+    : Digit (DigitsAndUnderscores? Digit)?
+    ;
+
+fragment
+Digit
+    : '0'
+    | NonZeroDigit
+    ;
+
+fragment
+NonZeroDigit
+    : [1-9]
+    ;
+
+fragment
+DigitsAndUnderscores
+    : DigitOrUnderscore+
+    ;
+
+fragment
+DigitOrUnderscore
+    : Digit
+    | '_'
+    ;
+
+fragment
+Underscores
+    : '_'+
+    ;
+
+fragment
+HexNumeral
+    : '0' [xX] HexDigits
+    ;
+
+fragment
+HexDigits
+    : HexDigit (HexDigitsAndUnderscores? HexDigit)?
+    ;
+
+fragment
+HexDigit
+    : [0-9a-fA-F]
+    ;
+
+fragment
+HexDigitsAndUnderscores
+    : HexDigitOrUnderscore+
+    ;
+
+fragment
+HexDigitOrUnderscore
+    : HexDigit
+    | '_'
+    ;
+
+fragment
+OctalNumeral
+    : '0' Underscores? OctalDigits
+    ;
+
+fragment
+OctalDigits
+    : OctalDigit (OctalDigitsAndUnderscores? OctalDigit)?
+    ;
+
+fragment
+OctalDigit
+    : [0-7]
+    ;
+
+fragment
+OctalDigitsAndUnderscores
+    : OctalDigitOrUnderscore+
+    ;
+
+fragment
+OctalDigitOrUnderscore
+    : OctalDigit
+    | '_'
+    ;
+
+// Floating-Point Literals
+
+FloatingPointLiteral
+    : Sign? DecimalFloatingPointLiteral
+    ;
+
+fragment
+DecimalFloatingPointLiteral
+    : Digits ('.' Digits ExponentPart? | ExponentPart) FloatTypeSuffix?
+    | Digits FloatTypeSuffix
+    ;
+
+fragment
+ExponentPart
+    : ExponentIndicator SignedInteger
+    ;
+
+fragment
+ExponentIndicator
+    : [eE]
+    ;
+
+fragment
+SignedInteger
+    : Sign? Digits
+    ;
+
+fragment
+Sign
+    : [+-]
+    ;
+
+fragment
+FloatTypeSuffix
+    : [fFdDmM]
+    ;
+
+SignedInfLiteral
+    : Sign? K_INFINITY
+    ;
+
+// String Literals
+
+// String literal is customized since Java only allows double quoted strings where Groovy supports single quoted
+// literals also. A side effect of this is ANTLR will not be able to parse single character string literals with
+// single quoted so we instead remove char literal altogether and only have string literal in lexer tokens.
+NonEmptyStringLiteral
+    : '"' DoubleQuotedStringCharacters '"'
+    | '\'' SingleQuotedStringCharacters '\''
+    ;
+
+// We define NonEmptyStringLiteral and EmptyStringLiteral separately so that we can unambiguously handle empty queries
+EmptyStringLiteral
+    : '""'
+    | '\'\''
+    ;
+
+fragment
+DoubleQuotedStringCharacters
+    : DoubleQuotedStringCharacter+
+    ;
+
+fragment
+DoubleQuotedStringCharacter
+    : ~('"' | '\\')
+    | JoinLineEscape
+    | EscapeSequence
+    ;
+
+fragment
+SingleQuotedStringCharacters
+    : SingleQuotedStringCharacter+
+    ;
+
+fragment
+SingleQuotedStringCharacter
+    : ~('\'' | '\\')
+    | JoinLineEscape
+    | EscapeSequence
+    ;
+
+// Escape Sequences for Character and String Literals
+fragment JoinLineEscape
+    : '\\' '\r'? '\n'
+    ;
+
+fragment
+EscapeSequence
+    : '\\' [btnfr"'\\]
+    | OctalEscape
+    | UnicodeEscape // This is not in the spec but prevents having to preprocess the input
+    ;
+
+fragment
+OctalEscape
+    : '\\' OctalDigit
+    | '\\' OctalDigit OctalDigit
+    | '\\' ZeroToThree OctalDigit OctalDigit
+    ;
+
+fragment
+ZeroToThree
+    : [0-3]
+    ;
+
+// This is not in the spec but prevents having to preprocess the input
+fragment
+UnicodeEscape
+    :   '\\' 'u'+  HexDigit HexDigit HexDigit HexDigit
+    ;
+
+// Separators
+
+LPAREN : '(';
+RPAREN : ')';
+LBRACE : '{';
+RBRACE : '}';
+LBRACK : '[';
+RBRACK : ']';
+SEMI : ';';
+COMMA : ',';
+DOT : '.';
+COLON : ':';
+
+TRAVERSAL_ROOT:     'g';
+ANON_TRAVERSAL_ROOT:     '__';
+
+// Trim whitespace and comments if present
+
+WS  :  [ \t\r\n\u000C]+ -> skip
+    ;
+
+LINE_COMMENT
+    :   '//' ~[\r\n]* -> skip
+    ;
+
+Identifier
+    : IdentifierStart IdentifierPart*
+    ;
+
+// REFERENCE: https://github.com/antlr/grammars-v4/blob/master/java/java8/Java8Lexer.g4
+fragment
+IdentifierStart
+    : [\u0024]
+    | [\u0041-\u005A]
+    | [\u005F]
+    | [\u0061-\u007A]
+    | [\u00A2-\u00A5]
+    | [\u00AA]
+    | [\u00B5]
+    | [\u00BA]
+    | [\u00C0-\u00D6]
+    | [\u00D8-\u00F6]
+    | [\u00F8-\u02C1]
+    | [\u02C6-\u02D1]
+    | [\u02E0-\u02E4]
+    | [\u02EC]
+    | [\u02EE]
+    | [\u0370-\u0374]
+    | [\u0376-\u0377]
+    | [\u037A-\u037D]
+    | [\u037F]
+    | [\u0386]
+    | [\u0388-\u038A]
+    | [\u038C]
+    | [\u038E-\u03A1]
+    | [\u03A3-\u03F5]
+    | [\u03F7-\u0481]
+    | [\u048A-\u052F]
+    | [\u0531-\u0556]
+    | [\u0559]
+    | [\u0561-\u0587]
+    | [\u058F]
+    | [\u05D0-\u05EA]
+    | [\u05F0-\u05F2]
+    | [\u060B]
+    | [\u0620-\u064A]
+    | [\u066E-\u066F]
+    | [\u0671-\u06D3]
+    | [\u06D5]
+    | [\u06E5-\u06E6]
+    | [\u06EE-\u06EF]
+    | [\u06FA-\u06FC]
+    | [\u06FF]
+    | [\u0710]
+    | [\u0712-\u072F]
+    | [\u074D-\u07A5]
+    | [\u07B1]
+    | [\u07CA-\u07EA]
+    | [\u07F4-\u07F5]
+    | [\u07FA]
+    | [\u0800-\u0815]
+    | [\u081A]
+    | [\u0824]
+    | [\u0828]
+    | [\u0840-\u0858]
+    | [\u0860-\u086A]
+    | [\u08A0-\u08B4]
+    | [\u08B6-\u08BD]
+    | [\u0904-\u0939]
+    | [\u093D]
+    | [\u0950]
+    | [\u0958-\u0961]
+    | [\u0971-\u0980]
+    | [\u0985-\u098C]
+    | [\u098F-\u0990]
+    | [\u0993-\u09A8]
+    | [\u09AA-\u09B0]
+    | [\u09B2]
+    | [\u09B6-\u09B9]
+    | [\u09BD]
+    | [\u09CE]
+    | [\u09DC-\u09DD]
+    | [\u09DF-\u09E1]
+    | [\u09F0-\u09F3]
+    | [\u09FB-\u09FC]
+    | [\u0A05-\u0A0A]
+    | [\u0A0F-\u0A10]
+    | [\u0A13-\u0A28]
+    | [\u0A2A-\u0A30]
+    | [\u0A32-\u0A33]
+    | [\u0A35-\u0A36]
+    | [\u0A38-\u0A39]
+    | [\u0A59-\u0A5C]
+    | [\u0A5E]
+    | [\u0A72-\u0A74]
+    | [\u0A85-\u0A8D]
+    | [\u0A8F-\u0A91]
+    | [\u0A93-\u0AA8]
+    | [\u0AAA-\u0AB0]
+    | [\u0AB2-\u0AB3]
+    | [\u0AB5-\u0AB9]
+    | [\u0ABD]
+    | [\u0AD0]
+    | [\u0AE0-\u0AE1]
+    | [\u0AF1]
+    | [\u0AF9]
+    | [\u0B05-\u0B0C]
+    | [\u0B0F-\u0B10]
+    | [\u0B13-\u0B28]
+    | [\u0B2A-\u0B30]
+    | [\u0B32-\u0B33]
+    | [\u0B35-\u0B39]
+    | [\u0B3D]
+    | [\u0B5C-\u0B5D]
+    | [\u0B5F-\u0B61]
+    | [\u0B71]
+    | [\u0B83]
+    | [\u0B85-\u0B8A]
+    | [\u0B8E-\u0B90]
+    | [\u0B92-\u0B95]
+    | [\u0B99-\u0B9A]
+    | [\u0B9C]
+    | [\u0B9E-\u0B9F]
+    | [\u0BA3-\u0BA4]
+    | [\u0BA8-\u0BAA]
+    | [\u0BAE-\u0BB9]
+    | [\u0BD0]
+    | [\u0BF9]
+    | [\u0C05-\u0C0C]
+    | [\u0C0E-\u0C10]
+    | [\u0C12-\u0C28]
+    | [\u0C2A-\u0C39]
+    | [\u0C3D]
+    | [\u0C58-\u0C5A]
+    | [\u0C60-\u0C61]
+    | [\u0C80]
+    | [\u0C85-\u0C8C]
+    | [\u0C8E-\u0C90]
+    | [\u0C92-\u0CA8]
+    | [\u0CAA-\u0CB3]
+    | [\u0CB5-\u0CB9]
+    | [\u0CBD]
+    | [\u0CDE]
+    | [\u0CE0-\u0CE1]
+    | [\u0CF1-\u0CF2]
+    | [\u0D05-\u0D0C]
+    | [\u0D0E-\u0D10]
+    | [\u0D12-\u0D3A]
+    | [\u0D3D]
+    | [\u0D4E]
+    | [\u0D54-\u0D56]
+    | [\u0D5F-\u0D61]
+    | [\u0D7A-\u0D7F]
+    | [\u0D85-\u0D96]
+    | [\u0D9A-\u0DB1]
+    | [\u0DB3-\u0DBB]
+    | [\u0DBD]
+    | [\u0DC0-\u0DC6]
+    | [\u0E01-\u0E30]
+    | [\u0E32-\u0E33]
+    | [\u0E3F-\u0E46]
+    | [\u0E81-\u0E82]
+    | [\u0E84]
+    | [\u0E87-\u0E88]
+    | [\u0E8A]
+    | [\u0E8D]
+    | [\u0E94-\u0E97]
+    | [\u0E99-\u0E9F]
+    | [\u0EA1-\u0EA3]
+    | [\u0EA5]
+    | [\u0EA7]
+    | [\u0EAA-\u0EAB]
+    | [\u0EAD-\u0EB0]
+    | [\u0EB2-\u0EB3]
+    | [\u0EBD]
+    | [\u0EC0-\u0EC4]
+    | [\u0EC6]
+    | [\u0EDC-\u0EDF]
+    | [\u0F00]
+    | [\u0F40-\u0F47]
+    | [\u0F49-\u0F6C]
+    | [\u0F88-\u0F8C]
+    | [\u1000-\u102A]
+    | [\u103F]
+    | [\u1050-\u1055]
+    | [\u105A-\u105D]
+    | [\u1061]
+    | [\u1065-\u1066]
+    | [\u106E-\u1070]
+    | [\u1075-\u1081]
+    | [\u108E]
+    | [\u10A0-\u10C5]
+    | [\u10C7]
+    | [\u10CD]
+    | [\u10D0-\u10FA]
+    | [\u10FC-\u1248]
+    | [\u124A-\u124D]
+    | [\u1250-\u1256]
+    | [\u1258]
+    | [\u125A-\u125D]
+    | [\u1260-\u1288]
+    | [\u128A-\u128D]
+    | [\u1290-\u12B0]
+    | [\u12B2-\u12B5]
+    | [\u12B8-\u12BE]
+    | [\u12C0]
+    | [\u12C2-\u12C5]
+    | [\u12C8-\u12D6]
+    | [\u12D8-\u1310]
+    | [\u1312-\u1315]
+    | [\u1318-\u135A]
+    | [\u1380-\u138F]
+    | [\u13A0-\u13F5]
+    | [\u13F8-\u13FD]
+    | [\u1401-\u166C]
+    | [\u166F-\u167F]
+    | [\u1681-\u169A]
+    | [\u16A0-\u16EA]
+    | [\u16EE-\u16F8]
+    | [\u1700-\u170C]
+    | [\u170E-\u1711]
+    | [\u1720-\u1731]
+    | [\u1740-\u1751]
+    | [\u1760-\u176C]
+    | [\u176E-\u1770]
+    | [\u1780-\u17B3]
+    | [\u17D7]
+    | [\u17DB-\u17DC]
+    | [\u1820-\u1877]
+    | [\u1880-\u1884]
+    | [\u1887-\u18A8]
+    | [\u18AA]
+    | [\u18B0-\u18F5]
+    | [\u1900-\u191E]
+    | [\u1950-\u196D]
+    | [\u1970-\u1974]
+    | [\u1980-\u19AB]
+    | [\u19B0-\u19C9]
+    | [\u1A00-\u1A16]
+    | [\u1A20-\u1A54]
+    | [\u1AA7]
+    | [\u1B05-\u1B33]
+    | [\u1B45-\u1B4B]
+    | [\u1B83-\u1BA0]
+    | [\u1BAE-\u1BAF]
+    | [\u1BBA-\u1BE5]
+    | [\u1C00-\u1C23]
+    | [\u1C4D-\u1C4F]
+    | [\u1C5A-\u1C7D]
+    | [\u1C80-\u1C88]
+    | [\u1CE9-\u1CEC]
+    | [\u1CEE-\u1CF1]
+    | [\u1CF5-\u1CF6]
+    | [\u1D00-\u1DBF]
+    | [\u1E00-\u1F15]
+    | [\u1F18-\u1F1D]
+    | [\u1F20-\u1F45]
+    | [\u1F48-\u1F4D]
+    | [\u1F50-\u1F57]
+    | [\u1F59]
+    | [\u1F5B]
+    | [\u1F5D]
+    | [\u1F5F-\u1F7D]
+    | [\u1F80-\u1FB4]
+    | [\u1FB6-\u1FBC]
+    | [\u1FBE]
+    | [\u1FC2-\u1FC4]
+    | [\u1FC6-\u1FCC]
+    | [\u1FD0-\u1FD3]
+    | [\u1FD6-\u1FDB]
+    | [\u1FE0-\u1FEC]
+    | [\u1FF2-\u1FF4]
+    | [\u1FF6-\u1FFC]
+    | [\u203F-\u2040]
+    | [\u2054]
+    | [\u2071]
+    | [\u207F]
+    | [\u2090-\u209C]
+    | [\u20A0-\u20BF]
+    | [\u2102]
+    | [\u2107]
+    | [\u210A-\u2113]
+    | [\u2115]
+    | [\u2119-\u211D]
+    | [\u2124]
+    | [\u2126]
+    | [\u2128]
+    | [\u212A-\u212D]
+    | [\u212F-\u2139]
+    | [\u213C-\u213F]
+    | [\u2145-\u2149]
+    | [\u214E]
+    | [\u2160-\u2188]
+    | [\u2C00-\u2C2E]
+    | [\u2C30-\u2C5E]
+    | [\u2C60-\u2CE4]
+    | [\u2CEB-\u2CEE]
+    | [\u2CF2-\u2CF3]
+    | [\u2D00-\u2D25]
+    | [\u2D27]
+    | [\u2D2D]
+    | [\u2D30-\u2D67]
+    | [\u2D6F]
+    | [\u2D80-\u2D96]
+    | [\u2DA0-\u2DA6]
+    | [\u2DA8-\u2DAE]
+    | [\u2DB0-\u2DB6]
+    | [\u2DB8-\u2DBE]
+    | [\u2DC0-\u2DC6]
+    | [\u2DC8-\u2DCE]
+    | [\u2DD0-\u2DD6]
+    | [\u2DD8-\u2DDE]
+    | [\u2E2F]
+    | [\u3005-\u3007]
+    | [\u3021-\u3029]
+    | [\u3031-\u3035]
+    | [\u3038-\u303C]
+    | [\u3041-\u3096]
+    | [\u309D-\u309F]
+    | [\u30A1-\u30FA]
+    | [\u30FC-\u30FF]
+    | [\u3105-\u312E]
+    | [\u3131-\u318E]
+    | [\u31A0-\u31BA]
+    | [\u31F0-\u31FF]
+    | [\u3400-\u4DB5]
+    | [\u4E00-\u9FEA]
+    | [\uA000-\uA48C]
+    | [\uA4D0-\uA4FD]
+    | [\uA500-\uA60C]
+    | [\uA610-\uA61F]
+    | [\uA62A-\uA62B]
+    | [\uA640-\uA66E]
+    | [\uA67F-\uA69D]
+    | [\uA6A0-\uA6EF]
+    | [\uA717-\uA71F]
+    | [\uA722-\uA788]
+    | [\uA78B-\uA7AE]
+    | [\uA7B0-\uA7B7]
+    | [\uA7F7-\uA801]
+    | [\uA803-\uA805]
+    | [\uA807-\uA80A]
+    | [\uA80C-\uA822]
+    | [\uA838]
+    | [\uA840-\uA873]
+    | [\uA882-\uA8B3]
+    | [\uA8F2-\uA8F7]
+    | [\uA8FB]
+    | [\uA8FD]
+    | [\uA90A-\uA925]
+    | [\uA930-\uA946]
+    | [\uA960-\uA97C]
+    | [\uA984-\uA9B2]
+    | [\uA9CF]
+    | [\uA9E0-\uA9E4]
+    | [\uA9E6-\uA9EF]
+    | [\uA9FA-\uA9FE]
+    | [\uAA00-\uAA28]
+    | [\uAA40-\uAA42]
+    | [\uAA44-\uAA4B]
+    | [\uAA60-\uAA76]
+    | [\uAA7A]
+    | [\uAA7E-\uAAAF]
+    | [\uAAB1]
+    | [\uAAB5-\uAAB6]
+    | [\uAAB9-\uAABD]
+    | [\uAAC0]
+    | [\uAAC2]
+    | [\uAADB-\uAADD]
+    | [\uAAE0-\uAAEA]
+    | [\uAAF2-\uAAF4]
+    | [\uAB01-\uAB06]
+    | [\uAB09-\uAB0E]
+    | [\uAB11-\uAB16]
+    | [\uAB20-\uAB26]
+    | [\uAB28-\uAB2E]
+    | [\uAB30-\uAB5A]
+    | [\uAB5C-\uAB65]
+    | [\uAB70-\uABE2]
+    | [\uAC00-\uD7A3]
+    | [\uD7B0-\uD7C6]
+    | [\uD7CB-\uD7FB]
+    | [\uF900-\uFA6D]
+    | [\uFA70-\uFAD9]
+    | [\uFB00-\uFB06]
+    | [\uFB13-\uFB17]
+    | [\uFB1D]
+    | [\uFB1F-\uFB28]
+    | [\uFB2A-\uFB36]
+    | [\uFB38-\uFB3C]
+    | [\uFB3E]
+    | [\uFB40-\uFB41]
+    | [\uFB43-\uFB44]
+    | [\uFB46-\uFBB1]
+    | [\uFBD3-\uFD3D]
+    | [\uFD50-\uFD8F]
+    | [\uFD92-\uFDC7]
+    | [\uFDF0-\uFDFC]
+    | [\uFE33-\uFE34]
+    | [\uFE4D-\uFE4F]
+    | [\uFE69]
+    | [\uFE70-\uFE74]
+    | [\uFE76-\uFEFC]
+    | [\uFF04]
+    | [\uFF21-\uFF3A]
+    | [\uFF3F]
+    | [\uFF41-\uFF5A]
+    | [\uFF66-\uFFBE]
+    | [\uFFC2-\uFFC7]
+    | [\uFFCA-\uFFCF]
+    | [\uFFD2-\uFFD7]
+    | [\uFFDA-\uFFDC]
+    | [\uFFE0-\uFFE1]
+    | [\uFFE5-\uFFE6]
+    ;
+
+fragment
+IdentifierPart
+    : IdentifierStart
+    | [\u0030-\u0039]
+    | [\u007F-\u009F]
+    | [\u00AD]
+    | [\u0300-\u036F]
+    | [\u0483-\u0487]
+    | [\u0591-\u05BD]
+    | [\u05BF]
+    | [\u05C1-\u05C2]
+    | [\u05C4-\u05C5]
+    | [\u05C7]
+    | [\u0600-\u0605]
+    | [\u0610-\u061A]
+    | [\u061C]
+    | [\u064B-\u0669]
+    | [\u0670]
+    | [\u06D6-\u06DD]
+    | [\u06DF-\u06E4]
+    | [\u06E7-\u06E8]
+    | [\u06EA-\u06ED]
+    | [\u06F0-\u06F9]
+    | [\u070F]
+    | [\u0711]
+    | [\u0730-\u074A]
+    | [\u07A6-\u07B0]
+    | [\u07C0-\u07C9]
+    | [\u07EB-\u07F3]
+    | [\u0816-\u0819]
+    | [\u081B-\u0823]
+    | [\u0825-\u0827]
+    | [\u0829-\u082D]
+    | [\u0859-\u085B]
+    | [\u08D4-\u0903]
+    | [\u093A-\u093C]
+    | [\u093E-\u094F]
+    | [\u0951-\u0957]
+    | [\u0962-\u0963]
+    | [\u0966-\u096F]
+    | [\u0981-\u0983]
+    | [\u09BC]
+    | [\u09BE-\u09C4]
+    | [\u09C7-\u09C8]
+    | [\u09CB-\u09CD]
+    | [\u09D7]
+    | [\u09E2-\u09E3]
+    | [\u09E6-\u09EF]
+    | [\u0A01-\u0A03]
+    | [\u0A3C]
+    | [\u0A3E-\u0A42]
+    | [\u0A47-\u0A48]
+    | [\u0A4B-\u0A4D]
+    | [\u0A51]
+    | [\u0A66-\u0A71]
+    | [\u0A75]
+    | [\u0A81-\u0A83]
+    | [\u0ABC]
+    | [\u0ABE-\u0AC5]
+    | [\u0AC7-\u0AC9]
+    | [\u0ACB-\u0ACD]
+    | [\u0AE2-\u0AE3]
+    | [\u0AE6-\u0AEF]
+    | [\u0AFA-\u0AFF]
+    | [\u0B01-\u0B03]
+    | [\u0B3C]
+    | [\u0B3E-\u0B44]
+    | [\u0B47-\u0B48]
+    | [\u0B4B-\u0B4D]
+    | [\u0B56-\u0B57]
+    | [\u0B62-\u0B63]
+    | [\u0B66-\u0B6F]
+    | [\u0B82]
+    | [\u0BBE-\u0BC2]
+    | [\u0BC6-\u0BC8]
+    | [\u0BCA-\u0BCD]
+    | [\u0BD7]
+    | [\u0BE6-\u0BEF]
+    | [\u0C00-\u0C03]
+    | [\u0C3E-\u0C44]
+    | [\u0C46-\u0C48]
+    | [\u0C4A-\u0C4D]
+    | [\u0C55-\u0C56]
+    | [\u0C62-\u0C63]
+    | [\u0C66-\u0C6F]
+    | [\u0C81-\u0C83]
+    | [\u0CBC]
+    | [\u0CBE-\u0CC4]
+    | [\u0CC6-\u0CC8]
+    | [\u0CCA-\u0CCD]
+    | [\u0CD5-\u0CD6]
+    | [\u0CE2-\u0CE3]
+    | [\u0CE6-\u0CEF]
+    | [\u0D00-\u0D03]
+    | [\u0D3B-\u0D3C]
+    | [\u0D3E-\u0D44]
+    | [\u0D46-\u0D48]
+    | [\u0D4A-\u0D4D]
+    | [\u0D57]
+    | [\u0D62-\u0D63]
+    | [\u0D66-\u0D6F]
+    | [\u0D82-\u0D83]
+    | [\u0DCA]
+    | [\u0DCF-\u0DD4]
+    | [\u0DD6]
+    | [\u0DD8-\u0DDF]
+    | [\u0DE6-\u0DEF]
+    | [\u0DF2-\u0DF3]
+    | [\u0E31]
+    | [\u0E34-\u0E3A]
+    | [\u0E47-\u0E4E]
+    | [\u0E50-\u0E59]
+    | [\u0EB1]
+    | [\u0EB4-\u0EB9]
+    | [\u0EBB-\u0EBC]
+    | [\u0EC8-\u0ECD]
+    | [\u0ED0-\u0ED9]
+    | [\u0F18-\u0F19]
+    | [\u0F20-\u0F29]
+    | [\u0F35]
+    | [\u0F37]
+    | [\u0F39]
+    | [\u0F3E-\u0F3F]
+    | [\u0F71-\u0F84]
+    | [\u0F86-\u0F87]
+    | [\u0F8D-\u0F97]
+    | [\u0F99-\u0FBC]
+    | [\u0FC6]
+    | [\u102B-\u103E]
+    | [\u1040-\u1049]
+    | [\u1056-\u1059]
+    | [\u105E-\u1060]
+    | [\u1062-\u1064]
+    | [\u1067-\u106D]
+    | [\u1071-\u1074]
+    | [\u1082-\u108D]
+    | [\u108F-\u109D]
+    | [\u135D-\u135F]
+    | [\u1712-\u1714]
+    | [\u1732-\u1734]
+    | [\u1752-\u1753]
+    | [\u1772-\u1773]
+    | [\u17B4-\u17D3]
+    | [\u17DD]
+    | [\u17E0-\u17E9]
+    | [\u180B-\u180E]
+    | [\u1810-\u1819]
+    | [\u1885-\u1886]
+    | [\u18A9]
+    | [\u1920-\u192B]
+    | [\u1930-\u193B]
+    | [\u1946-\u194F]
+    | [\u19D0-\u19D9]
+    | [\u1A17-\u1A1B]
+    | [\u1A55-\u1A5E]
+    | [\u1A60-\u1A7C]
+    | [\u1A7F-\u1A89]
+    | [\u1A90-\u1A99]
+    | [\u1AB0-\u1ABD]
+    | [\u1B00-\u1B04]
+    | [\u1B34-\u1B44]
+    | [\u1B50-\u1B59]
+    | [\u1B6B-\u1B73]
+    | [\u1B80-\u1B82]
+    | [\u1BA1-\u1BAD]
+    | [\u1BB0-\u1BB9]
+    | [\u1BE6-\u1BF3]
+    | [\u1C24-\u1C37]
+    | [\u1C40-\u1C49]
+    | [\u1C50-\u1C59]
+    | [\u1CD0-\u1CD2]
+    | [\u1CD4-\u1CE8]
+    | [\u1CED]
+    | [\u1CF2-\u1CF4]
+    | [\u1CF7-\u1CF9]
+    | [\u1DC0-\u1DF9]
+    | [\u1DFB-\u1DFF]
+    | [\u200B-\u200F]
+    | [\u202A-\u202E]
+    | [\u2060-\u2064]
+    | [\u2066-\u206F]
+    | [\u20D0-\u20DC]
+    | [\u20E1]
+    | [\u20E5-\u20F0]
+    | [\u2CEF-\u2CF1]
+    | [\u2D7F]
+    | [\u2DE0-\u2DFF]
+    | [\u302A-\u302F]
+    | [\u3099-\u309A]
+    | [\uA620-\uA629]
+    | [\uA66F]
+    | [\uA674-\uA67D]
+    | [\uA69E-\uA69F]
+    | [\uA6F0-\uA6F1]
+    | [\uA802]
+    | [\uA806]
+    | [\uA80B]
+    | [\uA823-\uA827]
+    | [\uA880-\uA881]
+    | [\uA8B4-\uA8C5]
+    | [\uA8D0-\uA8D9]
+    | [\uA8E0-\uA8F1]
+    | [\uA900-\uA909]
+    | [\uA926-\uA92D]
+    | [\uA947-\uA953]
+    | [\uA980-\uA983]
+    | [\uA9B3-\uA9C0]
+    | [\uA9D0-\uA9D9]
+    | [\uA9E5]
+    | [\uA9F0-\uA9F9]
+    | [\uAA29-\uAA36]
+    | [\uAA43]
+    | [\uAA4C-\uAA4D]
+    | [\uAA50-\uAA59]
+    | [\uAA7B-\uAA7D]
+    | [\uAAB0]
+    | [\uAAB2-\uAAB4]
+    | [\uAAB7-\uAAB8]
+    | [\uAABE-\uAABF]
+    | [\uAAC1]
+    | [\uAAEB-\uAAEF]
+    | [\uAAF5-\uAAF6]
+    | [\uABE3-\uABEA]
+    | [\uABEC-\uABED]
+    | [\uABF0-\uABF9]
+    | [\uFB1E]
+    | [\uFE00-\uFE0F]
+    | [\uFE20-\uFE2F]
+    | [\uFEFF]
+    | [\uFF10-\uFF19]
+    | [\uFFF9-\uFFFB]
+    ;
+
diff --git a/text2gremlin/AST_Text2Gremlin/base/gremlin/Gremlin.interp b/text2gremlin/AST_Text2Gremlin/base/gremlin/Gremlin.interp
new file mode 100644
index 00000000..ef5807b8
--- /dev/null
+++ b/text2gremlin/AST_Text2Gremlin/base/gremlin/Gremlin.interp
@@ -0,0 +1,855 @@
+token literal names:
+null
+'discard'
+'addAll'
+'addE'
+'addV'
+'aggregate'
+'all'
+'and'
+'any'
+'as'
+'asc'
+'asDate'
+'asString'
+'assign'
+'barrier'
+'Barrier'
+'begin'
+'between'
+'both'
+'BOTH'
+'bothE'
+'bothV'
+'branch'
+'by'
+'call'
+'cap'
+'Cardinality'
+'choose'
+'coalesce'
+'coin'
+'Column'
+'combine'
+'commit'
+'component'
+'concat'
+'conjoin'
+'connectedComponent'
+'ConnectedComponent'
+'constant'
+'containing'
+'count'
+'cyclicPath'
+'day'
+'dateAdd'
+'dateDiff'
+'datetime'
+'DateTime'
+'decr'
+'dedup'
+'desc'
+'difference'
+'Direction'
+'disjunct'
+'distance'
+'div'
+'drop'
+'DT'
+'E'
+'edges'
+'elementMap'
+'element'
+'emit'
+'endingWith'
+'eq'
+'explain'
+'fail'
+'false'
+'filter'
+'first'
+'flatMap'
+'fold'
+'format'
+'from'
+'global'
+'gt'
+'gte'
+'graphml'
+'graphson'
+'groupCount'
+'group'
+'gryo'
+'has'
+'hasId'
+'hasKey'
+'hasLabel'
+'hasNext'
+'hasNot'
+'hasValue'
+'hour'
+'id'
+'identity'
+'ids'
+'in'
+'IN'
+'inE'
+'includeEdges'
+'incr'
+'indexer'
+'index'
+'Infinity'
+'inject'
+'inside'
+'intersect'
+'inV'
+'IO'
+'io'
+'is'
+'iterate'
+'key'
+'keys'
+'labels'
+'label'
+'last'
+'length'
+'limit'
+'list'
+'local'
+'loops'
+'lt'
+'lte'
+'lTrim'
+'map'
+'match'
+'math'
+'max'
+'maxDistance'
+'mean'
+'Merge'
+'merge'
+'mergeE'
+'mergeV'
+'min'
+'minute'
+'minus'
+'mixed'
+'mult'
+'NaN'
+'negate'
+'next'
+'none'
+'notRegex'
+'notContaining'
+'notEndingWith'
+'notStartingWith'
+'not'
+'neq'
+'new'
+'normSack'
+'null'
+'onCreate'
+'onMatch'
+'Operator'
+'option'
+'optional'
+'Order'
+'order'
+'or'
+'otherV'
+'OUT'
+'out'
+'outE'
+'outside'
+'outV'
+'P'
+'PageRank'
+'pageRank'
+'path'
+'PeerPressure'
+'peerPressure'
+'Pick'
+'Pop'
+'profile'
+'project'
+'properties'
+'propertyMap'
+'propertyName'
+'property'
+'product'
+'range'
+'read'
+'reader'
+'ReferenceVertex'
+'regex'
+'replace'
+'repeat'
+'reverse'
+'rollback'
+'rTrim'
+'sack'
+'sample'
+'Scope'
+'second'
+'select'
+'set'
+'ShortestPath'
+'shortestPath'
+'shuffle'
+'sideEffect'
+'simplePath'
+'single'
+'skip'
+'split'
+'startingWith'
+'store'
+'subgraph'
+'substring'
+'sum'
+'sumLong'
+'T'
+'tail'
+'target'
+'TextP'
+'timeLimit'
+'times'
+'to'
+'toBulkSet'
+'tokens'
+'toList'
+'toLower'
+'toSet'
+'toString'
+'toUpper'
+'toE'
+'toV'
+'tree'
+'trim'
+'true'
+'tryNext'
+'tx'
+'unfold'
+'union'
+'until'
+'UUID'
+'V'
+'valueMap'
+'values'
+'value'
+'Vertex'
+'where'
+'with'
+'withBulk'
+'within'
+'WithOptions'
+'without'
+'withoutStrategies'
+'withPath'
+'withSack'
+'withSideEffect'
+'withStrategies'
+'write'
+'writer'
+null
+null
+null
+null
+null
+'('
+')'
+'{'
+'}'
+'['
+']'
+';'
+','
+'.'
+':'
+'g'
+'__'
+null
+null
+null
+
+token symbolic names:
+null
+null
+K_ADDALL
+K_ADDE
+K_ADDV
+K_AGGREGATE
+K_ALL
+K_AND
+K_ANY
+K_AS
+K_ASC
+K_ASDATE
+K_ASSTRING
+K_ASSIGN
+K_BARRIER
+K_BARRIERU
+K_BEGIN
+K_BETWEEN
+K_BOTH
+K_BOTHU
+K_BOTHE
+K_BOTHV
+K_BRANCH
+K_BY
+K_CALL
+K_CAP
+K_CARDINALITY
+K_CHOOSE
+K_COALESCE
+K_COIN
+K_COLUMN
+K_COMBINE
+K_COMMIT
+K_COMPONENT
+K_CONCAT
+K_CONJOIN
+K_CONNECTEDCOMPONENT
+K_CONNECTEDCOMPONENTU
+K_CONSTANT
+K_CONTAINING
+K_COUNT
+K_CYCLICPATH
+K_DAY
+K_DATEADD
+K_DATEDIFF
+K_DATETIME
+K_DATETIMEU
+K_DECR
+K_DEDUP
+K_DESC
+K_DIFFERENCE
+K_DIRECTION
+K_DISJUNCT
+K_DISTANCE
+K_DIV
+K_DROP
+K_DT
+K_E
+K_EDGES
+K_ELEMENTMAP
+K_ELEMENT
+K_EMIT
+K_ENDINGWITH
+K_EQ
+K_EXPLAIN
+K_FAIL
+K_FALSE
+K_FILTER
+K_FIRST
+K_FLATMAP
+K_FOLD
+K_FORMAT
+K_FROM
+K_GLOBAL
+K_GT
+K_GTE
+K_GRAPHML
+K_GRAPHSON
+K_GROUPCOUNT
+K_GROUP
+K_GRYO
+K_HAS
+K_HASID
+K_HASKEY
+K_HASLABEL
+K_HASNEXT
+K_HASNOT
+K_HASVALUE
+K_HOUR
+K_ID
+K_IDENTITY
+K_IDS
+K_IN
+K_INU
+K_INE
+K_INCLUDEEDGES
+K_INCR
+K_INDEXER
+K_INDEX
+K_INFINITY
+K_INJECT
+K_INSIDE
+K_INTERSECT
+K_INV
+K_IOU
+K_IO
+K_IS
+K_ITERATE
+K_KEY
+K_KEYS
+K_LABELS
+K_LABEL
+K_LAST
+K_LENGTH
+K_LIMIT
+K_LIST
+K_LOCAL
+K_LOOPS
+K_LT
+K_LTE
+K_LTRIM
+K_MAP
+K_MATCH
+K_MATH
+K_MAX
+K_MAXDISTANCE
+K_MEAN
+K_MERGEU
+K_MERGE
+K_MERGEE
+K_MERGEV
+K_MIN
+K_MINUTE
+K_MINUS
+K_MIXED
+K_MULT
+K_NAN
+K_NEGATE
+K_NEXT
+K_NONE
+K_NOTREGEX
+K_NOTCONTAINING
+K_NOTENDINGWITH
+K_NOTSTARTINGWITH
+K_NOT
+K_NEQ
+K_NEW
+K_NORMSACK
+K_NULL
+K_ONCREATE
+K_ONMATCH
+K_OPERATOR
+K_OPTION
+K_OPTIONAL
+K_ORDERU
+K_ORDER
+K_OR
+K_OTHERV
+K_OUTU
+K_OUT
+K_OUTE
+K_OUTSIDE
+K_OUTV
+K_P
+K_PAGERANKU
+K_PAGERANK
+K_PATH
+K_PEERPRESSUREU
+K_PEERPRESSURE
+K_PICK
+K_POP
+K_PROFILE
+K_PROJECT
+K_PROPERTIES
+K_PROPERTYMAP
+K_PROPERTYNAME
+K_PROPERTY
+K_PRODUCT
+K_RANGE
+K_READ
+K_READER
+K_REFERENCEVERTEX
+K_REGEX
+K_REPLACE
+K_REPEAT
+K_REVERSE
+K_ROLLBACK
+K_RTRIM
+K_SACK
+K_SAMPLE
+K_SCOPE
+K_SECOND
+K_SELECT
+K_SET
+K_SHORTESTPATHU
+K_SHORTESTPATH
+K_SHUFFLE
+K_SIDEEFFECT
+K_SIMPLEPATH
+K_SINGLE
+K_SKIP
+K_SPLIT
+K_STARTINGWITH
+K_STORE
+K_SUBGRAPH
+K_SUBSTRING
+K_SUM
+K_SUMLONG
+K_T
+K_TAIL
+K_TARGET
+K_TEXTP
+K_TIMELIMIT
+K_TIMES
+K_TO
+K_TOBULKSET
+K_TOKENS
+K_TOLIST
+K_TOLOWER
+K_TOSET
+K_TOSTRING
+K_TOUPPER
+K_TOE
+K_TOV
+K_TREE
+K_TRIM
+K_TRUE
+K_TRYNEXT
+K_TX
+K_UNFOLD
+K_UNION
+K_UNTIL
+K_UUID
+K_V
+K_VALUEMAP
+K_VALUES
+K_VALUE
+K_VERTEX
+K_WHERE
+K_WITH
+K_WITHBULK
+K_WITHIN
+K_WITHOPTOPTIONS
+K_WITHOUT
+K_WITHOUTSTRATEGIES
+K_WITHPATH
+K_WITHSACK
+K_WITHSIDEEFFECT
+K_WITHSTRATEGIES
+K_WRITE
+K_WRITER
+IntegerLiteral
+FloatingPointLiteral
+SignedInfLiteral
+NonEmptyStringLiteral
+EmptyStringLiteral
+LPAREN
+RPAREN
+LBRACE
+RBRACE
+LBRACK
+RBRACK
+SEMI
+COMMA
+DOT
+COLON
+TRAVERSAL_ROOT
+ANON_TRAVERSAL_ROOT
+WS
+LINE_COMMENT
+Identifier
+
+rule names:
+queryList
+query
+emptyQuery
+traversalSource
+transactionPart
+rootTraversal
+traversalSourceSelfMethod
+traversalSourceSelfMethod_withBulk
+traversalSourceSelfMethod_withPath
+traversalSourceSelfMethod_withSack
+traversalSourceSelfMethod_withSideEffect
+traversalSourceSelfMethod_withStrategies
+traversalSourceSelfMethod_withoutStrategies
+traversalSourceSelfMethod_with
+traversalSourceSpawnMethod
+traversalSourceSpawnMethod_addE
+traversalSourceSpawnMethod_addV
+traversalSourceSpawnMethod_E
+traversalSourceSpawnMethod_V
+traversalSourceSpawnMethod_inject
+traversalSourceSpawnMethod_io
+traversalSourceSpawnMethod_mergeV
+traversalSourceSpawnMethod_mergeE
+traversalSourceSpawnMethod_call
+traversalSourceSpawnMethod_union
+chainedTraversal
+nestedTraversal
+terminatedTraversal
+traversalMethod
+traversalMethod_V
+traversalMethod_E
+traversalMethod_addE
+traversalMethod_addV
+traversalMethod_aggregate
+traversalMethod_all
+traversalMethod_and
+traversalMethod_any
+traversalMethod_as
+traversalMethod_asDate
+traversalMethod_asString
+traversalMethod_barrier
+traversalMethod_both
+traversalMethod_bothE
+traversalMethod_bothV
+traversalMethod_branch
+traversalMethod_by
+traversalMethod_call
+traversalMethod_cap
+traversalMethod_choose
+traversalMethod_coalesce
+traversalMethod_coin
+traversalMethod_combine
+traversalMethod_concat
+traversalMethod_conjoin
+traversalMethod_connectedComponent
+traversalMethod_constant
+traversalMethod_count
+traversalMethod_cyclicPath
+traversalMethod_dateAdd
+traversalMethod_dateDiff
+traversalMethod_dedup
+traversalMethod_difference
+traversalMethod_discard
+traversalMethod_disjunct
+traversalMethod_drop
+traversalMethod_element
+traversalMethod_elementMap
+traversalMethod_emit
+traversalMethod_fail
+traversalMethod_filter
+traversalMethod_flatMap
+traversalMethod_fold
+traversalMethod_format
+traversalMethod_from
+traversalMethod_group
+traversalMethod_groupCount
+traversalMethod_has
+traversalMethod_hasId
+traversalMethod_hasKey
+traversalMethod_hasLabel
+traversalMethod_hasNot
+traversalMethod_hasValue
+traversalMethod_id
+traversalMethod_identity
+traversalMethod_in
+traversalMethod_inE
+traversalMethod_intersect
+traversalMethod_inV
+traversalMethod_index
+traversalMethod_inject
+traversalMethod_is
+traversalMethod_key
+traversalMethod_label
+traversalMethod_length
+traversalMethod_limit
+traversalMethod_local
+traversalMethod_loops
+traversalMethod_lTrim
+traversalMethod_map
+traversalMethod_match
+traversalMethod_math
+traversalMethod_max
+traversalMethod_mean
+traversalMethod_merge
+traversalMethod_mergeV
+traversalMethod_mergeE
+traversalMethod_min
+traversalMethod_none
+traversalMethod_not
+traversalMethod_option
+traversalMethod_optional
+traversalMethod_or
+traversalMethod_order
+traversalMethod_otherV
+traversalMethod_out
+traversalMethod_outE
+traversalMethod_outV
+traversalMethod_pageRank
+traversalMethod_path
+traversalMethod_peerPressure
+traversalMethod_product
+traversalMethod_profile
+traversalMethod_project
+traversalMethod_properties
+traversalMethod_property
+traversalMethod_propertyMap
+traversalMethod_range
+traversalMethod_read
+traversalMethod_repeat
+traversalMethod_replace
+traversalMethod_reverse
+traversalMethod_rTrim
+traversalMethod_sack
+traversalMethod_sample
+traversalMethod_select
+traversalMethod_shortestPath
+traversalMethod_sideEffect
+traversalMethod_simplePath
+traversalMethod_skip
+traversalMethod_split
+traversalMethod_store
+traversalMethod_subgraph
+traversalMethod_substring
+traversalMethod_sum
+traversalMethod_tail
+traversalMethod_timeLimit
+traversalMethod_times
+traversalMethod_to
+traversalMethod_toE
+traversalMethod_toLower
+traversalMethod_toUpper
+traversalMethod_toV
+traversalMethod_tree
+traversalMethod_trim
+traversalMethod_unfold
+traversalMethod_union
+traversalMethod_until
+traversalMethod_value
+traversalMethod_valueMap
+traversalMethod_values
+traversalMethod_where
+traversalMethod_with
+traversalMethod_write
+structureVertexLiteral
+traversalStrategy
+configuration
+traversalScope
+traversalBarrier
+traversalT
+traversalTShort
+traversalTLong
+traversalMerge
+traversalOrder
+traversalDirection
+traversalDirectionShort
+traversalDirectionLong
+traversalCardinality
+traversalColumn
+traversalPop
+traversalOperator
+traversalPick
+traversalDT
+traversalPredicate
+traversalTerminalMethod
+traversalSackMethod
+traversalComparator
+traversalFunction
+traversalBiFunction
+traversalPredicate_eq
+traversalPredicate_neq
+traversalPredicate_lt
+traversalPredicate_lte
+traversalPredicate_gt
+traversalPredicate_gte
+traversalPredicate_inside
+traversalPredicate_outside
+traversalPredicate_between
+traversalPredicate_within
+traversalPredicate_without
+traversalPredicate_not
+traversalPredicate_containing
+traversalPredicate_notContaining
+traversalPredicate_startingWith
+traversalPredicate_notStartingWith
+traversalPredicate_endingWith
+traversalPredicate_notEndingWith
+traversalPredicate_regex
+traversalPredicate_notRegex
+traversalTerminalMethod_explain
+traversalTerminalMethod_hasNext
+traversalTerminalMethod_iterate
+traversalTerminalMethod_tryNext
+traversalTerminalMethod_next
+traversalTerminalMethod_toList
+traversalTerminalMethod_toSet
+traversalTerminalMethod_toBulkSet
+withOptionKeys
+connectedComponentConstants
+pageRankConstants
+peerPressureConstants
+shortestPathConstants
+withOptionsValues
+ioOptionsKeys
+ioOptionsValues
+connectedComponentConstants_component
+connectedComponentConstants_edges
+connectedComponentConstants_propertyName
+pageRankConstants_edges
+pageRankConstants_times
+pageRankConstants_propertyName
+peerPressureConstants_edges
+peerPressureConstants_times
+peerPressureConstants_propertyName
+shortestPathConstants_target
+shortestPathConstants_edges
+shortestPathConstants_distance
+shortestPathConstants_maxDistance
+shortestPathConstants_includeEdges
+withOptionsConstants_tokens
+withOptionsConstants_none
+withOptionsConstants_ids
+withOptionsConstants_labels
+withOptionsConstants_keys
+withOptionsConstants_values
+withOptionsConstants_all
+withOptionsConstants_indexer
+withOptionsConstants_list
+withOptionsConstants_map
+ioOptionsConstants_reader
+ioOptionsConstants_writer
+ioOptionsConstants_gryo
+ioOptionsConstants_graphson
+ioOptionsConstants_graphml
+connectedComponentStringConstant
+pageRankStringConstant
+peerPressureStringConstant
+shortestPathStringConstant
+withOptionsStringConstant
+ioOptionsStringConstant
+booleanArgument
+integerArgument
+floatArgument
+stringArgument
+stringNullableArgument
+stringNullableArgumentVarargs
+dateArgument
+genericArgument
+genericArgumentVarargs
+genericMapArgument
+genericMapNullableArgument
+nullableGenericLiteralMap
+structureVertexArgument
+traversalStrategyVarargs
+traversalStrategyExpr
+classTypeList
+classTypeExpr
+nestedTraversalList
+nestedTraversalExpr
+genericCollectionLiteral
+genericLiteralVarargs
+genericLiteralExpr
+genericMapNullableLiteral
+genericRangeLiteral
+genericSetLiteral
+stringNullableLiteralVarargs
+genericLiteral
+genericMapLiteral
+mapKey
+mapEntry
+stringLiteral
+stringNullableLiteral
+integerLiteral
+floatLiteral
+numericLiteral
+booleanLiteral
+dateLiteral
+nullLiteral
+nanLiteral
+infLiteral
+uuidLiteral
+nakedKey
+classType
+variable
+keyword
+
+
+atn:
+[4, 1, 270, 3582, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 3 [...]
\ No newline at end of file
diff --git a/text2gremlin/AST_Text2Gremlin/base/gremlin/Gremlin.tokens b/text2gremlin/AST_Text2Gremlin/base/gremlin/Gremlin.tokens
new file mode 100644
index 00000000..0b40f3f1
--- /dev/null
+++ b/text2gremlin/AST_Text2Gremlin/base/gremlin/Gremlin.tokens
@@ -0,0 +1,532 @@
+T__0=1
+K_ADDALL=2
+K_ADDE=3
+K_ADDV=4
+K_AGGREGATE=5
+K_ALL=6
+K_AND=7
+K_ANY=8
+K_AS=9
+K_ASC=10
+K_ASDATE=11
+K_ASSTRING=12
+K_ASSIGN=13
+K_BARRIER=14
+K_BARRIERU=15
+K_BEGIN=16
+K_BETWEEN=17
+K_BOTH=18
+K_BOTHU=19
+K_BOTHE=20
+K_BOTHV=21
+K_BRANCH=22
+K_BY=23
+K_CALL=24
+K_CAP=25
+K_CARDINALITY=26
+K_CHOOSE=27
+K_COALESCE=28
+K_COIN=29
+K_COLUMN=30
+K_COMBINE=31
+K_COMMIT=32
+K_COMPONENT=33
+K_CONCAT=34
+K_CONJOIN=35
+K_CONNECTEDCOMPONENT=36
+K_CONNECTEDCOMPONENTU=37
+K_CONSTANT=38
+K_CONTAINING=39
+K_COUNT=40
+K_CYCLICPATH=41
+K_DAY=42
+K_DATEADD=43
+K_DATEDIFF=44
+K_DATETIME=45
+K_DATETIMEU=46
+K_DECR=47
+K_DEDUP=48
+K_DESC=49
+K_DIFFERENCE=50
+K_DIRECTION=51
+K_DISJUNCT=52
+K_DISTANCE=53
+K_DIV=54
+K_DROP=55
+K_DT=56
+K_E=57
+K_EDGES=58
+K_ELEMENTMAP=59
+K_ELEMENT=60
+K_EMIT=61
+K_ENDINGWITH=62
+K_EQ=63
+K_EXPLAIN=64
+K_FAIL=65
+K_FALSE=66
+K_FILTER=67
+K_FIRST=68
+K_FLATMAP=69
+K_FOLD=70
+K_FORMAT=71
+K_FROM=72
+K_GLOBAL=73
+K_GT=74
+K_GTE=75
+K_GRAPHML=76
+K_GRAPHSON=77
+K_GROUPCOUNT=78
+K_GROUP=79
+K_GRYO=80
+K_HAS=81
+K_HASID=82
+K_HASKEY=83
+K_HASLABEL=84
+K_HASNEXT=85
+K_HASNOT=86
+K_HASVALUE=87
+K_HOUR=88
+K_ID=89
+K_IDENTITY=90
+K_IDS=91
+K_IN=92
+K_INU=93
+K_INE=94
+K_INCLUDEEDGES=95
+K_INCR=96
+K_INDEXER=97
+K_INDEX=98
+K_INFINITY=99
+K_INJECT=100
+K_INSIDE=101
+K_INTERSECT=102
+K_INV=103
+K_IOU=104
+K_IO=105
+K_IS=106
+K_ITERATE=107
+K_KEY=108
+K_KEYS=109
+K_LABELS=110
+K_LABEL=111
+K_LAST=112
+K_LENGTH=113
+K_LIMIT=114
+K_LIST=115
+K_LOCAL=116
+K_LOOPS=117
+K_LT=118
+K_LTE=119
+K_LTRIM=120
+K_MAP=121
+K_MATCH=122
+K_MATH=123
+K_MAX=124
+K_MAXDISTANCE=125
+K_MEAN=126
+K_MERGEU=127
+K_MERGE=128
+K_MERGEE=129
+K_MERGEV=130
+K_MIN=131
+K_MINUTE=132
+K_MINUS=133
+K_MIXED=134
+K_MULT=135
+K_NAN=136
+K_NEGATE=137
+K_NEXT=138
+K_NONE=139
+K_NOTREGEX=140
+K_NOTCONTAINING=141
+K_NOTENDINGWITH=142
+K_NOTSTARTINGWITH=143
+K_NOT=144
+K_NEQ=145
+K_NEW=146
+K_NORMSACK=147
+K_NULL=148
+K_ONCREATE=149
+K_ONMATCH=150
+K_OPERATOR=151
+K_OPTION=152
+K_OPTIONAL=153
+K_ORDERU=154
+K_ORDER=155
+K_OR=156
+K_OTHERV=157
+K_OUTU=158
+K_OUT=159
+K_OUTE=160
+K_OUTSIDE=161
+K_OUTV=162
+K_P=163
+K_PAGERANKU=164
+K_PAGERANK=165
+K_PATH=166
+K_PEERPRESSUREU=167
+K_PEERPRESSURE=168
+K_PICK=169
+K_POP=170
+K_PROFILE=171
+K_PROJECT=172
+K_PROPERTIES=173
+K_PROPERTYMAP=174
+K_PROPERTYNAME=175
+K_PROPERTY=176
+K_PRODUCT=177
+K_RANGE=178
+K_READ=179
+K_READER=180
+K_REFERENCEVERTEX=181
+K_REGEX=182
+K_REPLACE=183
+K_REPEAT=184
+K_REVERSE=185
+K_ROLLBACK=186
+K_RTRIM=187
+K_SACK=188
+K_SAMPLE=189
+K_SCOPE=190
+K_SECOND=191
+K_SELECT=192
+K_SET=193
+K_SHORTESTPATHU=194
+K_SHORTESTPATH=195
+K_SHUFFLE=196
+K_SIDEEFFECT=197
+K_SIMPLEPATH=198
+K_SINGLE=199
+K_SKIP=200
+K_SPLIT=201
+K_STARTINGWITH=202
+K_STORE=203
+K_SUBGRAPH=204
+K_SUBSTRING=205
+K_SUM=206
+K_SUMLONG=207
+K_T=208
+K_TAIL=209
+K_TARGET=210
+K_TEXTP=211
+K_TIMELIMIT=212
+K_TIMES=213
+K_TO=214
+K_TOBULKSET=215
+K_TOKENS=216
+K_TOLIST=217
+K_TOLOWER=218
+K_TOSET=219
+K_TOSTRING=220
+K_TOUPPER=221
+K_TOE=222
+K_TOV=223
+K_TREE=224
+K_TRIM=225
+K_TRUE=226
+K_TRYNEXT=227
+K_TX=228
+K_UNFOLD=229
+K_UNION=230
+K_UNTIL=231
+K_UUID=232
+K_V=233
+K_VALUEMAP=234
+K_VALUES=235
+K_VALUE=236
+K_VERTEX=237
+K_WHERE=238
+K_WITH=239
+K_WITHBULK=240
+K_WITHIN=241
+K_WITHOPTOPTIONS=242
+K_WITHOUT=243
+K_WITHOUTSTRATEGIES=244
+K_WITHPATH=245
+K_WITHSACK=246
+K_WITHSIDEEFFECT=247
+K_WITHSTRATEGIES=248
+K_WRITE=249
+K_WRITER=250
+IntegerLiteral=251
+FloatingPointLiteral=252
+SignedInfLiteral=253
+NonEmptyStringLiteral=254
+EmptyStringLiteral=255
+LPAREN=256
+RPAREN=257
+LBRACE=258
+RBRACE=259
+LBRACK=260
+RBRACK=261
+SEMI=262
+COMMA=263
+DOT=264
+COLON=265
+TRAVERSAL_ROOT=266
+ANON_TRAVERSAL_ROOT=267
+WS=268
+LINE_COMMENT=269
+Identifier=270
+'discard'=1
+'addAll'=2
+'addE'=3
+'addV'=4
+'aggregate'=5
+'all'=6
+'and'=7
+'any'=8
+'as'=9
+'asc'=10
+'asDate'=11
+'asString'=12
+'assign'=13
+'barrier'=14
+'Barrier'=15
+'begin'=16
+'between'=17
+'both'=18
+'BOTH'=19
+'bothE'=20
+'bothV'=21
+'branch'=22
+'by'=23
+'call'=24
+'cap'=25
+'Cardinality'=26
+'choose'=27
+'coalesce'=28
+'coin'=29
+'Column'=30
+'combine'=31
+'commit'=32
+'component'=33
+'concat'=34
+'conjoin'=35
+'connectedComponent'=36
+'ConnectedComponent'=37
+'constant'=38
+'containing'=39
+'count'=40
+'cyclicPath'=41
+'day'=42
+'dateAdd'=43
+'dateDiff'=44
+'datetime'=45
+'DateTime'=46
+'decr'=47
+'dedup'=48
+'desc'=49
+'difference'=50
+'Direction'=51
+'disjunct'=52
+'distance'=53
+'div'=54
+'drop'=55
+'DT'=56
+'E'=57
+'edges'=58
+'elementMap'=59
+'element'=60
+'emit'=61
+'endingWith'=62
+'eq'=63
+'explain'=64
+'fail'=65
+'false'=66
+'filter'=67
+'first'=68
+'flatMap'=69
+'fold'=70
+'format'=71
+'from'=72
+'global'=73
+'gt'=74
+'gte'=75
+'graphml'=76
+'graphson'=77
+'groupCount'=78
+'group'=79
+'gryo'=80
+'has'=81
+'hasId'=82
+'hasKey'=83
+'hasLabel'=84
+'hasNext'=85
+'hasNot'=86
+'hasValue'=87
+'hour'=88
+'id'=89
+'identity'=90
+'ids'=91
+'in'=92
+'IN'=93
+'inE'=94
+'includeEdges'=95
+'incr'=96
+'indexer'=97
+'index'=98
+'Infinity'=99
+'inject'=100
+'inside'=101
+'intersect'=102
+'inV'=103
+'IO'=104
+'io'=105
+'is'=106
+'iterate'=107
+'key'=108
+'keys'=109
+'labels'=110
+'label'=111
+'last'=112
+'length'=113
+'limit'=114
+'list'=115
+'local'=116
+'loops'=117
+'lt'=118
+'lte'=119
+'lTrim'=120
+'map'=121
+'match'=122
+'math'=123
+'max'=124
+'maxDistance'=125
+'mean'=126
+'Merge'=127
+'merge'=128
+'mergeE'=129
+'mergeV'=130
+'min'=131
+'minute'=132
+'minus'=133
+'mixed'=134
+'mult'=135
+'NaN'=136
+'negate'=137
+'next'=138
+'none'=139
+'notRegex'=140
+'notContaining'=141
+'notEndingWith'=142
+'notStartingWith'=143
+'not'=144
+'neq'=145
+'new'=146
+'normSack'=147
+'null'=148
+'onCreate'=149
+'onMatch'=150
+'Operator'=151
+'option'=152
+'optional'=153
+'Order'=154
+'order'=155
+'or'=156
+'otherV'=157
+'OUT'=158
+'out'=159
+'outE'=160
+'outside'=161
+'outV'=162
+'P'=163
+'PageRank'=164
+'pageRank'=165
+'path'=166
+'PeerPressure'=167
+'peerPressure'=168
+'Pick'=169
+'Pop'=170
+'profile'=171
+'project'=172
+'properties'=173
+'propertyMap'=174
+'propertyName'=175
+'property'=176
+'product'=177
+'range'=178
+'read'=179
+'reader'=180
+'ReferenceVertex'=181
+'regex'=182
+'replace'=183
+'repeat'=184
+'reverse'=185
+'rollback'=186
+'rTrim'=187
+'sack'=188
+'sample'=189
+'Scope'=190
+'second'=191
+'select'=192
+'set'=193
+'ShortestPath'=194
+'shortestPath'=195
+'shuffle'=196
+'sideEffect'=197
+'simplePath'=198
+'single'=199
+'skip'=200
+'split'=201
+'startingWith'=202
+'store'=203
+'subgraph'=204
+'substring'=205
+'sum'=206
+'sumLong'=207
+'T'=208
+'tail'=209
+'target'=210
+'TextP'=211
+'timeLimit'=212
+'times'=213
+'to'=214
+'toBulkSet'=215
+'tokens'=216
+'toList'=217
+'toLower'=218
+'toSet'=219
+'toString'=220
+'toUpper'=221
+'toE'=222
+'toV'=223
+'tree'=224
+'trim'=225
+'true'=226
+'tryNext'=227
+'tx'=228
+'unfold'=229
+'union'=230
+'until'=231
+'UUID'=232
+'V'=233
+'valueMap'=234
+'values'=235
+'value'=236
+'Vertex'=237
+'where'=238
+'with'=239
+'withBulk'=240
+'within'=241
+'WithOptions'=242
+'without'=243
+'withoutStrategies'=244
+'withPath'=245
+'withSack'=246
+'withSideEffect'=247
+'withStrategies'=248
+'write'=249
+'writer'=250
+'('=256
+')'=257
+'{'=258
+'}'=259
+'['=260
+']'=261
+';'=262
+','=263
+'.'=264
+':'=265
+'g'=266
+'__'=267
diff --git a/text2gremlin/AST_Text2Gremlin/base/gremlin/GremlinLexer.interp b/text2gremlin/AST_Text2Gremlin/base/gremlin/GremlinLexer.interp
new file mode 100644
index 00000000..9e9f13af
--- /dev/null
+++ b/text2gremlin/AST_Text2Gremlin/base/gremlin/GremlinLexer.interp
@@ -0,0 +1,865 @@
+token literal names:
+null
+'discard'
+'addAll'
+'addE'
+'addV'
+'aggregate'
+'all'
+'and'
+'any'
+'as'
+'asc'
+'asDate'
+'asString'
+'assign'
+'barrier'
+'Barrier'
+'begin'
+'between'
+'both'
+'BOTH'
+'bothE'
+'bothV'
+'branch'
+'by'
+'call'
+'cap'
+'Cardinality'
+'choose'
+'coalesce'
+'coin'
+'Column'
+'combine'
+'commit'
+'component'
+'concat'
+'conjoin'
+'connectedComponent'
+'ConnectedComponent'
+'constant'
+'containing'
+'count'
+'cyclicPath'
+'day'
+'dateAdd'
+'dateDiff'
+'datetime'
+'DateTime'
+'decr'
+'dedup'
+'desc'
+'difference'
+'Direction'
+'disjunct'
+'distance'
+'div'
+'drop'
+'DT'
+'E'
+'edges'
+'elementMap'
+'element'
+'emit'
+'endingWith'
+'eq'
+'explain'
+'fail'
+'false'
+'filter'
+'first'
+'flatMap'
+'fold'
+'format'
+'from'
+'global'
+'gt'
+'gte'
+'graphml'
+'graphson'
+'groupCount'
+'group'
+'gryo'
+'has'
+'hasId'
+'hasKey'
+'hasLabel'
+'hasNext'
+'hasNot'
+'hasValue'
+'hour'
+'id'
+'identity'
+'ids'
+'in'
+'IN'
+'inE'
+'includeEdges'
+'incr'
+'indexer'
+'index'
+'Infinity'
+'inject'
+'inside'
+'intersect'
+'inV'
+'IO'
+'io'
+'is'
+'iterate'
+'key'
+'keys'
+'labels'
+'label'
+'last'
+'length'
+'limit'
+'list'
+'local'
+'loops'
+'lt'
+'lte'
+'lTrim'
+'map'
+'match'
+'math'
+'max'
+'maxDistance'
+'mean'
+'Merge'
+'merge'
+'mergeE'
+'mergeV'
+'min'
+'minute'
+'minus'
+'mixed'
+'mult'
+'NaN'
+'negate'
+'next'
+'none'
+'notRegex'
+'notContaining'
+'notEndingWith'
+'notStartingWith'
+'not'
+'neq'
+'new'
+'normSack'
+'null'
+'onCreate'
+'onMatch'
+'Operator'
+'option'
+'optional'
+'Order'
+'order'
+'or'
+'otherV'
+'OUT'
+'out'
+'outE'
+'outside'
+'outV'
+'P'
+'PageRank'
+'pageRank'
+'path'
+'PeerPressure'
+'peerPressure'
+'Pick'
+'Pop'
+'profile'
+'project'
+'properties'
+'propertyMap'
+'propertyName'
+'property'
+'product'
+'range'
+'read'
+'reader'
+'ReferenceVertex'
+'regex'
+'replace'
+'repeat'
+'reverse'
+'rollback'
+'rTrim'
+'sack'
+'sample'
+'Scope'
+'second'
+'select'
+'set'
+'ShortestPath'
+'shortestPath'
+'shuffle'
+'sideEffect'
+'simplePath'
+'single'
+'skip'
+'split'
+'startingWith'
+'store'
+'subgraph'
+'substring'
+'sum'
+'sumLong'
+'T'
+'tail'
+'target'
+'TextP'
+'timeLimit'
+'times'
+'to'
+'toBulkSet'
+'tokens'
+'toList'
+'toLower'
+'toSet'
+'toString'
+'toUpper'
+'toE'
+'toV'
+'tree'
+'trim'
+'true'
+'tryNext'
+'tx'
+'unfold'
+'union'
+'until'
+'UUID'
+'V'
+'valueMap'
+'values'
+'value'
+'Vertex'
+'where'
+'with'
+'withBulk'
+'within'
+'WithOptions'
+'without'
+'withoutStrategies'
+'withPath'
+'withSack'
+'withSideEffect'
+'withStrategies'
+'write'
+'writer'
+null
+null
+null
+null
+null
+'('
+')'
+'{'
+'}'
+'['
+']'
+';'
+','
+'.'
+':'
+'g'
+'__'
+null
+null
+null
+
+token symbolic names:
+null
+null
+K_ADDALL
+K_ADDE
+K_ADDV
+K_AGGREGATE
+K_ALL
+K_AND
+K_ANY
+K_AS
+K_ASC
+K_ASDATE
+K_ASSTRING
+K_ASSIGN
+K_BARRIER
+K_BARRIERU
+K_BEGIN
+K_BETWEEN
+K_BOTH
+K_BOTHU
+K_BOTHE
+K_BOTHV
+K_BRANCH
+K_BY
+K_CALL
+K_CAP
+K_CARDINALITY
+K_CHOOSE
+K_COALESCE
+K_COIN
+K_COLUMN
+K_COMBINE
+K_COMMIT
+K_COMPONENT
+K_CONCAT
+K_CONJOIN
+K_CONNECTEDCOMPONENT
+K_CONNECTEDCOMPONENTU
+K_CONSTANT
+K_CONTAINING
+K_COUNT
+K_CYCLICPATH
+K_DAY
+K_DATEADD
+K_DATEDIFF
+K_DATETIME
+K_DATETIMEU
+K_DECR
+K_DEDUP
+K_DESC
+K_DIFFERENCE
+K_DIRECTION
+K_DISJUNCT
+K_DISTANCE
+K_DIV
+K_DROP
+K_DT
+K_E
+K_EDGES
+K_ELEMENTMAP
+K_ELEMENT
+K_EMIT
+K_ENDINGWITH
+K_EQ
+K_EXPLAIN
+K_FAIL
+K_FALSE
+K_FILTER
+K_FIRST
+K_FLATMAP
+K_FOLD
+K_FORMAT
+K_FROM
+K_GLOBAL
+K_GT
+K_GTE
+K_GRAPHML
+K_GRAPHSON
+K_GROUPCOUNT
+K_GROUP
+K_GRYO
+K_HAS
+K_HASID
+K_HASKEY
+K_HASLABEL
+K_HASNEXT
+K_HASNOT
+K_HASVALUE
+K_HOUR
+K_ID
+K_IDENTITY
+K_IDS
+K_IN
+K_INU
+K_INE
+K_INCLUDEEDGES
+K_INCR
+K_INDEXER
+K_INDEX
+K_INFINITY
+K_INJECT
+K_INSIDE
+K_INTERSECT
+K_INV
+K_IOU
+K_IO
+K_IS
+K_ITERATE
+K_KEY
+K_KEYS
+K_LABELS
+K_LABEL
+K_LAST
+K_LENGTH
+K_LIMIT
+K_LIST
+K_LOCAL
+K_LOOPS
+K_LT
+K_LTE
+K_LTRIM
+K_MAP
+K_MATCH
+K_MATH
+K_MAX
+K_MAXDISTANCE
+K_MEAN
+K_MERGEU
+K_MERGE
+K_MERGEE
+K_MERGEV
+K_MIN
+K_MINUTE
+K_MINUS
+K_MIXED
+K_MULT
+K_NAN
+K_NEGATE
+K_NEXT
+K_NONE
+K_NOTREGEX
+K_NOTCONTAINING
+K_NOTENDINGWITH
+K_NOTSTARTINGWITH
+K_NOT
+K_NEQ
+K_NEW
+K_NORMSACK
+K_NULL
+K_ONCREATE
+K_ONMATCH
+K_OPERATOR
+K_OPTION
+K_OPTIONAL
+K_ORDERU
+K_ORDER
+K_OR
+K_OTHERV
+K_OUTU
+K_OUT
+K_OUTE
+K_OUTSIDE
+K_OUTV
+K_P
+K_PAGERANKU
+K_PAGERANK
+K_PATH
+K_PEERPRESSUREU
+K_PEERPRESSURE
+K_PICK
+K_POP
+K_PROFILE
+K_PROJECT
+K_PROPERTIES
+K_PROPERTYMAP
+K_PROPERTYNAME
+K_PROPERTY
+K_PRODUCT
+K_RANGE
+K_READ
+K_READER
+K_REFERENCEVERTEX
+K_REGEX
+K_REPLACE
+K_REPEAT
+K_REVERSE
+K_ROLLBACK
+K_RTRIM
+K_SACK
+K_SAMPLE
+K_SCOPE
+K_SECOND
+K_SELECT
+K_SET
+K_SHORTESTPATHU
+K_SHORTESTPATH
+K_SHUFFLE
+K_SIDEEFFECT
+K_SIMPLEPATH
+K_SINGLE
+K_SKIP
+K_SPLIT
+K_STARTINGWITH
+K_STORE
+K_SUBGRAPH
+K_SUBSTRING
+K_SUM
+K_SUMLONG
+K_T
+K_TAIL
+K_TARGET
+K_TEXTP
+K_TIMELIMIT
+K_TIMES
+K_TO
+K_TOBULKSET
+K_TOKENS
+K_TOLIST
+K_TOLOWER
+K_TOSET
+K_TOSTRING
+K_TOUPPER
+K_TOE
+K_TOV
+K_TREE
+K_TRIM
+K_TRUE
+K_TRYNEXT
+K_TX
+K_UNFOLD
+K_UNION
+K_UNTIL
+K_UUID
+K_V
+K_VALUEMAP
+K_VALUES
+K_VALUE
+K_VERTEX
+K_WHERE
+K_WITH
+K_WITHBULK
+K_WITHIN
+K_WITHOPTOPTIONS
+K_WITHOUT
+K_WITHOUTSTRATEGIES
+K_WITHPATH
+K_WITHSACK
+K_WITHSIDEEFFECT
+K_WITHSTRATEGIES
+K_WRITE
+K_WRITER
+IntegerLiteral
+FloatingPointLiteral
+SignedInfLiteral
+NonEmptyStringLiteral
+EmptyStringLiteral
+LPAREN
+RPAREN
+LBRACE
+RBRACE
+LBRACK
+RBRACK
+SEMI
+COMMA
+DOT
+COLON
+TRAVERSAL_ROOT
+ANON_TRAVERSAL_ROOT
+WS
+LINE_COMMENT
+Identifier
+
+rule names:
+T__0
+K_ADDALL
+K_ADDE
+K_ADDV
+K_AGGREGATE
+K_ALL
+K_AND
+K_ANY
+K_AS
+K_ASC
+K_ASDATE
+K_ASSTRING
+K_ASSIGN
+K_BARRIER
+K_BARRIERU
+K_BEGIN
+K_BETWEEN
+K_BOTH
+K_BOTHU
+K_BOTHE
+K_BOTHV
+K_BRANCH
+K_BY
+K_CALL
+K_CAP
+K_CARDINALITY
+K_CHOOSE
+K_COALESCE
+K_COIN
+K_COLUMN
+K_COMBINE
+K_COMMIT
+K_COMPONENT
+K_CONCAT
+K_CONJOIN
+K_CONNECTEDCOMPONENT
+K_CONNECTEDCOMPONENTU
+K_CONSTANT
+K_CONTAINING
+K_COUNT
+K_CYCLICPATH
+K_DAY
+K_DATEADD
+K_DATEDIFF
+K_DATETIME
+K_DATETIMEU
+K_DECR
+K_DEDUP
+K_DESC
+K_DIFFERENCE
+K_DIRECTION
+K_DISJUNCT
+K_DISTANCE
+K_DIV
+K_DROP
+K_DT
+K_E
+K_EDGES
+K_ELEMENTMAP
+K_ELEMENT
+K_EMIT
+K_ENDINGWITH
+K_EQ
+K_EXPLAIN
+K_FAIL
+K_FALSE
+K_FILTER
+K_FIRST
+K_FLATMAP
+K_FOLD
+K_FORMAT
+K_FROM
+K_GLOBAL
+K_GT
+K_GTE
+K_GRAPHML
+K_GRAPHSON
+K_GROUPCOUNT
+K_GROUP
+K_GRYO
+K_HAS
+K_HASID
+K_HASKEY
+K_HASLABEL
+K_HASNEXT
+K_HASNOT
+K_HASVALUE
+K_HOUR
+K_ID
+K_IDENTITY
+K_IDS
+K_IN
+K_INU
+K_INE
+K_INCLUDEEDGES
+K_INCR
+K_INDEXER
+K_INDEX
+K_INFINITY
+K_INJECT
+K_INSIDE
+K_INTERSECT
+K_INV
+K_IOU
+K_IO
+K_IS
+K_ITERATE
+K_KEY
+K_KEYS
+K_LABELS
+K_LABEL
+K_LAST
+K_LENGTH
+K_LIMIT
+K_LIST
+K_LOCAL
+K_LOOPS
+K_LT
+K_LTE
+K_LTRIM
+K_MAP
+K_MATCH
+K_MATH
+K_MAX
+K_MAXDISTANCE
+K_MEAN
+K_MERGEU
+K_MERGE
+K_MERGEE
+K_MERGEV
+K_MIN
+K_MINUTE
+K_MINUS
+K_MIXED
+K_MULT
+K_NAN
+K_NEGATE
+K_NEXT
+K_NONE
+K_NOTREGEX
+K_NOTCONTAINING
+K_NOTENDINGWITH
+K_NOTSTARTINGWITH
+K_NOT
+K_NEQ
+K_NEW
+K_NORMSACK
+K_NULL
+K_ONCREATE
+K_ONMATCH
+K_OPERATOR
+K_OPTION
+K_OPTIONAL
+K_ORDERU
+K_ORDER
+K_OR
+K_OTHERV
+K_OUTU
+K_OUT
+K_OUTE
+K_OUTSIDE
+K_OUTV
+K_P
+K_PAGERANKU
+K_PAGERANK
+K_PATH
+K_PEERPRESSUREU
+K_PEERPRESSURE
+K_PICK
+K_POP
+K_PROFILE
+K_PROJECT
+K_PROPERTIES
+K_PROPERTYMAP
+K_PROPERTYNAME
+K_PROPERTY
+K_PRODUCT
+K_RANGE
+K_READ
+K_READER
+K_REFERENCEVERTEX
+K_REGEX
+K_REPLACE
+K_REPEAT
+K_REVERSE
+K_ROLLBACK
+K_RTRIM
+K_SACK
+K_SAMPLE
+K_SCOPE
+K_SECOND
+K_SELECT
+K_SET
+K_SHORTESTPATHU
+K_SHORTESTPATH
+K_SHUFFLE
+K_SIDEEFFECT
+K_SIMPLEPATH
+K_SINGLE
+K_SKIP
+K_SPLIT
+K_STARTINGWITH
+K_STORE
+K_SUBGRAPH
+K_SUBSTRING
+K_SUM
+K_SUMLONG
+K_T
+K_TAIL
+K_TARGET
+K_TEXTP
+K_TIMELIMIT
+K_TIMES
+K_TO
+K_TOBULKSET
+K_TOKENS
+K_TOLIST
+K_TOLOWER
+K_TOSET
+K_TOSTRING
+K_TOUPPER
+K_TOE
+K_TOV
+K_TREE
+K_TRIM
+K_TRUE
+K_TRYNEXT
+K_TX
+K_UNFOLD
+K_UNION
+K_UNTIL
+K_UUID
+K_V
+K_VALUEMAP
+K_VALUES
+K_VALUE
+K_VERTEX
+K_WHERE
+K_WITH
+K_WITHBULK
+K_WITHIN
+K_WITHOPTOPTIONS
+K_WITHOUT
+K_WITHOUTSTRATEGIES
+K_WITHPATH
+K_WITHSACK
+K_WITHSIDEEFFECT
+K_WITHSTRATEGIES
+K_WRITE
+K_WRITER
+IntegerLiteral
+DecimalIntegerLiteral
+HexIntegerLiteral
+OctalIntegerLiteral
+IntegerTypeSuffix
+DecimalNumeral
+Digits
+Digit
+NonZeroDigit
+DigitsAndUnderscores
+DigitOrUnderscore
+Underscores
+HexNumeral
+HexDigits
+HexDigit
+HexDigitsAndUnderscores
+HexDigitOrUnderscore
+OctalNumeral
+OctalDigits
+OctalDigit
+OctalDigitsAndUnderscores
+OctalDigitOrUnderscore
+FloatingPointLiteral
+DecimalFloatingPointLiteral
+ExponentPart
+ExponentIndicator
+SignedInteger
+Sign
+FloatTypeSuffix
+SignedInfLiteral
+NonEmptyStringLiteral
+EmptyStringLiteral
+DoubleQuotedStringCharacters
+DoubleQuotedStringCharacter
+SingleQuotedStringCharacters
+SingleQuotedStringCharacter
+JoinLineEscape
+EscapeSequence
+OctalEscape
+ZeroToThree
+UnicodeEscape
+LPAREN
+RPAREN
+LBRACE
+RBRACE
+LBRACK
+RBRACK
+SEMI
+COMMA
+DOT
+COLON
+TRAVERSAL_ROOT
+ANON_TRAVERSAL_ROOT
+WS
+LINE_COMMENT
+Identifier
+IdentifierStart
+IdentifierPart
+
+channel names:
+DEFAULT_TOKEN_CHANNEL
+HIDDEN
+
+mode names:
+DEFAULT_MODE
+
+atn:
+[4, 0, 270, 2660, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 3 [...]
\ No newline at end of file
diff --git a/text2gremlin/AST_Text2Gremlin/base/gremlin/GremlinLexer.py b/text2gremlin/AST_Text2Gremlin/base/gremlin/GremlinLexer.py
new file mode 100644
index 00000000..75d8b68b
--- /dev/null
+++ b/text2gremlin/AST_Text2Gremlin/base/gremlin/GremlinLexer.py
@@ -0,0 +1,1598 @@
+# Generated from /root/lzj/ospp/Gremlin_Antlr4/Gremlin.g4 by ANTLR 4.13.1
+from antlr4 import *
+from io import StringIO
+import sys
+if sys.version_info[1] > 5:
+    from typing import TextIO
+else:
+    from typing.io import TextIO
+
+
+def serializedATN():
+    return [
+        4,0,270,2660,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,
+        5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,
+        2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,
+        7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,
+        2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,
+        7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,
+        2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,
+        7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,
+        2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,
+        7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,
+        2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,
+        7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,
+        2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,
+        7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,
+        2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,
+        7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,
+        7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,
+        2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,
+        7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,
+        2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,
+        7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,
+        2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135,2,136,
+        7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141,
+        2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146,2,147,
+        7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152,
+        2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,
+        7,158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,
+        2,164,7,164,2,165,7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,169,
+        7,169,2,170,7,170,2,171,7,171,2,172,7,172,2,173,7,173,2,174,7,174,
+        2,175,7,175,2,176,7,176,2,177,7,177,2,178,7,178,2,179,7,179,2,180,
+        7,180,2,181,7,181,2,182,7,182,2,183,7,183,2,184,7,184,2,185,7,185,
+        2,186,7,186,2,187,7,187,2,188,7,188,2,189,7,189,2,190,7,190,2,191,
+        7,191,2,192,7,192,2,193,7,193,2,194,7,194,2,195,7,195,2,196,7,196,
+        2,197,7,197,2,198,7,198,2,199,7,199,2,200,7,200,2,201,7,201,2,202,
+        7,202,2,203,7,203,2,204,7,204,2,205,7,205,2,206,7,206,2,207,7,207,
+        2,208,7,208,2,209,7,209,2,210,7,210,2,211,7,211,2,212,7,212,2,213,
+        7,213,2,214,7,214,2,215,7,215,2,216,7,216,2,217,7,217,2,218,7,218,
+        2,219,7,219,2,220,7,220,2,221,7,221,2,222,7,222,2,223,7,223,2,224,
+        7,224,2,225,7,225,2,226,7,226,2,227,7,227,2,228,7,228,2,229,7,229,
+        2,230,7,230,2,231,7,231,2,232,7,232,2,233,7,233,2,234,7,234,2,235,
+        7,235,2,236,7,236,2,237,7,237,2,238,7,238,2,239,7,239,2,240,7,240,
+        2,241,7,241,2,242,7,242,2,243,7,243,2,244,7,244,2,245,7,245,2,246,
+        7,246,2,247,7,247,2,248,7,248,2,249,7,249,2,250,7,250,2,251,7,251,
+        2,252,7,252,2,253,7,253,2,254,7,254,2,255,7,255,2,256,7,256,2,257,
+        7,257,2,258,7,258,2,259,7,259,2,260,7,260,2,261,7,261,2,262,7,262,
+        2,263,7,263,2,264,7,264,2,265,7,265,2,266,7,266,2,267,7,267,2,268,
+        7,268,2,269,7,269,2,270,7,270,2,271,7,271,2,272,7,272,2,273,7,273,
+        2,274,7,274,2,275,7,275,2,276,7,276,2,277,7,277,2,278,7,278,2,279,
+        7,279,2,280,7,280,2,281,7,281,2,282,7,282,2,283,7,283,2,284,7,284,
+        2,285,7,285,2,286,7,286,2,287,7,287,2,288,7,288,2,289,7,289,2,290,
+        7,290,2,291,7,291,2,292,7,292,2,293,7,293,2,294,7,294,2,295,7,295,
+        2,296,7,296,2,297,7,297,2,298,7,298,2,299,7,299,2,300,7,300,2,301,
+        7,301,2,302,7,302,2,303,7,303,2,304,7,304,2,305,7,305,2,306,7,306,
+        2,307,7,307,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,
+        1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,4,
+        1,4,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,7,1,7,
+        1,7,1,7,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,10,
+        1,10,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1,12,1,12,1,12,
+        1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,14,
+        1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,
+        1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,17,1,17,
+        1,18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,19,1,20,1,20,
+        1,20,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,22,1,22,
+        1,22,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,25,1,25,1,25,
+        1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,
+        1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,28,
+        1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,30,1,30,
+        1,30,1,30,1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,
+        1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,33,1,33,1,33,
+        1,33,1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,35,
+        1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,
+        1,35,1,35,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,
+        1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,37,1,37,
+        1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,
+        1,38,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,39,1,39,1,39,1,40,1,40,
+        1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,41,
+        1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,
+        1,43,1,43,1,43,1,43,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,
+        1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,46,1,46,1,46,1,46,
+        1,46,1,47,1,47,1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,49,
+        1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,50,1,50,1,50,
+        1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,51,1,51,
+        1,51,1,51,1,51,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,52,1,53,
+        1,53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,55,1,55,1,55,1,56,1,56,
+        1,57,1,57,1,57,1,57,1,57,1,57,1,58,1,58,1,58,1,58,1,58,1,58,1,58,
+        1,58,1,58,1,58,1,58,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,60,
+        1,60,1,60,1,60,1,60,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,
+        1,61,1,61,1,62,1,62,1,62,1,63,1,63,1,63,1,63,1,63,1,63,1,63,1,63,
+        1,64,1,64,1,64,1,64,1,64,1,65,1,65,1,65,1,65,1,65,1,65,1,66,1,66,
+        1,66,1,66,1,66,1,66,1,66,1,67,1,67,1,67,1,67,1,67,1,67,1,68,1,68,
+        1,68,1,68,1,68,1,68,1,68,1,68,1,69,1,69,1,69,1,69,1,69,1,70,1,70,
+        1,70,1,70,1,70,1,70,1,70,1,71,1,71,1,71,1,71,1,71,1,72,1,72,1,72,
+        1,72,1,72,1,72,1,72,1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,75,1,75,
+        1,75,1,75,1,75,1,75,1,75,1,75,1,76,1,76,1,76,1,76,1,76,1,76,1,76,
+        1,76,1,76,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,
+        1,78,1,78,1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,79,1,79,1,80,1,80,
+        1,80,1,80,1,81,1,81,1,81,1,81,1,81,1,81,1,82,1,82,1,82,1,82,1,82,
+        1,82,1,82,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,84,1,84,
+        1,84,1,84,1,84,1,84,1,84,1,84,1,85,1,85,1,85,1,85,1,85,1,85,1,85,
+        1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,87,
+        1,87,1,88,1,88,1,88,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,
+        1,90,1,90,1,90,1,90,1,91,1,91,1,91,1,92,1,92,1,92,1,93,1,93,1,93,
+        1,93,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,
+        1,94,1,95,1,95,1,95,1,95,1,95,1,96,1,96,1,96,1,96,1,96,1,96,1,96,
+        1,96,1,97,1,97,1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,98,1,98,
+        1,98,1,98,1,98,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,100,1,100,1,
+        100,1,100,1,100,1,100,1,100,1,101,1,101,1,101,1,101,1,101,1,101,
+        1,101,1,101,1,101,1,101,1,102,1,102,1,102,1,102,1,103,1,103,1,103,
+        1,104,1,104,1,104,1,105,1,105,1,105,1,106,1,106,1,106,1,106,1,106,
+        1,106,1,106,1,106,1,107,1,107,1,107,1,107,1,108,1,108,1,108,1,108,
+        1,108,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,110,1,110,1,110,
+        1,110,1,110,1,110,1,111,1,111,1,111,1,111,1,111,1,112,1,112,1,112,
+        1,112,1,112,1,112,1,112,1,113,1,113,1,113,1,113,1,113,1,113,1,114,
+        1,114,1,114,1,114,1,114,1,115,1,115,1,115,1,115,1,115,1,115,1,116,
+        1,116,1,116,1,116,1,116,1,116,1,117,1,117,1,117,1,118,1,118,1,118,
+        1,118,1,119,1,119,1,119,1,119,1,119,1,119,1,120,1,120,1,120,1,120,
+        1,121,1,121,1,121,1,121,1,121,1,121,1,122,1,122,1,122,1,122,1,122,
+        1,123,1,123,1,123,1,123,1,124,1,124,1,124,1,124,1,124,1,124,1,124,
+        1,124,1,124,1,124,1,124,1,124,1,125,1,125,1,125,1,125,1,125,1,126,
+        1,126,1,126,1,126,1,126,1,126,1,127,1,127,1,127,1,127,1,127,1,127,
+        1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,
+        1,129,1,129,1,129,1,130,1,130,1,130,1,130,1,131,1,131,1,131,1,131,
+        1,131,1,131,1,131,1,132,1,132,1,132,1,132,1,132,1,132,1,133,1,133,
+        1,133,1,133,1,133,1,133,1,134,1,134,1,134,1,134,1,134,1,135,1,135,
+        1,135,1,135,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,137,1,137,
+        1,137,1,137,1,137,1,138,1,138,1,138,1,138,1,138,1,139,1,139,1,139,
+        1,139,1,139,1,139,1,139,1,139,1,139,1,140,1,140,1,140,1,140,1,140,
+        1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,141,1,141,
+        1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,1,141,
+        1,141,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,
+        1,142,1,142,1,142,1,142,1,142,1,142,1,143,1,143,1,143,1,143,1,144,
+        1,144,1,144,1,144,1,145,1,145,1,145,1,145,1,146,1,146,1,146,1,146,
+        1,146,1,146,1,146,1,146,1,146,1,147,1,147,1,147,1,147,1,147,1,148,
+        1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,149,1,149,1,149,
+        1,149,1,149,1,149,1,149,1,149,1,150,1,150,1,150,1,150,1,150,1,150,
+        1,150,1,150,1,150,1,151,1,151,1,151,1,151,1,151,1,151,1,151,1,152,
+        1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,153,1,153,1,153,
+        1,153,1,153,1,153,1,154,1,154,1,154,1,154,1,154,1,154,1,155,1,155,
+        1,155,1,156,1,156,1,156,1,156,1,156,1,156,1,156,1,157,1,157,1,157,
+        1,157,1,158,1,158,1,158,1,158,1,159,1,159,1,159,1,159,1,159,1,160,
+        1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,161,1,161,1,161,1,161,
+        1,161,1,162,1,162,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,
+        1,163,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,165,
+        1,165,1,165,1,165,1,165,1,166,1,166,1,166,1,166,1,166,1,166,1,166,
+        1,166,1,166,1,166,1,166,1,166,1,166,1,167,1,167,1,167,1,167,1,167,
+        1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,168,1,168,1,168,
+        1,168,1,168,1,169,1,169,1,169,1,169,1,170,1,170,1,170,1,170,1,170,
+        1,170,1,170,1,170,1,171,1,171,1,171,1,171,1,171,1,171,1,171,1,171,
+        1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,
+        1,173,1,173,1,173,1,173,1,173,1,173,1,173,1,173,1,173,1,173,1,173,
+        1,173,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,1,174,
+        1,174,1,174,1,174,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,175,
+        1,175,1,176,1,176,1,176,1,176,1,176,1,176,1,176,1,176,1,177,1,177,
+        1,177,1,177,1,177,1,177,1,178,1,178,1,178,1,178,1,178,1,179,1,179,
+        1,179,1,179,1,179,1,179,1,179,1,180,1,180,1,180,1,180,1,180,1,180,
+        1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,180,1,181,
+        1,181,1,181,1,181,1,181,1,181,1,182,1,182,1,182,1,182,1,182,1,182,
+        1,182,1,182,1,183,1,183,1,183,1,183,1,183,1,183,1,183,1,184,1,184,
+        1,184,1,184,1,184,1,184,1,184,1,184,1,185,1,185,1,185,1,185,1,185,
+        1,185,1,185,1,185,1,185,1,186,1,186,1,186,1,186,1,186,1,186,1,187,
+        1,187,1,187,1,187,1,187,1,188,1,188,1,188,1,188,1,188,1,188,1,188,
+        1,189,1,189,1,189,1,189,1,189,1,189,1,190,1,190,1,190,1,190,1,190,
+        1,190,1,190,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,192,1,192,
+        1,192,1,192,1,193,1,193,1,193,1,193,1,193,1,193,1,193,1,193,1,193,
+        1,193,1,193,1,193,1,193,1,194,1,194,1,194,1,194,1,194,1,194,1,194,
+        1,194,1,194,1,194,1,194,1,194,1,194,1,195,1,195,1,195,1,195,1,195,
+        1,195,1,195,1,195,1,196,1,196,1,196,1,196,1,196,1,196,1,196,1,196,
+        1,196,1,196,1,196,1,197,1,197,1,197,1,197,1,197,1,197,1,197,1,197,
+        1,197,1,197,1,197,1,198,1,198,1,198,1,198,1,198,1,198,1,198,1,199,
+        1,199,1,199,1,199,1,199,1,200,1,200,1,200,1,200,1,200,1,200,1,201,
+        1,201,1,201,1,201,1,201,1,201,1,201,1,201,1,201,1,201,1,201,1,201,
+        1,201,1,202,1,202,1,202,1,202,1,202,1,202,1,203,1,203,1,203,1,203,
+        1,203,1,203,1,203,1,203,1,203,1,204,1,204,1,204,1,204,1,204,1,204,
+        1,204,1,204,1,204,1,204,1,205,1,205,1,205,1,205,1,206,1,206,1,206,
+        1,206,1,206,1,206,1,206,1,206,1,207,1,207,1,208,1,208,1,208,1,208,
+        1,208,1,209,1,209,1,209,1,209,1,209,1,209,1,209,1,210,1,210,1,210,
+        1,210,1,210,1,210,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,211,
+        1,211,1,211,1,212,1,212,1,212,1,212,1,212,1,212,1,213,1,213,1,213,
+        1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,215,
+        1,215,1,215,1,215,1,215,1,215,1,215,1,216,1,216,1,216,1,216,1,216,
+        1,216,1,216,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,218,
+        1,218,1,218,1,218,1,218,1,218,1,219,1,219,1,219,1,219,1,219,1,219,
+        1,219,1,219,1,219,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,
+        1,221,1,221,1,221,1,221,1,222,1,222,1,222,1,222,1,223,1,223,1,223,
+        1,223,1,223,1,224,1,224,1,224,1,224,1,224,1,225,1,225,1,225,1,225,
+        1,225,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,226,1,227,1,227,
+        1,227,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,229,1,229,1,229,
+        1,229,1,229,1,229,1,230,1,230,1,230,1,230,1,230,1,230,1,231,1,231,
+        1,231,1,231,1,231,1,232,1,232,1,233,1,233,1,233,1,233,1,233,1,233,
+        1,233,1,233,1,233,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,235,
+        1,235,1,235,1,235,1,235,1,235,1,236,1,236,1,236,1,236,1,236,1,236,
+        1,236,1,237,1,237,1,237,1,237,1,237,1,237,1,238,1,238,1,238,1,238,
+        1,238,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,240,
+        1,240,1,240,1,240,1,240,1,240,1,240,1,241,1,241,1,241,1,241,1,241,
+        1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,242,1,242,1,242,1,242,
+        1,242,1,242,1,242,1,242,1,243,1,243,1,243,1,243,1,243,1,243,1,243,
+        1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,243,
+        1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,245,1,245,
+        1,245,1,245,1,245,1,245,1,245,1,245,1,245,1,246,1,246,1,246,1,246,
+        1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,
+        1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,247,
+        1,247,1,247,1,247,1,247,1,248,1,248,1,248,1,248,1,248,1,248,1,249,
+        1,249,1,249,1,249,1,249,1,249,1,249,1,250,3,250,2377,8,250,1,250,
+        1,250,3,250,2381,8,250,1,250,1,250,3,250,2385,8,250,1,250,3,250,
+        2388,8,250,1,251,1,251,3,251,2392,8,251,1,252,1,252,3,252,2396,8,
+        252,1,253,1,253,3,253,2400,8,253,1,254,1,254,1,255,1,255,1,255,3,
+        255,2407,8,255,1,255,1,255,1,255,3,255,2412,8,255,3,255,2414,8,255,
+        1,256,1,256,3,256,2418,8,256,1,256,3,256,2421,8,256,1,257,1,257,
+        3,257,2425,8,257,1,258,1,258,1,259,4,259,2430,8,259,11,259,12,259,
+        2431,1,260,1,260,3,260,2436,8,260,1,261,4,261,2439,8,261,11,261,
+        12,261,2440,1,262,1,262,1,262,1,262,1,263,1,263,3,263,2449,8,263,
+        1,263,3,263,2452,8,263,1,264,1,264,1,265,4,265,2457,8,265,11,265,
+        12,265,2458,1,266,1,266,3,266,2463,8,266,1,267,1,267,3,267,2467,
+        8,267,1,267,1,267,1,268,1,268,3,268,2473,8,268,1,268,3,268,2476,
+        8,268,1,269,1,269,1,270,4,270,2481,8,270,11,270,12,270,2482,1,271,
+        1,271,3,271,2487,8,271,1,272,3,272,2490,8,272,1,272,1,272,1,273,
+        1,273,1,273,1,273,3,273,2498,8,273,1,273,3,273,2501,8,273,1,273,
+        3,273,2504,8,273,1,273,1,273,1,273,3,273,2509,8,273,1,274,1,274,
+        1,274,1,275,1,275,1,276,3,276,2517,8,276,1,276,1,276,1,277,1,277,
+        1,278,1,278,1,279,3,279,2526,8,279,1,279,1,279,1,280,1,280,1,280,
+        1,280,1,280,1,280,1,280,1,280,3,280,2538,8,280,1,281,1,281,1,281,
+        1,281,3,281,2544,8,281,1,282,4,282,2547,8,282,11,282,12,282,2548,
+        1,283,1,283,1,283,3,283,2554,8,283,1,284,4,284,2557,8,284,11,284,
+        12,284,2558,1,285,1,285,1,285,3,285,2564,8,285,1,286,1,286,3,286,
+        2568,8,286,1,286,1,286,1,287,1,287,1,287,1,287,3,287,2576,8,287,
+        1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,288,1,288,
+        3,288,2589,8,288,1,289,1,289,1,290,1,290,4,290,2595,8,290,11,290,
+        12,290,2596,1,290,1,290,1,290,1,290,1,290,1,291,1,291,1,292,1,292,
+        1,293,1,293,1,294,1,294,1,295,1,295,1,296,1,296,1,297,1,297,1,298,
+        1,298,1,299,1,299,1,300,1,300,1,301,1,301,1,302,1,302,1,302,1,303,
+        4,303,2630,8,303,11,303,12,303,2631,1,303,1,303,1,304,1,304,1,304,
+        1,304,5,304,2640,8,304,10,304,12,304,2643,9,304,1,304,1,304,1,305,
+        1,305,5,305,2649,8,305,10,305,12,305,2652,9,305,1,306,3,306,2655,
+        8,306,1,307,1,307,3,307,2659,8,307,0,0,308,1,1,3,2,5,3,7,4,9,5,11,
+        6,13,7,15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16,33,17,
+        35,18,37,19,39,20,41,21,43,22,45,23,47,24,49,25,51,26,53,27,55,28,
+        57,29,59,30,61,31,63,32,65,33,67,34,69,35,71,36,73,37,75,38,77,39,
+        79,40,81,41,83,42,85,43,87,44,89,45,91,46,93,47,95,48,97,49,99,50,
+        101,51,103,52,105,53,107,54,109,55,111,56,113,57,115,58,117,59,119,
+        60,121,61,123,62,125,63,127,64,129,65,131,66,133,67,135,68,137,69,
+        139,70,141,71,143,72,145,73,147,74,149,75,151,76,153,77,155,78,157,
+        79,159,80,161,81,163,82,165,83,167,84,169,85,171,86,173,87,175,88,
+        177,89,179,90,181,91,183,92,185,93,187,94,189,95,191,96,193,97,195,
+        98,197,99,199,100,201,101,203,102,205,103,207,104,209,105,211,106,
+        213,107,215,108,217,109,219,110,221,111,223,112,225,113,227,114,
+        229,115,231,116,233,117,235,118,237,119,239,120,241,121,243,122,
+        245,123,247,124,249,125,251,126,253,127,255,128,257,129,259,130,
+        261,131,263,132,265,133,267,134,269,135,271,136,273,137,275,138,
+        277,139,279,140,281,141,283,142,285,143,287,144,289,145,291,146,
+        293,147,295,148,297,149,299,150,301,151,303,152,305,153,307,154,
+        309,155,311,156,313,157,315,158,317,159,319,160,321,161,323,162,
+        325,163,327,164,329,165,331,166,333,167,335,168,337,169,339,170,
+        341,171,343,172,345,173,347,174,349,175,351,176,353,177,355,178,
+        357,179,359,180,361,181,363,182,365,183,367,184,369,185,371,186,
+        373,187,375,188,377,189,379,190,381,191,383,192,385,193,387,194,
+        389,195,391,196,393,197,395,198,397,199,399,200,401,201,403,202,
+        405,203,407,204,409,205,411,206,413,207,415,208,417,209,419,210,
+        421,211,423,212,425,213,427,214,429,215,431,216,433,217,435,218,
+        437,219,439,220,441,221,443,222,445,223,447,224,449,225,451,226,
+        453,227,455,228,457,229,459,230,461,231,463,232,465,233,467,234,
+        469,235,471,236,473,237,475,238,477,239,479,240,481,241,483,242,
+        485,243,487,244,489,245,491,246,493,247,495,248,497,249,499,250,
+        501,251,503,0,505,0,507,0,509,0,511,0,513,0,515,0,517,0,519,0,521,
+        0,523,0,525,0,527,0,529,0,531,0,533,0,535,0,537,0,539,0,541,0,543,
+        0,545,252,547,0,549,0,551,0,553,0,555,0,557,0,559,253,561,254,563,
+        255,565,0,567,0,569,0,571,0,573,0,575,0,577,0,579,0,581,0,583,256,
+        585,257,587,258,589,259,591,260,593,261,595,262,597,263,599,264,
+        601,265,603,266,605,267,607,268,609,269,611,270,613,0,615,0,1,0,
+        16,10,0,66,66,73,73,76,76,78,78,83,83,98,98,105,105,108,108,110,
+        110,115,115,1,0,49,57,2,0,88,88,120,120,3,0,48,57,65,70,97,102,1,
+        0,48,55,2,0,69,69,101,101,2,0,43,43,45,45,6,0,68,68,70,70,77,77,
+        100,100,102,102,109,109,2,0,34,34,92,92,2,0,39,39,92,92,8,0,34,34,
+        39,39,92,92,98,98,102,102,110,110,114,114,116,116,1,0,48,51,3,0,
+        9,10,12,13,32,32,2,0,10,10,13,13,402,0,36,36,65,90,95,95,97,122,
+        162,165,170,170,181,181,186,186,192,214,216,246,248,705,710,721,
+        736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,
+        904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,
+        1369,1377,1415,1423,1423,1488,1514,1520,1522,1547,1547,1568,1610,
+        1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,
+        1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,
+        2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,
+        2154,2208,2228,2230,2237,2308,2361,2365,2365,2384,2384,2392,2401,
+        2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,
+        2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2547,2555,2556,
+        2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,
+        2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,
+        2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2801,
+        2801,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,
+        2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,
+        2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,
+        2984,2986,2990,3001,3024,3024,3065,3065,3077,3084,3086,3088,3090,
+        3112,3114,3129,3133,3133,3160,3162,3168,3169,3200,3200,3205,3212,
+        3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,
+        3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,
+        3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,
+        3517,3520,3526,3585,3632,3634,3635,3647,3654,3713,3714,3716,3716,
+        3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,
+        3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,
+        3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,
+        4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,
+        4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,
+        4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,
+        4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,
+        4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,
+        5743,5759,5761,5786,5792,5866,5870,5880,5888,5900,5902,5905,5920,
+        5937,5952,5969,5984,5996,5998,6000,6016,6067,6103,6103,6107,6108,
+        6176,6263,6272,6276,6279,6312,6314,6314,6320,6389,6400,6430,6480,
+        6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,
+        6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,
+        7247,7258,7293,7296,7304,7401,7404,7406,7409,7413,7414,7424,7615,
+        7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,
+        8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,
+        8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8255,
+        8256,8276,8276,8305,8305,8319,8319,8336,8348,8352,8383,8450,8450,
+        8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,
+        8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,
+        11264,11310,11312,11358,11360,11492,11499,11502,11506,11507,11520,
+        11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,
+        11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,
+        11726,11728,11734,11736,11742,11823,11823,12293,12295,12321,12329,
+        12337,12341,12344,12348,12353,12438,12445,12447,12449,12538,12540,
+        12543,12549,12590,12593,12686,12704,12730,12784,12799,13312,19893,
+        19968,40938,40960,42124,42192,42237,42240,42508,42512,42527,42538,
+        42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,
+        42891,42926,42928,42935,42999,43009,43011,43013,43015,43018,43020,
+        43042,43064,43064,43072,43123,43138,43187,43250,43255,43259,43259,
+        43261,43261,43274,43301,43312,43334,43360,43388,43396,43442,43471,
+        43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,
+        43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,
+        43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,
+        43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,
+        43822,43824,43866,43868,43877,43888,44002,44032,55203,55216,55238,
+        55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,
+        64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,
+        64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,
+        65020,65075,65076,65101,65103,65129,65129,65136,65140,65142,65276,
+        65284,65284,65313,65338,65343,65343,65345,65370,65382,65470,65474,
+        65479,65482,65487,65490,65495,65498,65500,65504,65505,65509,65510,
+        228,0,48,57,127,159,173,173,768,879,1155,1159,1425,1469,1471,1471,
+        1473,1474,1476,1477,1479,1479,1536,1541,1552,1562,1564,1564,1611,
+        1641,1648,1648,1750,1757,1759,1764,1767,1768,1770,1773,1776,1785,
+        1807,1807,1809,1809,1840,1866,1958,1968,1984,1993,2027,2035,2070,
+        2073,2075,2083,2085,2087,2089,2093,2137,2139,2260,2307,2362,2364,
+        2366,2383,2385,2391,2402,2403,2406,2415,2433,2435,2492,2492,2494,
+        2500,2503,2504,2507,2509,2519,2519,2530,2531,2534,2543,2561,2563,
+        2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2662,2673,2677,
+        2677,2689,2691,2748,2748,2750,2757,2759,2761,2763,2765,2786,2787,
+        2790,2799,2810,2815,2817,2819,2876,2876,2878,2884,2887,2888,2891,
+        2893,2902,2903,2914,2915,2918,2927,2946,2946,3006,3010,3014,3016,
+        3018,3021,3031,3031,3046,3055,3072,3075,3134,3140,3142,3144,3146,
+        3149,3157,3158,3170,3171,3174,3183,3201,3203,3260,3260,3262,3268,
+        3270,3272,3274,3277,3285,3286,3298,3299,3302,3311,3328,3331,3387,
+        3388,3390,3396,3398,3400,3402,3405,3415,3415,3426,3427,3430,3439,
+        3458,3459,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,
+        3571,3633,3633,3636,3642,3655,3662,3664,3673,3761,3761,3764,3769,
+        3771,3772,3784,3789,3792,3801,3864,3865,3872,3881,3893,3893,3895,
+        3895,3897,3897,3902,3903,3953,3972,3974,3975,3981,3991,3993,4028,
+        4038,4038,4139,4158,4160,4169,4182,4185,4190,4192,4194,4196,4199,
+        4205,4209,4212,4226,4237,4239,4253,4957,4959,5906,5908,5938,5940,
+        5970,5971,6002,6003,6068,6099,6109,6109,6112,6121,6155,6158,6160,
+        6169,6277,6278,6313,6313,6432,6443,6448,6459,6470,6479,6608,6617,
+        6679,6683,6741,6750,6752,6780,6783,6793,6800,6809,6832,6845,6912,
+        6916,6964,6980,6992,7001,7019,7027,7040,7042,7073,7085,7088,7097,
+        7142,7155,7204,7223,7232,7241,7248,7257,7376,7378,7380,7400,7405,
+        7405,7410,7412,7415,7417,7616,7673,7675,7679,8203,8207,8234,8238,
+        8288,8292,8294,8303,8400,8412,8417,8417,8421,8432,11503,11505,11647,
+        11647,11744,11775,12330,12335,12441,12442,42528,42537,42607,42607,
+        42612,42621,42654,42655,42736,42737,43010,43010,43014,43014,43019,
+        43019,43043,43047,43136,43137,43188,43205,43216,43225,43232,43249,
+        43264,43273,43302,43309,43335,43347,43392,43395,43443,43456,43472,
+        43481,43493,43493,43504,43513,43561,43574,43587,43587,43596,43597,
+        43600,43609,43643,43645,43696,43696,43698,43700,43703,43704,43710,
+        43711,43713,43713,43755,43759,43765,43766,44003,44010,44012,44013,
+        44016,44025,64286,64286,65024,65039,65056,65071,65279,65279,65296,
+        65305,65529,65531,2672,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,
+        0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,
+        0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,
+        0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,
+        0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,
+        0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,
+        0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,
+        0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,
+        0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0,87,1,
+        0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,97,1,
+        0,0,0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,0,0,107,
+        1,0,0,0,0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,
+        0,117,1,0,0,0,0,119,1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,
+        0,0,0,0,127,1,0,0,0,0,129,1,0,0,0,0,131,1,0,0,0,0,133,1,0,0,0,0,
+        135,1,0,0,0,0,137,1,0,0,0,0,139,1,0,0,0,0,141,1,0,0,0,0,143,1,0,
+        0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149,1,0,0,0,0,151,1,0,0,0,0,153,
+        1,0,0,0,0,155,1,0,0,0,0,157,1,0,0,0,0,159,1,0,0,0,0,161,1,0,0,0,
+        0,163,1,0,0,0,0,165,1,0,0,0,0,167,1,0,0,0,0,169,1,0,0,0,0,171,1,
+        0,0,0,0,173,1,0,0,0,0,175,1,0,0,0,0,177,1,0,0,0,0,179,1,0,0,0,0,
+        181,1,0,0,0,0,183,1,0,0,0,0,185,1,0,0,0,0,187,1,0,0,0,0,189,1,0,
+        0,0,0,191,1,0,0,0,0,193,1,0,0,0,0,195,1,0,0,0,0,197,1,0,0,0,0,199,
+        1,0,0,0,0,201,1,0,0,0,0,203,1,0,0,0,0,205,1,0,0,0,0,207,1,0,0,0,
+        0,209,1,0,0,0,0,211,1,0,0,0,0,213,1,0,0,0,0,215,1,0,0,0,0,217,1,
+        0,0,0,0,219,1,0,0,0,0,221,1,0,0,0,0,223,1,0,0,0,0,225,1,0,0,0,0,
+        227,1,0,0,0,0,229,1,0,0,0,0,231,1,0,0,0,0,233,1,0,0,0,0,235,1,0,
+        0,0,0,237,1,0,0,0,0,239,1,0,0,0,0,241,1,0,0,0,0,243,1,0,0,0,0,245,
+        1,0,0,0,0,247,1,0,0,0,0,249,1,0,0,0,0,251,1,0,0,0,0,253,1,0,0,0,
+        0,255,1,0,0,0,0,257,1,0,0,0,0,259,1,0,0,0,0,261,1,0,0,0,0,263,1,
+        0,0,0,0,265,1,0,0,0,0,267,1,0,0,0,0,269,1,0,0,0,0,271,1,0,0,0,0,
+        273,1,0,0,0,0,275,1,0,0,0,0,277,1,0,0,0,0,279,1,0,0,0,0,281,1,0,
+        0,0,0,283,1,0,0,0,0,285,1,0,0,0,0,287,1,0,0,0,0,289,1,0,0,0,0,291,
+        1,0,0,0,0,293,1,0,0,0,0,295,1,0,0,0,0,297,1,0,0,0,0,299,1,0,0,0,
+        0,301,1,0,0,0,0,303,1,0,0,0,0,305,1,0,0,0,0,307,1,0,0,0,0,309,1,
+        0,0,0,0,311,1,0,0,0,0,313,1,0,0,0,0,315,1,0,0,0,0,317,1,0,0,0,0,
+        319,1,0,0,0,0,321,1,0,0,0,0,323,1,0,0,0,0,325,1,0,0,0,0,327,1,0,
+        0,0,0,329,1,0,0,0,0,331,1,0,0,0,0,333,1,0,0,0,0,335,1,0,0,0,0,337,
+        1,0,0,0,0,339,1,0,0,0,0,341,1,0,0,0,0,343,1,0,0,0,0,345,1,0,0,0,
+        0,347,1,0,0,0,0,349,1,0,0,0,0,351,1,0,0,0,0,353,1,0,0,0,0,355,1,
+        0,0,0,0,357,1,0,0,0,0,359,1,0,0,0,0,361,1,0,0,0,0,363,1,0,0,0,0,
+        365,1,0,0,0,0,367,1,0,0,0,0,369,1,0,0,0,0,371,1,0,0,0,0,373,1,0,
+        0,0,0,375,1,0,0,0,0,377,1,0,0,0,0,379,1,0,0,0,0,381,1,0,0,0,0,383,
+        1,0,0,0,0,385,1,0,0,0,0,387,1,0,0,0,0,389,1,0,0,0,0,391,1,0,0,0,
+        0,393,1,0,0,0,0,395,1,0,0,0,0,397,1,0,0,0,0,399,1,0,0,0,0,401,1,
+        0,0,0,0,403,1,0,0,0,0,405,1,0,0,0,0,407,1,0,0,0,0,409,1,0,0,0,0,
+        411,1,0,0,0,0,413,1,0,0,0,0,415,1,0,0,0,0,417,1,0,0,0,0,419,1,0,
+        0,0,0,421,1,0,0,0,0,423,1,0,0,0,0,425,1,0,0,0,0,427,1,0,0,0,0,429,
+        1,0,0,0,0,431,1,0,0,0,0,433,1,0,0,0,0,435,1,0,0,0,0,437,1,0,0,0,
+        0,439,1,0,0,0,0,441,1,0,0,0,0,443,1,0,0,0,0,445,1,0,0,0,0,447,1,
+        0,0,0,0,449,1,0,0,0,0,451,1,0,0,0,0,453,1,0,0,0,0,455,1,0,0,0,0,
+        457,1,0,0,0,0,459,1,0,0,0,0,461,1,0,0,0,0,463,1,0,0,0,0,465,1,0,
+        0,0,0,467,1,0,0,0,0,469,1,0,0,0,0,471,1,0,0,0,0,473,1,0,0,0,0,475,
+        1,0,0,0,0,477,1,0,0,0,0,479,1,0,0,0,0,481,1,0,0,0,0,483,1,0,0,0,
+        0,485,1,0,0,0,0,487,1,0,0,0,0,489,1,0,0,0,0,491,1,0,0,0,0,493,1,
+        0,0,0,0,495,1,0,0,0,0,497,1,0,0,0,0,499,1,0,0,0,0,501,1,0,0,0,0,
+        545,1,0,0,0,0,559,1,0,0,0,0,561,1,0,0,0,0,563,1,0,0,0,0,583,1,0,
+        0,0,0,585,1,0,0,0,0,587,1,0,0,0,0,589,1,0,0,0,0,591,1,0,0,0,0,593,
+        1,0,0,0,0,595,1,0,0,0,0,597,1,0,0,0,0,599,1,0,0,0,0,601,1,0,0,0,
+        0,603,1,0,0,0,0,605,1,0,0,0,0,607,1,0,0,0,0,609,1,0,0,0,0,611,1,
+        0,0,0,1,617,1,0,0,0,3,625,1,0,0,0,5,632,1,0,0,0,7,637,1,0,0,0,9,
+        642,1,0,0,0,11,652,1,0,0,0,13,656,1,0,0,0,15,660,1,0,0,0,17,664,
+        1,0,0,0,19,667,1,0,0,0,21,671,1,0,0,0,23,678,1,0,0,0,25,687,1,0,
+        0,0,27,694,1,0,0,0,29,702,1,0,0,0,31,710,1,0,0,0,33,716,1,0,0,0,
+        35,724,1,0,0,0,37,729,1,0,0,0,39,734,1,0,0,0,41,740,1,0,0,0,43,746,
+        1,0,0,0,45,753,1,0,0,0,47,756,1,0,0,0,49,761,1,0,0,0,51,765,1,0,
+        0,0,53,777,1,0,0,0,55,784,1,0,0,0,57,793,1,0,0,0,59,798,1,0,0,0,
+        61,805,1,0,0,0,63,813,1,0,0,0,65,820,1,0,0,0,67,830,1,0,0,0,69,837,
+        1,0,0,0,71,845,1,0,0,0,73,864,1,0,0,0,75,883,1,0,0,0,77,892,1,0,
+        0,0,79,903,1,0,0,0,81,909,1,0,0,0,83,920,1,0,0,0,85,924,1,0,0,0,
+        87,932,1,0,0,0,89,941,1,0,0,0,91,950,1,0,0,0,93,959,1,0,0,0,95,964,
+        1,0,0,0,97,970,1,0,0,0,99,975,1,0,0,0,101,986,1,0,0,0,103,996,1,
+        0,0,0,105,1005,1,0,0,0,107,1014,1,0,0,0,109,1018,1,0,0,0,111,1023,
+        1,0,0,0,113,1026,1,0,0,0,115,1028,1,0,0,0,117,1034,1,0,0,0,119,1045,
+        1,0,0,0,121,1053,1,0,0,0,123,1058,1,0,0,0,125,1069,1,0,0,0,127,1072,
+        1,0,0,0,129,1080,1,0,0,0,131,1085,1,0,0,0,133,1091,1,0,0,0,135,1098,
+        1,0,0,0,137,1104,1,0,0,0,139,1112,1,0,0,0,141,1117,1,0,0,0,143,1124,
+        1,0,0,0,145,1129,1,0,0,0,147,1136,1,0,0,0,149,1139,1,0,0,0,151,1143,
+        1,0,0,0,153,1151,1,0,0,0,155,1160,1,0,0,0,157,1171,1,0,0,0,159,1177,
+        1,0,0,0,161,1182,1,0,0,0,163,1186,1,0,0,0,165,1192,1,0,0,0,167,1199,
+        1,0,0,0,169,1208,1,0,0,0,171,1216,1,0,0,0,173,1223,1,0,0,0,175,1232,
+        1,0,0,0,177,1237,1,0,0,0,179,1240,1,0,0,0,181,1249,1,0,0,0,183,1253,
+        1,0,0,0,185,1256,1,0,0,0,187,1259,1,0,0,0,189,1263,1,0,0,0,191,1276,
+        1,0,0,0,193,1281,1,0,0,0,195,1289,1,0,0,0,197,1295,1,0,0,0,199,1304,
+        1,0,0,0,201,1311,1,0,0,0,203,1318,1,0,0,0,205,1328,1,0,0,0,207,1332,
+        1,0,0,0,209,1335,1,0,0,0,211,1338,1,0,0,0,213,1341,1,0,0,0,215,1349,
+        1,0,0,0,217,1353,1,0,0,0,219,1358,1,0,0,0,221,1365,1,0,0,0,223,1371,
+        1,0,0,0,225,1376,1,0,0,0,227,1383,1,0,0,0,229,1389,1,0,0,0,231,1394,
+        1,0,0,0,233,1400,1,0,0,0,235,1406,1,0,0,0,237,1409,1,0,0,0,239,1413,
+        1,0,0,0,241,1419,1,0,0,0,243,1423,1,0,0,0,245,1429,1,0,0,0,247,1434,
+        1,0,0,0,249,1438,1,0,0,0,251,1450,1,0,0,0,253,1455,1,0,0,0,255,1461,
+        1,0,0,0,257,1467,1,0,0,0,259,1474,1,0,0,0,261,1481,1,0,0,0,263,1485,
+        1,0,0,0,265,1492,1,0,0,0,267,1498,1,0,0,0,269,1504,1,0,0,0,271,1509,
+        1,0,0,0,273,1513,1,0,0,0,275,1520,1,0,0,0,277,1525,1,0,0,0,279,1530,
+        1,0,0,0,281,1539,1,0,0,0,283,1553,1,0,0,0,285,1567,1,0,0,0,287,1583,
+        1,0,0,0,289,1587,1,0,0,0,291,1591,1,0,0,0,293,1595,1,0,0,0,295,1604,
+        1,0,0,0,297,1609,1,0,0,0,299,1618,1,0,0,0,301,1626,1,0,0,0,303,1635,
+        1,0,0,0,305,1642,1,0,0,0,307,1651,1,0,0,0,309,1657,1,0,0,0,311,1663,
+        1,0,0,0,313,1666,1,0,0,0,315,1673,1,0,0,0,317,1677,1,0,0,0,319,1681,
+        1,0,0,0,321,1686,1,0,0,0,323,1694,1,0,0,0,325,1699,1,0,0,0,327,1701,
+        1,0,0,0,329,1710,1,0,0,0,331,1719,1,0,0,0,333,1724,1,0,0,0,335,1737,
+        1,0,0,0,337,1750,1,0,0,0,339,1755,1,0,0,0,341,1759,1,0,0,0,343,1767,
+        1,0,0,0,345,1775,1,0,0,0,347,1786,1,0,0,0,349,1798,1,0,0,0,351,1811,
+        1,0,0,0,353,1820,1,0,0,0,355,1828,1,0,0,0,357,1834,1,0,0,0,359,1839,
+        1,0,0,0,361,1846,1,0,0,0,363,1862,1,0,0,0,365,1868,1,0,0,0,367,1876,
+        1,0,0,0,369,1883,1,0,0,0,371,1891,1,0,0,0,373,1900,1,0,0,0,375,1906,
+        1,0,0,0,377,1911,1,0,0,0,379,1918,1,0,0,0,381,1924,1,0,0,0,383,1931,
+        1,0,0,0,385,1938,1,0,0,0,387,1942,1,0,0,0,389,1955,1,0,0,0,391,1968,
+        1,0,0,0,393,1976,1,0,0,0,395,1987,1,0,0,0,397,1998,1,0,0,0,399,2005,
+        1,0,0,0,401,2010,1,0,0,0,403,2016,1,0,0,0,405,2029,1,0,0,0,407,2035,
+        1,0,0,0,409,2044,1,0,0,0,411,2054,1,0,0,0,413,2058,1,0,0,0,415,2066,
+        1,0,0,0,417,2068,1,0,0,0,419,2073,1,0,0,0,421,2080,1,0,0,0,423,2086,
+        1,0,0,0,425,2096,1,0,0,0,427,2102,1,0,0,0,429,2105,1,0,0,0,431,2115,
+        1,0,0,0,433,2122,1,0,0,0,435,2129,1,0,0,0,437,2137,1,0,0,0,439,2143,
+        1,0,0,0,441,2152,1,0,0,0,443,2160,1,0,0,0,445,2164,1,0,0,0,447,2168,
+        1,0,0,0,449,2173,1,0,0,0,451,2178,1,0,0,0,453,2183,1,0,0,0,455,2191,
+        1,0,0,0,457,2194,1,0,0,0,459,2201,1,0,0,0,461,2207,1,0,0,0,463,2213,
+        1,0,0,0,465,2218,1,0,0,0,467,2220,1,0,0,0,469,2229,1,0,0,0,471,2236,
+        1,0,0,0,473,2242,1,0,0,0,475,2249,1,0,0,0,477,2255,1,0,0,0,479,2260,
+        1,0,0,0,481,2269,1,0,0,0,483,2276,1,0,0,0,485,2288,1,0,0,0,487,2296,
+        1,0,0,0,489,2314,1,0,0,0,491,2323,1,0,0,0,493,2332,1,0,0,0,495,2347,
+        1,0,0,0,497,2362,1,0,0,0,499,2368,1,0,0,0,501,2387,1,0,0,0,503,2389,
+        1,0,0,0,505,2393,1,0,0,0,507,2397,1,0,0,0,509,2401,1,0,0,0,511,2413,
+        1,0,0,0,513,2415,1,0,0,0,515,2424,1,0,0,0,517,2426,1,0,0,0,519,2429,
+        1,0,0,0,521,2435,1,0,0,0,523,2438,1,0,0,0,525,2442,1,0,0,0,527,2446,
+        1,0,0,0,529,2453,1,0,0,0,531,2456,1,0,0,0,533,2462,1,0,0,0,535,2464,
+        1,0,0,0,537,2470,1,0,0,0,539,2477,1,0,0,0,541,2480,1,0,0,0,543,2486,
+        1,0,0,0,545,2489,1,0,0,0,547,2508,1,0,0,0,549,2510,1,0,0,0,551,2513,
+        1,0,0,0,553,2516,1,0,0,0,555,2520,1,0,0,0,557,2522,1,0,0,0,559,2525,
+        1,0,0,0,561,2537,1,0,0,0,563,2543,1,0,0,0,565,2546,1,0,0,0,567,2553,
+        1,0,0,0,569,2556,1,0,0,0,571,2563,1,0,0,0,573,2565,1,0,0,0,575,2575,
+        1,0,0,0,577,2588,1,0,0,0,579,2590,1,0,0,0,581,2592,1,0,0,0,583,2603,
+        1,0,0,0,585,2605,1,0,0,0,587,2607,1,0,0,0,589,2609,1,0,0,0,591,2611,
+        1,0,0,0,593,2613,1,0,0,0,595,2615,1,0,0,0,597,2617,1,0,0,0,599,2619,
+        1,0,0,0,601,2621,1,0,0,0,603,2623,1,0,0,0,605,2625,1,0,0,0,607,2629,
+        1,0,0,0,609,2635,1,0,0,0,611,2646,1,0,0,0,613,2654,1,0,0,0,615,2658,
+        1,0,0,0,617,618,5,100,0,0,618,619,5,105,0,0,619,620,5,115,0,0,620,
+        621,5,99,0,0,621,622,5,97,0,0,622,623,5,114,0,0,623,624,5,100,0,
+        0,624,2,1,0,0,0,625,626,5,97,0,0,626,627,5,100,0,0,627,628,5,100,
+        0,0,628,629,5,65,0,0,629,630,5,108,0,0,630,631,5,108,0,0,631,4,1,
+        0,0,0,632,633,5,97,0,0,633,634,5,100,0,0,634,635,5,100,0,0,635,636,
+        5,69,0,0,636,6,1,0,0,0,637,638,5,97,0,0,638,639,5,100,0,0,639,640,
+        5,100,0,0,640,641,5,86,0,0,641,8,1,0,0,0,642,643,5,97,0,0,643,644,
+        5,103,0,0,644,645,5,103,0,0,645,646,5,114,0,0,646,647,5,101,0,0,
+        647,648,5,103,0,0,648,649,5,97,0,0,649,650,5,116,0,0,650,651,5,101,
+        0,0,651,10,1,0,0,0,652,653,5,97,0,0,653,654,5,108,0,0,654,655,5,
+        108,0,0,655,12,1,0,0,0,656,657,5,97,0,0,657,658,5,110,0,0,658,659,
+        5,100,0,0,659,14,1,0,0,0,660,661,5,97,0,0,661,662,5,110,0,0,662,
+        663,5,121,0,0,663,16,1,0,0,0,664,665,5,97,0,0,665,666,5,115,0,0,
+        666,18,1,0,0,0,667,668,5,97,0,0,668,669,5,115,0,0,669,670,5,99,0,
+        0,670,20,1,0,0,0,671,672,5,97,0,0,672,673,5,115,0,0,673,674,5,68,
+        0,0,674,675,5,97,0,0,675,676,5,116,0,0,676,677,5,101,0,0,677,22,
+        1,0,0,0,678,679,5,97,0,0,679,680,5,115,0,0,680,681,5,83,0,0,681,
+        682,5,116,0,0,682,683,5,114,0,0,683,684,5,105,0,0,684,685,5,110,
+        0,0,685,686,5,103,0,0,686,24,1,0,0,0,687,688,5,97,0,0,688,689,5,
+        115,0,0,689,690,5,115,0,0,690,691,5,105,0,0,691,692,5,103,0,0,692,
+        693,5,110,0,0,693,26,1,0,0,0,694,695,5,98,0,0,695,696,5,97,0,0,696,
+        697,5,114,0,0,697,698,5,114,0,0,698,699,5,105,0,0,699,700,5,101,
+        0,0,700,701,5,114,0,0,701,28,1,0,0,0,702,703,5,66,0,0,703,704,5,
+        97,0,0,704,705,5,114,0,0,705,706,5,114,0,0,706,707,5,105,0,0,707,
+        708,5,101,0,0,708,709,5,114,0,0,709,30,1,0,0,0,710,711,5,98,0,0,
+        711,712,5,101,0,0,712,713,5,103,0,0,713,714,5,105,0,0,714,715,5,
+        110,0,0,715,32,1,0,0,0,716,717,5,98,0,0,717,718,5,101,0,0,718,719,
+        5,116,0,0,719,720,5,119,0,0,720,721,5,101,0,0,721,722,5,101,0,0,
+        722,723,5,110,0,0,723,34,1,0,0,0,724,725,5,98,0,0,725,726,5,111,
+        0,0,726,727,5,116,0,0,727,728,5,104,0,0,728,36,1,0,0,0,729,730,5,
+        66,0,0,730,731,5,79,0,0,731,732,5,84,0,0,732,733,5,72,0,0,733,38,
+        1,0,0,0,734,735,5,98,0,0,735,736,5,111,0,0,736,737,5,116,0,0,737,
+        738,5,104,0,0,738,739,5,69,0,0,739,40,1,0,0,0,740,741,5,98,0,0,741,
+        742,5,111,0,0,742,743,5,116,0,0,743,744,5,104,0,0,744,745,5,86,0,
+        0,745,42,1,0,0,0,746,747,5,98,0,0,747,748,5,114,0,0,748,749,5,97,
+        0,0,749,750,5,110,0,0,750,751,5,99,0,0,751,752,5,104,0,0,752,44,
+        1,0,0,0,753,754,5,98,0,0,754,755,5,121,0,0,755,46,1,0,0,0,756,757,
+        5,99,0,0,757,758,5,97,0,0,758,759,5,108,0,0,759,760,5,108,0,0,760,
+        48,1,0,0,0,761,762,5,99,0,0,762,763,5,97,0,0,763,764,5,112,0,0,764,
+        50,1,0,0,0,765,766,5,67,0,0,766,767,5,97,0,0,767,768,5,114,0,0,768,
+        769,5,100,0,0,769,770,5,105,0,0,770,771,5,110,0,0,771,772,5,97,0,
+        0,772,773,5,108,0,0,773,774,5,105,0,0,774,775,5,116,0,0,775,776,
+        5,121,0,0,776,52,1,0,0,0,777,778,5,99,0,0,778,779,5,104,0,0,779,
+        780,5,111,0,0,780,781,5,111,0,0,781,782,5,115,0,0,782,783,5,101,
+        0,0,783,54,1,0,0,0,784,785,5,99,0,0,785,786,5,111,0,0,786,787,5,
+        97,0,0,787,788,5,108,0,0,788,789,5,101,0,0,789,790,5,115,0,0,790,
+        791,5,99,0,0,791,792,5,101,0,0,792,56,1,0,0,0,793,794,5,99,0,0,794,
+        795,5,111,0,0,795,796,5,105,0,0,796,797,5,110,0,0,797,58,1,0,0,0,
+        798,799,5,67,0,0,799,800,5,111,0,0,800,801,5,108,0,0,801,802,5,117,
+        0,0,802,803,5,109,0,0,803,804,5,110,0,0,804,60,1,0,0,0,805,806,5,
+        99,0,0,806,807,5,111,0,0,807,808,5,109,0,0,808,809,5,98,0,0,809,
+        810,5,105,0,0,810,811,5,110,0,0,811,812,5,101,0,0,812,62,1,0,0,0,
+        813,814,5,99,0,0,814,815,5,111,0,0,815,816,5,109,0,0,816,817,5,109,
+        0,0,817,818,5,105,0,0,818,819,5,116,0,0,819,64,1,0,0,0,820,821,5,
+        99,0,0,821,822,5,111,0,0,822,823,5,109,0,0,823,824,5,112,0,0,824,
+        825,5,111,0,0,825,826,5,110,0,0,826,827,5,101,0,0,827,828,5,110,
+        0,0,828,829,5,116,0,0,829,66,1,0,0,0,830,831,5,99,0,0,831,832,5,
+        111,0,0,832,833,5,110,0,0,833,834,5,99,0,0,834,835,5,97,0,0,835,
+        836,5,116,0,0,836,68,1,0,0,0,837,838,5,99,0,0,838,839,5,111,0,0,
+        839,840,5,110,0,0,840,841,5,106,0,0,841,842,5,111,0,0,842,843,5,
+        105,0,0,843,844,5,110,0,0,844,70,1,0,0,0,845,846,5,99,0,0,846,847,
+        5,111,0,0,847,848,5,110,0,0,848,849,5,110,0,0,849,850,5,101,0,0,
+        850,851,5,99,0,0,851,852,5,116,0,0,852,853,5,101,0,0,853,854,5,100,
+        0,0,854,855,5,67,0,0,855,856,5,111,0,0,856,857,5,109,0,0,857,858,
+        5,112,0,0,858,859,5,111,0,0,859,860,5,110,0,0,860,861,5,101,0,0,
+        861,862,5,110,0,0,862,863,5,116,0,0,863,72,1,0,0,0,864,865,5,67,
+        0,0,865,866,5,111,0,0,866,867,5,110,0,0,867,868,5,110,0,0,868,869,
+        5,101,0,0,869,870,5,99,0,0,870,871,5,116,0,0,871,872,5,101,0,0,872,
+        873,5,100,0,0,873,874,5,67,0,0,874,875,5,111,0,0,875,876,5,109,0,
+        0,876,877,5,112,0,0,877,878,5,111,0,0,878,879,5,110,0,0,879,880,
+        5,101,0,0,880,881,5,110,0,0,881,882,5,116,0,0,882,74,1,0,0,0,883,
+        884,5,99,0,0,884,885,5,111,0,0,885,886,5,110,0,0,886,887,5,115,0,
+        0,887,888,5,116,0,0,888,889,5,97,0,0,889,890,5,110,0,0,890,891,5,
+        116,0,0,891,76,1,0,0,0,892,893,5,99,0,0,893,894,5,111,0,0,894,895,
+        5,110,0,0,895,896,5,116,0,0,896,897,5,97,0,0,897,898,5,105,0,0,898,
+        899,5,110,0,0,899,900,5,105,0,0,900,901,5,110,0,0,901,902,5,103,
+        0,0,902,78,1,0,0,0,903,904,5,99,0,0,904,905,5,111,0,0,905,906,5,
+        117,0,0,906,907,5,110,0,0,907,908,5,116,0,0,908,80,1,0,0,0,909,910,
+        5,99,0,0,910,911,5,121,0,0,911,912,5,99,0,0,912,913,5,108,0,0,913,
+        914,5,105,0,0,914,915,5,99,0,0,915,916,5,80,0,0,916,917,5,97,0,0,
+        917,918,5,116,0,0,918,919,5,104,0,0,919,82,1,0,0,0,920,921,5,100,
+        0,0,921,922,5,97,0,0,922,923,5,121,0,0,923,84,1,0,0,0,924,925,5,
+        100,0,0,925,926,5,97,0,0,926,927,5,116,0,0,927,928,5,101,0,0,928,
+        929,5,65,0,0,929,930,5,100,0,0,930,931,5,100,0,0,931,86,1,0,0,0,
+        932,933,5,100,0,0,933,934,5,97,0,0,934,935,5,116,0,0,935,936,5,101,
+        0,0,936,937,5,68,0,0,937,938,5,105,0,0,938,939,5,102,0,0,939,940,
+        5,102,0,0,940,88,1,0,0,0,941,942,5,100,0,0,942,943,5,97,0,0,943,
+        944,5,116,0,0,944,945,5,101,0,0,945,946,5,116,0,0,946,947,5,105,
+        0,0,947,948,5,109,0,0,948,949,5,101,0,0,949,90,1,0,0,0,950,951,5,
+        68,0,0,951,952,5,97,0,0,952,953,5,116,0,0,953,954,5,101,0,0,954,
+        955,5,84,0,0,955,956,5,105,0,0,956,957,5,109,0,0,957,958,5,101,0,
+        0,958,92,1,0,0,0,959,960,5,100,0,0,960,961,5,101,0,0,961,962,5,99,
+        0,0,962,963,5,114,0,0,963,94,1,0,0,0,964,965,5,100,0,0,965,966,5,
+        101,0,0,966,967,5,100,0,0,967,968,5,117,0,0,968,969,5,112,0,0,969,
+        96,1,0,0,0,970,971,5,100,0,0,971,972,5,101,0,0,972,973,5,115,0,0,
+        973,974,5,99,0,0,974,98,1,0,0,0,975,976,5,100,0,0,976,977,5,105,
+        0,0,977,978,5,102,0,0,978,979,5,102,0,0,979,980,5,101,0,0,980,981,
+        5,114,0,0,981,982,5,101,0,0,982,983,5,110,0,0,983,984,5,99,0,0,984,
+        985,5,101,0,0,985,100,1,0,0,0,986,987,5,68,0,0,987,988,5,105,0,0,
+        988,989,5,114,0,0,989,990,5,101,0,0,990,991,5,99,0,0,991,992,5,116,
+        0,0,992,993,5,105,0,0,993,994,5,111,0,0,994,995,5,110,0,0,995,102,
+        1,0,0,0,996,997,5,100,0,0,997,998,5,105,0,0,998,999,5,115,0,0,999,
+        1000,5,106,0,0,1000,1001,5,117,0,0,1001,1002,5,110,0,0,1002,1003,
+        5,99,0,0,1003,1004,5,116,0,0,1004,104,1,0,0,0,1005,1006,5,100,0,
+        0,1006,1007,5,105,0,0,1007,1008,5,115,0,0,1008,1009,5,116,0,0,1009,
+        1010,5,97,0,0,1010,1011,5,110,0,0,1011,1012,5,99,0,0,1012,1013,5,
+        101,0,0,1013,106,1,0,0,0,1014,1015,5,100,0,0,1015,1016,5,105,0,0,
+        1016,1017,5,118,0,0,1017,108,1,0,0,0,1018,1019,5,100,0,0,1019,1020,
+        5,114,0,0,1020,1021,5,111,0,0,1021,1022,5,112,0,0,1022,110,1,0,0,
+        0,1023,1024,5,68,0,0,1024,1025,5,84,0,0,1025,112,1,0,0,0,1026,1027,
+        5,69,0,0,1027,114,1,0,0,0,1028,1029,5,101,0,0,1029,1030,5,100,0,
+        0,1030,1031,5,103,0,0,1031,1032,5,101,0,0,1032,1033,5,115,0,0,1033,
+        116,1,0,0,0,1034,1035,5,101,0,0,1035,1036,5,108,0,0,1036,1037,5,
+        101,0,0,1037,1038,5,109,0,0,1038,1039,5,101,0,0,1039,1040,5,110,
+        0,0,1040,1041,5,116,0,0,1041,1042,5,77,0,0,1042,1043,5,97,0,0,1043,
+        1044,5,112,0,0,1044,118,1,0,0,0,1045,1046,5,101,0,0,1046,1047,5,
+        108,0,0,1047,1048,5,101,0,0,1048,1049,5,109,0,0,1049,1050,5,101,
+        0,0,1050,1051,5,110,0,0,1051,1052,5,116,0,0,1052,120,1,0,0,0,1053,
+        1054,5,101,0,0,1054,1055,5,109,0,0,1055,1056,5,105,0,0,1056,1057,
+        5,116,0,0,1057,122,1,0,0,0,1058,1059,5,101,0,0,1059,1060,5,110,0,
+        0,1060,1061,5,100,0,0,1061,1062,5,105,0,0,1062,1063,5,110,0,0,1063,
+        1064,5,103,0,0,1064,1065,5,87,0,0,1065,1066,5,105,0,0,1066,1067,
+        5,116,0,0,1067,1068,5,104,0,0,1068,124,1,0,0,0,1069,1070,5,101,0,
+        0,1070,1071,5,113,0,0,1071,126,1,0,0,0,1072,1073,5,101,0,0,1073,
+        1074,5,120,0,0,1074,1075,5,112,0,0,1075,1076,5,108,0,0,1076,1077,
+        5,97,0,0,1077,1078,5,105,0,0,1078,1079,5,110,0,0,1079,128,1,0,0,
+        0,1080,1081,5,102,0,0,1081,1082,5,97,0,0,1082,1083,5,105,0,0,1083,
+        1084,5,108,0,0,1084,130,1,0,0,0,1085,1086,5,102,0,0,1086,1087,5,
+        97,0,0,1087,1088,5,108,0,0,1088,1089,5,115,0,0,1089,1090,5,101,0,
+        0,1090,132,1,0,0,0,1091,1092,5,102,0,0,1092,1093,5,105,0,0,1093,
+        1094,5,108,0,0,1094,1095,5,116,0,0,1095,1096,5,101,0,0,1096,1097,
+        5,114,0,0,1097,134,1,0,0,0,1098,1099,5,102,0,0,1099,1100,5,105,0,
+        0,1100,1101,5,114,0,0,1101,1102,5,115,0,0,1102,1103,5,116,0,0,1103,
+        136,1,0,0,0,1104,1105,5,102,0,0,1105,1106,5,108,0,0,1106,1107,5,
+        97,0,0,1107,1108,5,116,0,0,1108,1109,5,77,0,0,1109,1110,5,97,0,0,
+        1110,1111,5,112,0,0,1111,138,1,0,0,0,1112,1113,5,102,0,0,1113,1114,
+        5,111,0,0,1114,1115,5,108,0,0,1115,1116,5,100,0,0,1116,140,1,0,0,
+        0,1117,1118,5,102,0,0,1118,1119,5,111,0,0,1119,1120,5,114,0,0,1120,
+        1121,5,109,0,0,1121,1122,5,97,0,0,1122,1123,5,116,0,0,1123,142,1,
+        0,0,0,1124,1125,5,102,0,0,1125,1126,5,114,0,0,1126,1127,5,111,0,
+        0,1127,1128,5,109,0,0,1128,144,1,0,0,0,1129,1130,5,103,0,0,1130,
+        1131,5,108,0,0,1131,1132,5,111,0,0,1132,1133,5,98,0,0,1133,1134,
+        5,97,0,0,1134,1135,5,108,0,0,1135,146,1,0,0,0,1136,1137,5,103,0,
+        0,1137,1138,5,116,0,0,1138,148,1,0,0,0,1139,1140,5,103,0,0,1140,
+        1141,5,116,0,0,1141,1142,5,101,0,0,1142,150,1,0,0,0,1143,1144,5,
+        103,0,0,1144,1145,5,114,0,0,1145,1146,5,97,0,0,1146,1147,5,112,0,
+        0,1147,1148,5,104,0,0,1148,1149,5,109,0,0,1149,1150,5,108,0,0,1150,
+        152,1,0,0,0,1151,1152,5,103,0,0,1152,1153,5,114,0,0,1153,1154,5,
+        97,0,0,1154,1155,5,112,0,0,1155,1156,5,104,0,0,1156,1157,5,115,0,
+        0,1157,1158,5,111,0,0,1158,1159,5,110,0,0,1159,154,1,0,0,0,1160,
+        1161,5,103,0,0,1161,1162,5,114,0,0,1162,1163,5,111,0,0,1163,1164,
+        5,117,0,0,1164,1165,5,112,0,0,1165,1166,5,67,0,0,1166,1167,5,111,
+        0,0,1167,1168,5,117,0,0,1168,1169,5,110,0,0,1169,1170,5,116,0,0,
+        1170,156,1,0,0,0,1171,1172,5,103,0,0,1172,1173,5,114,0,0,1173,1174,
+        5,111,0,0,1174,1175,5,117,0,0,1175,1176,5,112,0,0,1176,158,1,0,0,
+        0,1177,1178,5,103,0,0,1178,1179,5,114,0,0,1179,1180,5,121,0,0,1180,
+        1181,5,111,0,0,1181,160,1,0,0,0,1182,1183,5,104,0,0,1183,1184,5,
+        97,0,0,1184,1185,5,115,0,0,1185,162,1,0,0,0,1186,1187,5,104,0,0,
+        1187,1188,5,97,0,0,1188,1189,5,115,0,0,1189,1190,5,73,0,0,1190,1191,
+        5,100,0,0,1191,164,1,0,0,0,1192,1193,5,104,0,0,1193,1194,5,97,0,
+        0,1194,1195,5,115,0,0,1195,1196,5,75,0,0,1196,1197,5,101,0,0,1197,
+        1198,5,121,0,0,1198,166,1,0,0,0,1199,1200,5,104,0,0,1200,1201,5,
+        97,0,0,1201,1202,5,115,0,0,1202,1203,5,76,0,0,1203,1204,5,97,0,0,
+        1204,1205,5,98,0,0,1205,1206,5,101,0,0,1206,1207,5,108,0,0,1207,
+        168,1,0,0,0,1208,1209,5,104,0,0,1209,1210,5,97,0,0,1210,1211,5,115,
+        0,0,1211,1212,5,78,0,0,1212,1213,5,101,0,0,1213,1214,5,120,0,0,1214,
+        1215,5,116,0,0,1215,170,1,0,0,0,1216,1217,5,104,0,0,1217,1218,5,
+        97,0,0,1218,1219,5,115,0,0,1219,1220,5,78,0,0,1220,1221,5,111,0,
+        0,1221,1222,5,116,0,0,1222,172,1,0,0,0,1223,1224,5,104,0,0,1224,
+        1225,5,97,0,0,1225,1226,5,115,0,0,1226,1227,5,86,0,0,1227,1228,5,
+        97,0,0,1228,1229,5,108,0,0,1229,1230,5,117,0,0,1230,1231,5,101,0,
+        0,1231,174,1,0,0,0,1232,1233,5,104,0,0,1233,1234,5,111,0,0,1234,
+        1235,5,117,0,0,1235,1236,5,114,0,0,1236,176,1,0,0,0,1237,1238,5,
+        105,0,0,1238,1239,5,100,0,0,1239,178,1,0,0,0,1240,1241,5,105,0,0,
+        1241,1242,5,100,0,0,1242,1243,5,101,0,0,1243,1244,5,110,0,0,1244,
+        1245,5,116,0,0,1245,1246,5,105,0,0,1246,1247,5,116,0,0,1247,1248,
+        5,121,0,0,1248,180,1,0,0,0,1249,1250,5,105,0,0,1250,1251,5,100,0,
+        0,1251,1252,5,115,0,0,1252,182,1,0,0,0,1253,1254,5,105,0,0,1254,
+        1255,5,110,0,0,1255,184,1,0,0,0,1256,1257,5,73,0,0,1257,1258,5,78,
+        0,0,1258,186,1,0,0,0,1259,1260,5,105,0,0,1260,1261,5,110,0,0,1261,
+        1262,5,69,0,0,1262,188,1,0,0,0,1263,1264,5,105,0,0,1264,1265,5,110,
+        0,0,1265,1266,5,99,0,0,1266,1267,5,108,0,0,1267,1268,5,117,0,0,1268,
+        1269,5,100,0,0,1269,1270,5,101,0,0,1270,1271,5,69,0,0,1271,1272,
+        5,100,0,0,1272,1273,5,103,0,0,1273,1274,5,101,0,0,1274,1275,5,115,
+        0,0,1275,190,1,0,0,0,1276,1277,5,105,0,0,1277,1278,5,110,0,0,1278,
+        1279,5,99,0,0,1279,1280,5,114,0,0,1280,192,1,0,0,0,1281,1282,5,105,
+        0,0,1282,1283,5,110,0,0,1283,1284,5,100,0,0,1284,1285,5,101,0,0,
+        1285,1286,5,120,0,0,1286,1287,5,101,0,0,1287,1288,5,114,0,0,1288,
+        194,1,0,0,0,1289,1290,5,105,0,0,1290,1291,5,110,0,0,1291,1292,5,
+        100,0,0,1292,1293,5,101,0,0,1293,1294,5,120,0,0,1294,196,1,0,0,0,
+        1295,1296,5,73,0,0,1296,1297,5,110,0,0,1297,1298,5,102,0,0,1298,
+        1299,5,105,0,0,1299,1300,5,110,0,0,1300,1301,5,105,0,0,1301,1302,
+        5,116,0,0,1302,1303,5,121,0,0,1303,198,1,0,0,0,1304,1305,5,105,0,
+        0,1305,1306,5,110,0,0,1306,1307,5,106,0,0,1307,1308,5,101,0,0,1308,
+        1309,5,99,0,0,1309,1310,5,116,0,0,1310,200,1,0,0,0,1311,1312,5,105,
+        0,0,1312,1313,5,110,0,0,1313,1314,5,115,0,0,1314,1315,5,105,0,0,
+        1315,1316,5,100,0,0,1316,1317,5,101,0,0,1317,202,1,0,0,0,1318,1319,
+        5,105,0,0,1319,1320,5,110,0,0,1320,1321,5,116,0,0,1321,1322,5,101,
+        0,0,1322,1323,5,114,0,0,1323,1324,5,115,0,0,1324,1325,5,101,0,0,
+        1325,1326,5,99,0,0,1326,1327,5,116,0,0,1327,204,1,0,0,0,1328,1329,
+        5,105,0,0,1329,1330,5,110,0,0,1330,1331,5,86,0,0,1331,206,1,0,0,
+        0,1332,1333,5,73,0,0,1333,1334,5,79,0,0,1334,208,1,0,0,0,1335,1336,
+        5,105,0,0,1336,1337,5,111,0,0,1337,210,1,0,0,0,1338,1339,5,105,0,
+        0,1339,1340,5,115,0,0,1340,212,1,0,0,0,1341,1342,5,105,0,0,1342,
+        1343,5,116,0,0,1343,1344,5,101,0,0,1344,1345,5,114,0,0,1345,1346,
+        5,97,0,0,1346,1347,5,116,0,0,1347,1348,5,101,0,0,1348,214,1,0,0,
+        0,1349,1350,5,107,0,0,1350,1351,5,101,0,0,1351,1352,5,121,0,0,1352,
+        216,1,0,0,0,1353,1354,5,107,0,0,1354,1355,5,101,0,0,1355,1356,5,
+        121,0,0,1356,1357,5,115,0,0,1357,218,1,0,0,0,1358,1359,5,108,0,0,
+        1359,1360,5,97,0,0,1360,1361,5,98,0,0,1361,1362,5,101,0,0,1362,1363,
+        5,108,0,0,1363,1364,5,115,0,0,1364,220,1,0,0,0,1365,1366,5,108,0,
+        0,1366,1367,5,97,0,0,1367,1368,5,98,0,0,1368,1369,5,101,0,0,1369,
+        1370,5,108,0,0,1370,222,1,0,0,0,1371,1372,5,108,0,0,1372,1373,5,
+        97,0,0,1373,1374,5,115,0,0,1374,1375,5,116,0,0,1375,224,1,0,0,0,
+        1376,1377,5,108,0,0,1377,1378,5,101,0,0,1378,1379,5,110,0,0,1379,
+        1380,5,103,0,0,1380,1381,5,116,0,0,1381,1382,5,104,0,0,1382,226,
+        1,0,0,0,1383,1384,5,108,0,0,1384,1385,5,105,0,0,1385,1386,5,109,
+        0,0,1386,1387,5,105,0,0,1387,1388,5,116,0,0,1388,228,1,0,0,0,1389,
+        1390,5,108,0,0,1390,1391,5,105,0,0,1391,1392,5,115,0,0,1392,1393,
+        5,116,0,0,1393,230,1,0,0,0,1394,1395,5,108,0,0,1395,1396,5,111,0,
+        0,1396,1397,5,99,0,0,1397,1398,5,97,0,0,1398,1399,5,108,0,0,1399,
+        232,1,0,0,0,1400,1401,5,108,0,0,1401,1402,5,111,0,0,1402,1403,5,
+        111,0,0,1403,1404,5,112,0,0,1404,1405,5,115,0,0,1405,234,1,0,0,0,
+        1406,1407,5,108,0,0,1407,1408,5,116,0,0,1408,236,1,0,0,0,1409,1410,
+        5,108,0,0,1410,1411,5,116,0,0,1411,1412,5,101,0,0,1412,238,1,0,0,
+        0,1413,1414,5,108,0,0,1414,1415,5,84,0,0,1415,1416,5,114,0,0,1416,
+        1417,5,105,0,0,1417,1418,5,109,0,0,1418,240,1,0,0,0,1419,1420,5,
+        109,0,0,1420,1421,5,97,0,0,1421,1422,5,112,0,0,1422,242,1,0,0,0,
+        1423,1424,5,109,0,0,1424,1425,5,97,0,0,1425,1426,5,116,0,0,1426,
+        1427,5,99,0,0,1427,1428,5,104,0,0,1428,244,1,0,0,0,1429,1430,5,109,
+        0,0,1430,1431,5,97,0,0,1431,1432,5,116,0,0,1432,1433,5,104,0,0,1433,
+        246,1,0,0,0,1434,1435,5,109,0,0,1435,1436,5,97,0,0,1436,1437,5,120,
+        0,0,1437,248,1,0,0,0,1438,1439,5,109,0,0,1439,1440,5,97,0,0,1440,
+        1441,5,120,0,0,1441,1442,5,68,0,0,1442,1443,5,105,0,0,1443,1444,
+        5,115,0,0,1444,1445,5,116,0,0,1445,1446,5,97,0,0,1446,1447,5,110,
+        0,0,1447,1448,5,99,0,0,1448,1449,5,101,0,0,1449,250,1,0,0,0,1450,
+        1451,5,109,0,0,1451,1452,5,101,0,0,1452,1453,5,97,0,0,1453,1454,
+        5,110,0,0,1454,252,1,0,0,0,1455,1456,5,77,0,0,1456,1457,5,101,0,
+        0,1457,1458,5,114,0,0,1458,1459,5,103,0,0,1459,1460,5,101,0,0,1460,
+        254,1,0,0,0,1461,1462,5,109,0,0,1462,1463,5,101,0,0,1463,1464,5,
+        114,0,0,1464,1465,5,103,0,0,1465,1466,5,101,0,0,1466,256,1,0,0,0,
+        1467,1468,5,109,0,0,1468,1469,5,101,0,0,1469,1470,5,114,0,0,1470,
+        1471,5,103,0,0,1471,1472,5,101,0,0,1472,1473,5,69,0,0,1473,258,1,
+        0,0,0,1474,1475,5,109,0,0,1475,1476,5,101,0,0,1476,1477,5,114,0,
+        0,1477,1478,5,103,0,0,1478,1479,5,101,0,0,1479,1480,5,86,0,0,1480,
+        260,1,0,0,0,1481,1482,5,109,0,0,1482,1483,5,105,0,0,1483,1484,5,
+        110,0,0,1484,262,1,0,0,0,1485,1486,5,109,0,0,1486,1487,5,105,0,0,
+        1487,1488,5,110,0,0,1488,1489,5,117,0,0,1489,1490,5,116,0,0,1490,
+        1491,5,101,0,0,1491,264,1,0,0,0,1492,1493,5,109,0,0,1493,1494,5,
+        105,0,0,1494,1495,5,110,0,0,1495,1496,5,117,0,0,1496,1497,5,115,
+        0,0,1497,266,1,0,0,0,1498,1499,5,109,0,0,1499,1500,5,105,0,0,1500,
+        1501,5,120,0,0,1501,1502,5,101,0,0,1502,1503,5,100,0,0,1503,268,
+        1,0,0,0,1504,1505,5,109,0,0,1505,1506,5,117,0,0,1506,1507,5,108,
+        0,0,1507,1508,5,116,0,0,1508,270,1,0,0,0,1509,1510,5,78,0,0,1510,
+        1511,5,97,0,0,1511,1512,5,78,0,0,1512,272,1,0,0,0,1513,1514,5,110,
+        0,0,1514,1515,5,101,0,0,1515,1516,5,103,0,0,1516,1517,5,97,0,0,1517,
+        1518,5,116,0,0,1518,1519,5,101,0,0,1519,274,1,0,0,0,1520,1521,5,
+        110,0,0,1521,1522,5,101,0,0,1522,1523,5,120,0,0,1523,1524,5,116,
+        0,0,1524,276,1,0,0,0,1525,1526,5,110,0,0,1526,1527,5,111,0,0,1527,
+        1528,5,110,0,0,1528,1529,5,101,0,0,1529,278,1,0,0,0,1530,1531,5,
+        110,0,0,1531,1532,5,111,0,0,1532,1533,5,116,0,0,1533,1534,5,82,0,
+        0,1534,1535,5,101,0,0,1535,1536,5,103,0,0,1536,1537,5,101,0,0,1537,
+        1538,5,120,0,0,1538,280,1,0,0,0,1539,1540,5,110,0,0,1540,1541,5,
+        111,0,0,1541,1542,5,116,0,0,1542,1543,5,67,0,0,1543,1544,5,111,0,
+        0,1544,1545,5,110,0,0,1545,1546,5,116,0,0,1546,1547,5,97,0,0,1547,
+        1548,5,105,0,0,1548,1549,5,110,0,0,1549,1550,5,105,0,0,1550,1551,
+        5,110,0,0,1551,1552,5,103,0,0,1552,282,1,0,0,0,1553,1554,5,110,0,
+        0,1554,1555,5,111,0,0,1555,1556,5,116,0,0,1556,1557,5,69,0,0,1557,
+        1558,5,110,0,0,1558,1559,5,100,0,0,1559,1560,5,105,0,0,1560,1561,
+        5,110,0,0,1561,1562,5,103,0,0,1562,1563,5,87,0,0,1563,1564,5,105,
+        0,0,1564,1565,5,116,0,0,1565,1566,5,104,0,0,1566,284,1,0,0,0,1567,
+        1568,5,110,0,0,1568,1569,5,111,0,0,1569,1570,5,116,0,0,1570,1571,
+        5,83,0,0,1571,1572,5,116,0,0,1572,1573,5,97,0,0,1573,1574,5,114,
+        0,0,1574,1575,5,116,0,0,1575,1576,5,105,0,0,1576,1577,5,110,0,0,
+        1577,1578,5,103,0,0,1578,1579,5,87,0,0,1579,1580,5,105,0,0,1580,
+        1581,5,116,0,0,1581,1582,5,104,0,0,1582,286,1,0,0,0,1583,1584,5,
+        110,0,0,1584,1585,5,111,0,0,1585,1586,5,116,0,0,1586,288,1,0,0,0,
+        1587,1588,5,110,0,0,1588,1589,5,101,0,0,1589,1590,5,113,0,0,1590,
+        290,1,0,0,0,1591,1592,5,110,0,0,1592,1593,5,101,0,0,1593,1594,5,
+        119,0,0,1594,292,1,0,0,0,1595,1596,5,110,0,0,1596,1597,5,111,0,0,
+        1597,1598,5,114,0,0,1598,1599,5,109,0,0,1599,1600,5,83,0,0,1600,
+        1601,5,97,0,0,1601,1602,5,99,0,0,1602,1603,5,107,0,0,1603,294,1,
+        0,0,0,1604,1605,5,110,0,0,1605,1606,5,117,0,0,1606,1607,5,108,0,
+        0,1607,1608,5,108,0,0,1608,296,1,0,0,0,1609,1610,5,111,0,0,1610,
+        1611,5,110,0,0,1611,1612,5,67,0,0,1612,1613,5,114,0,0,1613,1614,
+        5,101,0,0,1614,1615,5,97,0,0,1615,1616,5,116,0,0,1616,1617,5,101,
+        0,0,1617,298,1,0,0,0,1618,1619,5,111,0,0,1619,1620,5,110,0,0,1620,
+        1621,5,77,0,0,1621,1622,5,97,0,0,1622,1623,5,116,0,0,1623,1624,5,
+        99,0,0,1624,1625,5,104,0,0,1625,300,1,0,0,0,1626,1627,5,79,0,0,1627,
+        1628,5,112,0,0,1628,1629,5,101,0,0,1629,1630,5,114,0,0,1630,1631,
+        5,97,0,0,1631,1632,5,116,0,0,1632,1633,5,111,0,0,1633,1634,5,114,
+        0,0,1634,302,1,0,0,0,1635,1636,5,111,0,0,1636,1637,5,112,0,0,1637,
+        1638,5,116,0,0,1638,1639,5,105,0,0,1639,1640,5,111,0,0,1640,1641,
+        5,110,0,0,1641,304,1,0,0,0,1642,1643,5,111,0,0,1643,1644,5,112,0,
+        0,1644,1645,5,116,0,0,1645,1646,5,105,0,0,1646,1647,5,111,0,0,1647,
+        1648,5,110,0,0,1648,1649,5,97,0,0,1649,1650,5,108,0,0,1650,306,1,
+        0,0,0,1651,1652,5,79,0,0,1652,1653,5,114,0,0,1653,1654,5,100,0,0,
+        1654,1655,5,101,0,0,1655,1656,5,114,0,0,1656,308,1,0,0,0,1657,1658,
+        5,111,0,0,1658,1659,5,114,0,0,1659,1660,5,100,0,0,1660,1661,5,101,
+        0,0,1661,1662,5,114,0,0,1662,310,1,0,0,0,1663,1664,5,111,0,0,1664,
+        1665,5,114,0,0,1665,312,1,0,0,0,1666,1667,5,111,0,0,1667,1668,5,
+        116,0,0,1668,1669,5,104,0,0,1669,1670,5,101,0,0,1670,1671,5,114,
+        0,0,1671,1672,5,86,0,0,1672,314,1,0,0,0,1673,1674,5,79,0,0,1674,
+        1675,5,85,0,0,1675,1676,5,84,0,0,1676,316,1,0,0,0,1677,1678,5,111,
+        0,0,1678,1679,5,117,0,0,1679,1680,5,116,0,0,1680,318,1,0,0,0,1681,
+        1682,5,111,0,0,1682,1683,5,117,0,0,1683,1684,5,116,0,0,1684,1685,
+        5,69,0,0,1685,320,1,0,0,0,1686,1687,5,111,0,0,1687,1688,5,117,0,
+        0,1688,1689,5,116,0,0,1689,1690,5,115,0,0,1690,1691,5,105,0,0,1691,
+        1692,5,100,0,0,1692,1693,5,101,0,0,1693,322,1,0,0,0,1694,1695,5,
+        111,0,0,1695,1696,5,117,0,0,1696,1697,5,116,0,0,1697,1698,5,86,0,
+        0,1698,324,1,0,0,0,1699,1700,5,80,0,0,1700,326,1,0,0,0,1701,1702,
+        5,80,0,0,1702,1703,5,97,0,0,1703,1704,5,103,0,0,1704,1705,5,101,
+        0,0,1705,1706,5,82,0,0,1706,1707,5,97,0,0,1707,1708,5,110,0,0,1708,
+        1709,5,107,0,0,1709,328,1,0,0,0,1710,1711,5,112,0,0,1711,1712,5,
+        97,0,0,1712,1713,5,103,0,0,1713,1714,5,101,0,0,1714,1715,5,82,0,
+        0,1715,1716,5,97,0,0,1716,1717,5,110,0,0,1717,1718,5,107,0,0,1718,
+        330,1,0,0,0,1719,1720,5,112,0,0,1720,1721,5,97,0,0,1721,1722,5,116,
+        0,0,1722,1723,5,104,0,0,1723,332,1,0,0,0,1724,1725,5,80,0,0,1725,
+        1726,5,101,0,0,1726,1727,5,101,0,0,1727,1728,5,114,0,0,1728,1729,
+        5,80,0,0,1729,1730,5,114,0,0,1730,1731,5,101,0,0,1731,1732,5,115,
+        0,0,1732,1733,5,115,0,0,1733,1734,5,117,0,0,1734,1735,5,114,0,0,
+        1735,1736,5,101,0,0,1736,334,1,0,0,0,1737,1738,5,112,0,0,1738,1739,
+        5,101,0,0,1739,1740,5,101,0,0,1740,1741,5,114,0,0,1741,1742,5,80,
+        0,0,1742,1743,5,114,0,0,1743,1744,5,101,0,0,1744,1745,5,115,0,0,
+        1745,1746,5,115,0,0,1746,1747,5,117,0,0,1747,1748,5,114,0,0,1748,
+        1749,5,101,0,0,1749,336,1,0,0,0,1750,1751,5,80,0,0,1751,1752,5,105,
+        0,0,1752,1753,5,99,0,0,1753,1754,5,107,0,0,1754,338,1,0,0,0,1755,
+        1756,5,80,0,0,1756,1757,5,111,0,0,1757,1758,5,112,0,0,1758,340,1,
+        0,0,0,1759,1760,5,112,0,0,1760,1761,5,114,0,0,1761,1762,5,111,0,
+        0,1762,1763,5,102,0,0,1763,1764,5,105,0,0,1764,1765,5,108,0,0,1765,
+        1766,5,101,0,0,1766,342,1,0,0,0,1767,1768,5,112,0,0,1768,1769,5,
+        114,0,0,1769,1770,5,111,0,0,1770,1771,5,106,0,0,1771,1772,5,101,
+        0,0,1772,1773,5,99,0,0,1773,1774,5,116,0,0,1774,344,1,0,0,0,1775,
+        1776,5,112,0,0,1776,1777,5,114,0,0,1777,1778,5,111,0,0,1778,1779,
+        5,112,0,0,1779,1780,5,101,0,0,1780,1781,5,114,0,0,1781,1782,5,116,
+        0,0,1782,1783,5,105,0,0,1783,1784,5,101,0,0,1784,1785,5,115,0,0,
+        1785,346,1,0,0,0,1786,1787,5,112,0,0,1787,1788,5,114,0,0,1788,1789,
+        5,111,0,0,1789,1790,5,112,0,0,1790,1791,5,101,0,0,1791,1792,5,114,
+        0,0,1792,1793,5,116,0,0,1793,1794,5,121,0,0,1794,1795,5,77,0,0,1795,
+        1796,5,97,0,0,1796,1797,5,112,0,0,1797,348,1,0,0,0,1798,1799,5,112,
+        0,0,1799,1800,5,114,0,0,1800,1801,5,111,0,0,1801,1802,5,112,0,0,
+        1802,1803,5,101,0,0,1803,1804,5,114,0,0,1804,1805,5,116,0,0,1805,
+        1806,5,121,0,0,1806,1807,5,78,0,0,1807,1808,5,97,0,0,1808,1809,5,
+        109,0,0,1809,1810,5,101,0,0,1810,350,1,0,0,0,1811,1812,5,112,0,0,
+        1812,1813,5,114,0,0,1813,1814,5,111,0,0,1814,1815,5,112,0,0,1815,
+        1816,5,101,0,0,1816,1817,5,114,0,0,1817,1818,5,116,0,0,1818,1819,
+        5,121,0,0,1819,352,1,0,0,0,1820,1821,5,112,0,0,1821,1822,5,114,0,
+        0,1822,1823,5,111,0,0,1823,1824,5,100,0,0,1824,1825,5,117,0,0,1825,
+        1826,5,99,0,0,1826,1827,5,116,0,0,1827,354,1,0,0,0,1828,1829,5,114,
+        0,0,1829,1830,5,97,0,0,1830,1831,5,110,0,0,1831,1832,5,103,0,0,1832,
+        1833,5,101,0,0,1833,356,1,0,0,0,1834,1835,5,114,0,0,1835,1836,5,
+        101,0,0,1836,1837,5,97,0,0,1837,1838,5,100,0,0,1838,358,1,0,0,0,
+        1839,1840,5,114,0,0,1840,1841,5,101,0,0,1841,1842,5,97,0,0,1842,
+        1843,5,100,0,0,1843,1844,5,101,0,0,1844,1845,5,114,0,0,1845,360,
+        1,0,0,0,1846,1847,5,82,0,0,1847,1848,5,101,0,0,1848,1849,5,102,0,
+        0,1849,1850,5,101,0,0,1850,1851,5,114,0,0,1851,1852,5,101,0,0,1852,
+        1853,5,110,0,0,1853,1854,5,99,0,0,1854,1855,5,101,0,0,1855,1856,
+        5,86,0,0,1856,1857,5,101,0,0,1857,1858,5,114,0,0,1858,1859,5,116,
+        0,0,1859,1860,5,101,0,0,1860,1861,5,120,0,0,1861,362,1,0,0,0,1862,
+        1863,5,114,0,0,1863,1864,5,101,0,0,1864,1865,5,103,0,0,1865,1866,
+        5,101,0,0,1866,1867,5,120,0,0,1867,364,1,0,0,0,1868,1869,5,114,0,
+        0,1869,1870,5,101,0,0,1870,1871,5,112,0,0,1871,1872,5,108,0,0,1872,
+        1873,5,97,0,0,1873,1874,5,99,0,0,1874,1875,5,101,0,0,1875,366,1,
+        0,0,0,1876,1877,5,114,0,0,1877,1878,5,101,0,0,1878,1879,5,112,0,
+        0,1879,1880,5,101,0,0,1880,1881,5,97,0,0,1881,1882,5,116,0,0,1882,
+        368,1,0,0,0,1883,1884,5,114,0,0,1884,1885,5,101,0,0,1885,1886,5,
+        118,0,0,1886,1887,5,101,0,0,1887,1888,5,114,0,0,1888,1889,5,115,
+        0,0,1889,1890,5,101,0,0,1890,370,1,0,0,0,1891,1892,5,114,0,0,1892,
+        1893,5,111,0,0,1893,1894,5,108,0,0,1894,1895,5,108,0,0,1895,1896,
+        5,98,0,0,1896,1897,5,97,0,0,1897,1898,5,99,0,0,1898,1899,5,107,0,
+        0,1899,372,1,0,0,0,1900,1901,5,114,0,0,1901,1902,5,84,0,0,1902,1903,
+        5,114,0,0,1903,1904,5,105,0,0,1904,1905,5,109,0,0,1905,374,1,0,0,
+        0,1906,1907,5,115,0,0,1907,1908,5,97,0,0,1908,1909,5,99,0,0,1909,
+        1910,5,107,0,0,1910,376,1,0,0,0,1911,1912,5,115,0,0,1912,1913,5,
+        97,0,0,1913,1914,5,109,0,0,1914,1915,5,112,0,0,1915,1916,5,108,0,
+        0,1916,1917,5,101,0,0,1917,378,1,0,0,0,1918,1919,5,83,0,0,1919,1920,
+        5,99,0,0,1920,1921,5,111,0,0,1921,1922,5,112,0,0,1922,1923,5,101,
+        0,0,1923,380,1,0,0,0,1924,1925,5,115,0,0,1925,1926,5,101,0,0,1926,
+        1927,5,99,0,0,1927,1928,5,111,0,0,1928,1929,5,110,0,0,1929,1930,
+        5,100,0,0,1930,382,1,0,0,0,1931,1932,5,115,0,0,1932,1933,5,101,0,
+        0,1933,1934,5,108,0,0,1934,1935,5,101,0,0,1935,1936,5,99,0,0,1936,
+        1937,5,116,0,0,1937,384,1,0,0,0,1938,1939,5,115,0,0,1939,1940,5,
+        101,0,0,1940,1941,5,116,0,0,1941,386,1,0,0,0,1942,1943,5,83,0,0,
+        1943,1944,5,104,0,0,1944,1945,5,111,0,0,1945,1946,5,114,0,0,1946,
+        1947,5,116,0,0,1947,1948,5,101,0,0,1948,1949,5,115,0,0,1949,1950,
+        5,116,0,0,1950,1951,5,80,0,0,1951,1952,5,97,0,0,1952,1953,5,116,
+        0,0,1953,1954,5,104,0,0,1954,388,1,0,0,0,1955,1956,5,115,0,0,1956,
+        1957,5,104,0,0,1957,1958,5,111,0,0,1958,1959,5,114,0,0,1959,1960,
+        5,116,0,0,1960,1961,5,101,0,0,1961,1962,5,115,0,0,1962,1963,5,116,
+        0,0,1963,1964,5,80,0,0,1964,1965,5,97,0,0,1965,1966,5,116,0,0,1966,
+        1967,5,104,0,0,1967,390,1,0,0,0,1968,1969,5,115,0,0,1969,1970,5,
+        104,0,0,1970,1971,5,117,0,0,1971,1972,5,102,0,0,1972,1973,5,102,
+        0,0,1973,1974,5,108,0,0,1974,1975,5,101,0,0,1975,392,1,0,0,0,1976,
+        1977,5,115,0,0,1977,1978,5,105,0,0,1978,1979,5,100,0,0,1979,1980,
+        5,101,0,0,1980,1981,5,69,0,0,1981,1982,5,102,0,0,1982,1983,5,102,
+        0,0,1983,1984,5,101,0,0,1984,1985,5,99,0,0,1985,1986,5,116,0,0,1986,
+        394,1,0,0,0,1987,1988,5,115,0,0,1988,1989,5,105,0,0,1989,1990,5,
+        109,0,0,1990,1991,5,112,0,0,1991,1992,5,108,0,0,1992,1993,5,101,
+        0,0,1993,1994,5,80,0,0,1994,1995,5,97,0,0,1995,1996,5,116,0,0,1996,
+        1997,5,104,0,0,1997,396,1,0,0,0,1998,1999,5,115,0,0,1999,2000,5,
+        105,0,0,2000,2001,5,110,0,0,2001,2002,5,103,0,0,2002,2003,5,108,
+        0,0,2003,2004,5,101,0,0,2004,398,1,0,0,0,2005,2006,5,115,0,0,2006,
+        2007,5,107,0,0,2007,2008,5,105,0,0,2008,2009,5,112,0,0,2009,400,
+        1,0,0,0,2010,2011,5,115,0,0,2011,2012,5,112,0,0,2012,2013,5,108,
+        0,0,2013,2014,5,105,0,0,2014,2015,5,116,0,0,2015,402,1,0,0,0,2016,
+        2017,5,115,0,0,2017,2018,5,116,0,0,2018,2019,5,97,0,0,2019,2020,
+        5,114,0,0,2020,2021,5,116,0,0,2021,2022,5,105,0,0,2022,2023,5,110,
+        0,0,2023,2024,5,103,0,0,2024,2025,5,87,0,0,2025,2026,5,105,0,0,2026,
+        2027,5,116,0,0,2027,2028,5,104,0,0,2028,404,1,0,0,0,2029,2030,5,
+        115,0,0,2030,2031,5,116,0,0,2031,2032,5,111,0,0,2032,2033,5,114,
+        0,0,2033,2034,5,101,0,0,2034,406,1,0,0,0,2035,2036,5,115,0,0,2036,
+        2037,5,117,0,0,2037,2038,5,98,0,0,2038,2039,5,103,0,0,2039,2040,
+        5,114,0,0,2040,2041,5,97,0,0,2041,2042,5,112,0,0,2042,2043,5,104,
+        0,0,2043,408,1,0,0,0,2044,2045,5,115,0,0,2045,2046,5,117,0,0,2046,
+        2047,5,98,0,0,2047,2048,5,115,0,0,2048,2049,5,116,0,0,2049,2050,
+        5,114,0,0,2050,2051,5,105,0,0,2051,2052,5,110,0,0,2052,2053,5,103,
+        0,0,2053,410,1,0,0,0,2054,2055,5,115,0,0,2055,2056,5,117,0,0,2056,
+        2057,5,109,0,0,2057,412,1,0,0,0,2058,2059,5,115,0,0,2059,2060,5,
+        117,0,0,2060,2061,5,109,0,0,2061,2062,5,76,0,0,2062,2063,5,111,0,
+        0,2063,2064,5,110,0,0,2064,2065,5,103,0,0,2065,414,1,0,0,0,2066,
+        2067,5,84,0,0,2067,416,1,0,0,0,2068,2069,5,116,0,0,2069,2070,5,97,
+        0,0,2070,2071,5,105,0,0,2071,2072,5,108,0,0,2072,418,1,0,0,0,2073,
+        2074,5,116,0,0,2074,2075,5,97,0,0,2075,2076,5,114,0,0,2076,2077,
+        5,103,0,0,2077,2078,5,101,0,0,2078,2079,5,116,0,0,2079,420,1,0,0,
+        0,2080,2081,5,84,0,0,2081,2082,5,101,0,0,2082,2083,5,120,0,0,2083,
+        2084,5,116,0,0,2084,2085,5,80,0,0,2085,422,1,0,0,0,2086,2087,5,116,
+        0,0,2087,2088,5,105,0,0,2088,2089,5,109,0,0,2089,2090,5,101,0,0,
+        2090,2091,5,76,0,0,2091,2092,5,105,0,0,2092,2093,5,109,0,0,2093,
+        2094,5,105,0,0,2094,2095,5,116,0,0,2095,424,1,0,0,0,2096,2097,5,
+        116,0,0,2097,2098,5,105,0,0,2098,2099,5,109,0,0,2099,2100,5,101,
+        0,0,2100,2101,5,115,0,0,2101,426,1,0,0,0,2102,2103,5,116,0,0,2103,
+        2104,5,111,0,0,2104,428,1,0,0,0,2105,2106,5,116,0,0,2106,2107,5,
+        111,0,0,2107,2108,5,66,0,0,2108,2109,5,117,0,0,2109,2110,5,108,0,
+        0,2110,2111,5,107,0,0,2111,2112,5,83,0,0,2112,2113,5,101,0,0,2113,
+        2114,5,116,0,0,2114,430,1,0,0,0,2115,2116,5,116,0,0,2116,2117,5,
+        111,0,0,2117,2118,5,107,0,0,2118,2119,5,101,0,0,2119,2120,5,110,
+        0,0,2120,2121,5,115,0,0,2121,432,1,0,0,0,2122,2123,5,116,0,0,2123,
+        2124,5,111,0,0,2124,2125,5,76,0,0,2125,2126,5,105,0,0,2126,2127,
+        5,115,0,0,2127,2128,5,116,0,0,2128,434,1,0,0,0,2129,2130,5,116,0,
+        0,2130,2131,5,111,0,0,2131,2132,5,76,0,0,2132,2133,5,111,0,0,2133,
+        2134,5,119,0,0,2134,2135,5,101,0,0,2135,2136,5,114,0,0,2136,436,
+        1,0,0,0,2137,2138,5,116,0,0,2138,2139,5,111,0,0,2139,2140,5,83,0,
+        0,2140,2141,5,101,0,0,2141,2142,5,116,0,0,2142,438,1,0,0,0,2143,
+        2144,5,116,0,0,2144,2145,5,111,0,0,2145,2146,5,83,0,0,2146,2147,
+        5,116,0,0,2147,2148,5,114,0,0,2148,2149,5,105,0,0,2149,2150,5,110,
+        0,0,2150,2151,5,103,0,0,2151,440,1,0,0,0,2152,2153,5,116,0,0,2153,
+        2154,5,111,0,0,2154,2155,5,85,0,0,2155,2156,5,112,0,0,2156,2157,
+        5,112,0,0,2157,2158,5,101,0,0,2158,2159,5,114,0,0,2159,442,1,0,0,
+        0,2160,2161,5,116,0,0,2161,2162,5,111,0,0,2162,2163,5,69,0,0,2163,
+        444,1,0,0,0,2164,2165,5,116,0,0,2165,2166,5,111,0,0,2166,2167,5,
+        86,0,0,2167,446,1,0,0,0,2168,2169,5,116,0,0,2169,2170,5,114,0,0,
+        2170,2171,5,101,0,0,2171,2172,5,101,0,0,2172,448,1,0,0,0,2173,2174,
+        5,116,0,0,2174,2175,5,114,0,0,2175,2176,5,105,0,0,2176,2177,5,109,
+        0,0,2177,450,1,0,0,0,2178,2179,5,116,0,0,2179,2180,5,114,0,0,2180,
+        2181,5,117,0,0,2181,2182,5,101,0,0,2182,452,1,0,0,0,2183,2184,5,
+        116,0,0,2184,2185,5,114,0,0,2185,2186,5,121,0,0,2186,2187,5,78,0,
+        0,2187,2188,5,101,0,0,2188,2189,5,120,0,0,2189,2190,5,116,0,0,2190,
+        454,1,0,0,0,2191,2192,5,116,0,0,2192,2193,5,120,0,0,2193,456,1,0,
+        0,0,2194,2195,5,117,0,0,2195,2196,5,110,0,0,2196,2197,5,102,0,0,
+        2197,2198,5,111,0,0,2198,2199,5,108,0,0,2199,2200,5,100,0,0,2200,
+        458,1,0,0,0,2201,2202,5,117,0,0,2202,2203,5,110,0,0,2203,2204,5,
+        105,0,0,2204,2205,5,111,0,0,2205,2206,5,110,0,0,2206,460,1,0,0,0,
+        2207,2208,5,117,0,0,2208,2209,5,110,0,0,2209,2210,5,116,0,0,2210,
+        2211,5,105,0,0,2211,2212,5,108,0,0,2212,462,1,0,0,0,2213,2214,5,
+        85,0,0,2214,2215,5,85,0,0,2215,2216,5,73,0,0,2216,2217,5,68,0,0,
+        2217,464,1,0,0,0,2218,2219,5,86,0,0,2219,466,1,0,0,0,2220,2221,5,
+        118,0,0,2221,2222,5,97,0,0,2222,2223,5,108,0,0,2223,2224,5,117,0,
+        0,2224,2225,5,101,0,0,2225,2226,5,77,0,0,2226,2227,5,97,0,0,2227,
+        2228,5,112,0,0,2228,468,1,0,0,0,2229,2230,5,118,0,0,2230,2231,5,
+        97,0,0,2231,2232,5,108,0,0,2232,2233,5,117,0,0,2233,2234,5,101,0,
+        0,2234,2235,5,115,0,0,2235,470,1,0,0,0,2236,2237,5,118,0,0,2237,
+        2238,5,97,0,0,2238,2239,5,108,0,0,2239,2240,5,117,0,0,2240,2241,
+        5,101,0,0,2241,472,1,0,0,0,2242,2243,5,86,0,0,2243,2244,5,101,0,
+        0,2244,2245,5,114,0,0,2245,2246,5,116,0,0,2246,2247,5,101,0,0,2247,
+        2248,5,120,0,0,2248,474,1,0,0,0,2249,2250,5,119,0,0,2250,2251,5,
+        104,0,0,2251,2252,5,101,0,0,2252,2253,5,114,0,0,2253,2254,5,101,
+        0,0,2254,476,1,0,0,0,2255,2256,5,119,0,0,2256,2257,5,105,0,0,2257,
+        2258,5,116,0,0,2258,2259,5,104,0,0,2259,478,1,0,0,0,2260,2261,5,
+        119,0,0,2261,2262,5,105,0,0,2262,2263,5,116,0,0,2263,2264,5,104,
+        0,0,2264,2265,5,66,0,0,2265,2266,5,117,0,0,2266,2267,5,108,0,0,2267,
+        2268,5,107,0,0,2268,480,1,0,0,0,2269,2270,5,119,0,0,2270,2271,5,
+        105,0,0,2271,2272,5,116,0,0,2272,2273,5,104,0,0,2273,2274,5,105,
+        0,0,2274,2275,5,110,0,0,2275,482,1,0,0,0,2276,2277,5,87,0,0,2277,
+        2278,5,105,0,0,2278,2279,5,116,0,0,2279,2280,5,104,0,0,2280,2281,
+        5,79,0,0,2281,2282,5,112,0,0,2282,2283,5,116,0,0,2283,2284,5,105,
+        0,0,2284,2285,5,111,0,0,2285,2286,5,110,0,0,2286,2287,5,115,0,0,
+        2287,484,1,0,0,0,2288,2289,5,119,0,0,2289,2290,5,105,0,0,2290,2291,
+        5,116,0,0,2291,2292,5,104,0,0,2292,2293,5,111,0,0,2293,2294,5,117,
+        0,0,2294,2295,5,116,0,0,2295,486,1,0,0,0,2296,2297,5,119,0,0,2297,
+        2298,5,105,0,0,2298,2299,5,116,0,0,2299,2300,5,104,0,0,2300,2301,
+        5,111,0,0,2301,2302,5,117,0,0,2302,2303,5,116,0,0,2303,2304,5,83,
+        0,0,2304,2305,5,116,0,0,2305,2306,5,114,0,0,2306,2307,5,97,0,0,2307,
+        2308,5,116,0,0,2308,2309,5,101,0,0,2309,2310,5,103,0,0,2310,2311,
+        5,105,0,0,2311,2312,5,101,0,0,2312,2313,5,115,0,0,2313,488,1,0,0,
+        0,2314,2315,5,119,0,0,2315,2316,5,105,0,0,2316,2317,5,116,0,0,2317,
+        2318,5,104,0,0,2318,2319,5,80,0,0,2319,2320,5,97,0,0,2320,2321,5,
+        116,0,0,2321,2322,5,104,0,0,2322,490,1,0,0,0,2323,2324,5,119,0,0,
+        2324,2325,5,105,0,0,2325,2326,5,116,0,0,2326,2327,5,104,0,0,2327,
+        2328,5,83,0,0,2328,2329,5,97,0,0,2329,2330,5,99,0,0,2330,2331,5,
+        107,0,0,2331,492,1,0,0,0,2332,2333,5,119,0,0,2333,2334,5,105,0,0,
+        2334,2335,5,116,0,0,2335,2336,5,104,0,0,2336,2337,5,83,0,0,2337,
+        2338,5,105,0,0,2338,2339,5,100,0,0,2339,2340,5,101,0,0,2340,2341,
+        5,69,0,0,2341,2342,5,102,0,0,2342,2343,5,102,0,0,2343,2344,5,101,
+        0,0,2344,2345,5,99,0,0,2345,2346,5,116,0,0,2346,494,1,0,0,0,2347,
+        2348,5,119,0,0,2348,2349,5,105,0,0,2349,2350,5,116,0,0,2350,2351,
+        5,104,0,0,2351,2352,5,83,0,0,2352,2353,5,116,0,0,2353,2354,5,114,
+        0,0,2354,2355,5,97,0,0,2355,2356,5,116,0,0,2356,2357,5,101,0,0,2357,
+        2358,5,103,0,0,2358,2359,5,105,0,0,2359,2360,5,101,0,0,2360,2361,
+        5,115,0,0,2361,496,1,0,0,0,2362,2363,5,119,0,0,2363,2364,5,114,0,
+        0,2364,2365,5,105,0,0,2365,2366,5,116,0,0,2366,2367,5,101,0,0,2367,
+        498,1,0,0,0,2368,2369,5,119,0,0,2369,2370,5,114,0,0,2370,2371,5,
+        105,0,0,2371,2372,5,116,0,0,2372,2373,5,101,0,0,2373,2374,5,114,
+        0,0,2374,500,1,0,0,0,2375,2377,3,555,277,0,2376,2375,1,0,0,0,2376,
+        2377,1,0,0,0,2377,2378,1,0,0,0,2378,2388,3,503,251,0,2379,2381,3,
+        555,277,0,2380,2379,1,0,0,0,2380,2381,1,0,0,0,2381,2382,1,0,0,0,
+        2382,2388,3,505,252,0,2383,2385,3,555,277,0,2384,2383,1,0,0,0,2384,
+        2385,1,0,0,0,2385,2386,1,0,0,0,2386,2388,3,507,253,0,2387,2376,1,
+        0,0,0,2387,2380,1,0,0,0,2387,2384,1,0,0,0,2388,502,1,0,0,0,2389,
+        2391,3,511,255,0,2390,2392,3,509,254,0,2391,2390,1,0,0,0,2391,2392,
+        1,0,0,0,2392,504,1,0,0,0,2393,2395,3,525,262,0,2394,2396,3,509,254,
+        0,2395,2394,1,0,0,0,2395,2396,1,0,0,0,2396,506,1,0,0,0,2397,2399,
+        3,535,267,0,2398,2400,3,509,254,0,2399,2398,1,0,0,0,2399,2400,1,
+        0,0,0,2400,508,1,0,0,0,2401,2402,7,0,0,0,2402,510,1,0,0,0,2403,2414,
+        5,48,0,0,2404,2411,3,517,258,0,2405,2407,3,513,256,0,2406,2405,1,
+        0,0,0,2406,2407,1,0,0,0,2407,2412,1,0,0,0,2408,2409,3,523,261,0,
+        2409,2410,3,513,256,0,2410,2412,1,0,0,0,2411,2406,1,0,0,0,2411,2408,
+        1,0,0,0,2412,2414,1,0,0,0,2413,2403,1,0,0,0,2413,2404,1,0,0,0,2414,
+        512,1,0,0,0,2415,2420,3,515,257,0,2416,2418,3,519,259,0,2417,2416,
+        1,0,0,0,2417,2418,1,0,0,0,2418,2419,1,0,0,0,2419,2421,3,515,257,
+        0,2420,2417,1,0,0,0,2420,2421,1,0,0,0,2421,514,1,0,0,0,2422,2425,
+        5,48,0,0,2423,2425,3,517,258,0,2424,2422,1,0,0,0,2424,2423,1,0,0,
+        0,2425,516,1,0,0,0,2426,2427,7,1,0,0,2427,518,1,0,0,0,2428,2430,
+        3,521,260,0,2429,2428,1,0,0,0,2430,2431,1,0,0,0,2431,2429,1,0,0,
+        0,2431,2432,1,0,0,0,2432,520,1,0,0,0,2433,2436,3,515,257,0,2434,
+        2436,5,95,0,0,2435,2433,1,0,0,0,2435,2434,1,0,0,0,2436,522,1,0,0,
+        0,2437,2439,5,95,0,0,2438,2437,1,0,0,0,2439,2440,1,0,0,0,2440,2438,
+        1,0,0,0,2440,2441,1,0,0,0,2441,524,1,0,0,0,2442,2443,5,48,0,0,2443,
+        2444,7,2,0,0,2444,2445,3,527,263,0,2445,526,1,0,0,0,2446,2451,3,
+        529,264,0,2447,2449,3,531,265,0,2448,2447,1,0,0,0,2448,2449,1,0,
+        0,0,2449,2450,1,0,0,0,2450,2452,3,529,264,0,2451,2448,1,0,0,0,2451,
+        2452,1,0,0,0,2452,528,1,0,0,0,2453,2454,7,3,0,0,2454,530,1,0,0,0,
+        2455,2457,3,533,266,0,2456,2455,1,0,0,0,2457,2458,1,0,0,0,2458,2456,
+        1,0,0,0,2458,2459,1,0,0,0,2459,532,1,0,0,0,2460,2463,3,529,264,0,
+        2461,2463,5,95,0,0,2462,2460,1,0,0,0,2462,2461,1,0,0,0,2463,534,
+        1,0,0,0,2464,2466,5,48,0,0,2465,2467,3,523,261,0,2466,2465,1,0,0,
+        0,2466,2467,1,0,0,0,2467,2468,1,0,0,0,2468,2469,3,537,268,0,2469,
+        536,1,0,0,0,2470,2475,3,539,269,0,2471,2473,3,541,270,0,2472,2471,
+        1,0,0,0,2472,2473,1,0,0,0,2473,2474,1,0,0,0,2474,2476,3,539,269,
+        0,2475,2472,1,0,0,0,2475,2476,1,0,0,0,2476,538,1,0,0,0,2477,2478,
+        7,4,0,0,2478,540,1,0,0,0,2479,2481,3,543,271,0,2480,2479,1,0,0,0,
+        2481,2482,1,0,0,0,2482,2480,1,0,0,0,2482,2483,1,0,0,0,2483,542,1,
+        0,0,0,2484,2487,3,539,269,0,2485,2487,5,95,0,0,2486,2484,1,0,0,0,
+        2486,2485,1,0,0,0,2487,544,1,0,0,0,2488,2490,3,555,277,0,2489,2488,
+        1,0,0,0,2489,2490,1,0,0,0,2490,2491,1,0,0,0,2491,2492,3,547,273,
+        0,2492,546,1,0,0,0,2493,2500,3,513,256,0,2494,2495,5,46,0,0,2495,
+        2497,3,513,256,0,2496,2498,3,549,274,0,2497,2496,1,0,0,0,2497,2498,
+        1,0,0,0,2498,2501,1,0,0,0,2499,2501,3,549,274,0,2500,2494,1,0,0,
+        0,2500,2499,1,0,0,0,2501,2503,1,0,0,0,2502,2504,3,557,278,0,2503,
+        2502,1,0,0,0,2503,2504,1,0,0,0,2504,2509,1,0,0,0,2505,2506,3,513,
+        256,0,2506,2507,3,557,278,0,2507,2509,1,0,0,0,2508,2493,1,0,0,0,
+        2508,2505,1,0,0,0,2509,548,1,0,0,0,2510,2511,3,551,275,0,2511,2512,
+        3,553,276,0,2512,550,1,0,0,0,2513,2514,7,5,0,0,2514,552,1,0,0,0,
+        2515,2517,3,555,277,0,2516,2515,1,0,0,0,2516,2517,1,0,0,0,2517,2518,
+        1,0,0,0,2518,2519,3,513,256,0,2519,554,1,0,0,0,2520,2521,7,6,0,0,
+        2521,556,1,0,0,0,2522,2523,7,7,0,0,2523,558,1,0,0,0,2524,2526,3,
+        555,277,0,2525,2524,1,0,0,0,2525,2526,1,0,0,0,2526,2527,1,0,0,0,
+        2527,2528,3,197,98,0,2528,560,1,0,0,0,2529,2530,5,34,0,0,2530,2531,
+        3,565,282,0,2531,2532,5,34,0,0,2532,2538,1,0,0,0,2533,2534,5,39,
+        0,0,2534,2535,3,569,284,0,2535,2536,5,39,0,0,2536,2538,1,0,0,0,2537,
+        2529,1,0,0,0,2537,2533,1,0,0,0,2538,562,1,0,0,0,2539,2540,5,34,0,
+        0,2540,2544,5,34,0,0,2541,2542,5,39,0,0,2542,2544,5,39,0,0,2543,
+        2539,1,0,0,0,2543,2541,1,0,0,0,2544,564,1,0,0,0,2545,2547,3,567,
+        283,0,2546,2545,1,0,0,0,2547,2548,1,0,0,0,2548,2546,1,0,0,0,2548,
+        2549,1,0,0,0,2549,566,1,0,0,0,2550,2554,8,8,0,0,2551,2554,3,573,
+        286,0,2552,2554,3,575,287,0,2553,2550,1,0,0,0,2553,2551,1,0,0,0,
+        2553,2552,1,0,0,0,2554,568,1,0,0,0,2555,2557,3,571,285,0,2556,2555,
+        1,0,0,0,2557,2558,1,0,0,0,2558,2556,1,0,0,0,2558,2559,1,0,0,0,2559,
+        570,1,0,0,0,2560,2564,8,9,0,0,2561,2564,3,573,286,0,2562,2564,3,
+        575,287,0,2563,2560,1,0,0,0,2563,2561,1,0,0,0,2563,2562,1,0,0,0,
+        2564,572,1,0,0,0,2565,2567,5,92,0,0,2566,2568,5,13,0,0,2567,2566,
+        1,0,0,0,2567,2568,1,0,0,0,2568,2569,1,0,0,0,2569,2570,5,10,0,0,2570,
+        574,1,0,0,0,2571,2572,5,92,0,0,2572,2576,7,10,0,0,2573,2576,3,577,
+        288,0,2574,2576,3,581,290,0,2575,2571,1,0,0,0,2575,2573,1,0,0,0,
+        2575,2574,1,0,0,0,2576,576,1,0,0,0,2577,2578,5,92,0,0,2578,2589,
+        3,539,269,0,2579,2580,5,92,0,0,2580,2581,3,539,269,0,2581,2582,3,
+        539,269,0,2582,2589,1,0,0,0,2583,2584,5,92,0,0,2584,2585,3,579,289,
+        0,2585,2586,3,539,269,0,2586,2587,3,539,269,0,2587,2589,1,0,0,0,
+        2588,2577,1,0,0,0,2588,2579,1,0,0,0,2588,2583,1,0,0,0,2589,578,1,
+        0,0,0,2590,2591,7,11,0,0,2591,580,1,0,0,0,2592,2594,5,92,0,0,2593,
+        2595,5,117,0,0,2594,2593,1,0,0,0,2595,2596,1,0,0,0,2596,2594,1,0,
+        0,0,2596,2597,1,0,0,0,2597,2598,1,0,0,0,2598,2599,3,529,264,0,2599,
+        2600,3,529,264,0,2600,2601,3,529,264,0,2601,2602,3,529,264,0,2602,
+        582,1,0,0,0,2603,2604,5,40,0,0,2604,584,1,0,0,0,2605,2606,5,41,0,
+        0,2606,586,1,0,0,0,2607,2608,5,123,0,0,2608,588,1,0,0,0,2609,2610,
+        5,125,0,0,2610,590,1,0,0,0,2611,2612,5,91,0,0,2612,592,1,0,0,0,2613,
+        2614,5,93,0,0,2614,594,1,0,0,0,2615,2616,5,59,0,0,2616,596,1,0,0,
+        0,2617,2618,5,44,0,0,2618,598,1,0,0,0,2619,2620,5,46,0,0,2620,600,
+        1,0,0,0,2621,2622,5,58,0,0,2622,602,1,0,0,0,2623,2624,5,103,0,0,
+        2624,604,1,0,0,0,2625,2626,5,95,0,0,2626,2627,5,95,0,0,2627,606,
+        1,0,0,0,2628,2630,7,12,0,0,2629,2628,1,0,0,0,2630,2631,1,0,0,0,2631,
+        2629,1,0,0,0,2631,2632,1,0,0,0,2632,2633,1,0,0,0,2633,2634,6,303,
+        0,0,2634,608,1,0,0,0,2635,2636,5,47,0,0,2636,2637,5,47,0,0,2637,
+        2641,1,0,0,0,2638,2640,8,13,0,0,2639,2638,1,0,0,0,2640,2643,1,0,
+        0,0,2641,2639,1,0,0,0,2641,2642,1,0,0,0,2642,2644,1,0,0,0,2643,2641,
+        1,0,0,0,2644,2645,6,304,0,0,2645,610,1,0,0,0,2646,2650,3,613,306,
+        0,2647,2649,3,615,307,0,2648,2647,1,0,0,0,2649,2652,1,0,0,0,2650,
+        2648,1,0,0,0,2650,2651,1,0,0,0,2651,612,1,0,0,0,2652,2650,1,0,0,
+        0,2653,2655,7,14,0,0,2654,2653,1,0,0,0,2655,614,1,0,0,0,2656,2659,
+        3,613,306,0,2657,2659,7,15,0,0,2658,2656,1,0,0,0,2658,2657,1,0,0,
+        0,2659,616,1,0,0,0,48,0,2376,2380,2384,2387,2391,2395,2399,2406,
+        2411,2413,2417,2420,2424,2431,2435,2440,2448,2451,2458,2462,2466,
+        2472,2475,2482,2486,2489,2497,2500,2503,2508,2516,2525,2537,2543,
+        2548,2553,2558,2563,2567,2575,2588,2596,2631,2641,2650,2654,2658,
+        1,6,0,0
+    ]
+
+class GremlinLexer(Lexer):
+
+    atn = ATNDeserializer().deserialize(serializedATN())
+
+    decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]
+
+    T__0 = 1
+    K_ADDALL = 2
+    K_ADDE = 3
+    K_ADDV = 4
+    K_AGGREGATE = 5
+    K_ALL = 6
+    K_AND = 7
+    K_ANY = 8
+    K_AS = 9
+    K_ASC = 10
+    K_ASDATE = 11
+    K_ASSTRING = 12
+    K_ASSIGN = 13
+    K_BARRIER = 14
+    K_BARRIERU = 15
+    K_BEGIN = 16
+    K_BETWEEN = 17
+    K_BOTH = 18
+    K_BOTHU = 19
+    K_BOTHE = 20
+    K_BOTHV = 21
+    K_BRANCH = 22
+    K_BY = 23
+    K_CALL = 24
+    K_CAP = 25
+    K_CARDINALITY = 26
+    K_CHOOSE = 27
+    K_COALESCE = 28
+    K_COIN = 29
+    K_COLUMN = 30
+    K_COMBINE = 31
+    K_COMMIT = 32
+    K_COMPONENT = 33
+    K_CONCAT = 34
+    K_CONJOIN = 35
+    K_CONNECTEDCOMPONENT = 36
+    K_CONNECTEDCOMPONENTU = 37
+    K_CONSTANT = 38
+    K_CONTAINING = 39
+    K_COUNT = 40
+    K_CYCLICPATH = 41
+    K_DAY = 42
+    K_DATEADD = 43
+    K_DATEDIFF = 44
+    K_DATETIME = 45
+    K_DATETIMEU = 46
+    K_DECR = 47
+    K_DEDUP = 48
+    K_DESC = 49
+    K_DIFFERENCE = 50
+    K_DIRECTION = 51
+    K_DISJUNCT = 52
+    K_DISTANCE = 53
+    K_DIV = 54
+    K_DROP = 55
+    K_DT = 56
+    K_E = 57
+    K_EDGES = 58
+    K_ELEMENTMAP = 59
+    K_ELEMENT = 60
+    K_EMIT = 61
+    K_ENDINGWITH = 62
+    K_EQ = 63
+    K_EXPLAIN = 64
+    K_FAIL = 65
+    K_FALSE = 66
+    K_FILTER = 67
+    K_FIRST = 68
+    K_FLATMAP = 69
+    K_FOLD = 70
+    K_FORMAT = 71
+    K_FROM = 72
+    K_GLOBAL = 73
+    K_GT = 74
+    K_GTE = 75
+    K_GRAPHML = 76
+    K_GRAPHSON = 77
+    K_GROUPCOUNT = 78
+    K_GROUP = 79
+    K_GRYO = 80
+    K_HAS = 81
+    K_HASID = 82
+    K_HASKEY = 83
+    K_HASLABEL = 84
+    K_HASNEXT = 85
+    K_HASNOT = 86
+    K_HASVALUE = 87
+    K_HOUR = 88
+    K_ID = 89
+    K_IDENTITY = 90
+    K_IDS = 91
+    K_IN = 92
+    K_INU = 93
+    K_INE = 94
+    K_INCLUDEEDGES = 95
+    K_INCR = 96
+    K_INDEXER = 97
+    K_INDEX = 98
+    K_INFINITY = 99
+    K_INJECT = 100
+    K_INSIDE = 101
+    K_INTERSECT = 102
+    K_INV = 103
+    K_IOU = 104
+    K_IO = 105
+    K_IS = 106
+    K_ITERATE = 107
+    K_KEY = 108
+    K_KEYS = 109
+    K_LABELS = 110
+    K_LABEL = 111
+    K_LAST = 112
+    K_LENGTH = 113
+    K_LIMIT = 114
+    K_LIST = 115
+    K_LOCAL = 116
+    K_LOOPS = 117
+    K_LT = 118
+    K_LTE = 119
+    K_LTRIM = 120
+    K_MAP = 121
+    K_MATCH = 122
+    K_MATH = 123
+    K_MAX = 124
+    K_MAXDISTANCE = 125
+    K_MEAN = 126
+    K_MERGEU = 127
+    K_MERGE = 128
+    K_MERGEE = 129
+    K_MERGEV = 130
+    K_MIN = 131
+    K_MINUTE = 132
+    K_MINUS = 133
+    K_MIXED = 134
+    K_MULT = 135
+    K_NAN = 136
+    K_NEGATE = 137
+    K_NEXT = 138
+    K_NONE = 139
+    K_NOTREGEX = 140
+    K_NOTCONTAINING = 141
+    K_NOTENDINGWITH = 142
+    K_NOTSTARTINGWITH = 143
+    K_NOT = 144
+    K_NEQ = 145
+    K_NEW = 146
+    K_NORMSACK = 147
+    K_NULL = 148
+    K_ONCREATE = 149
+    K_ONMATCH = 150
+    K_OPERATOR = 151
+    K_OPTION = 152
+    K_OPTIONAL = 153
+    K_ORDERU = 154
+    K_ORDER = 155
+    K_OR = 156
+    K_OTHERV = 157
+    K_OUTU = 158
+    K_OUT = 159
+    K_OUTE = 160
+    K_OUTSIDE = 161
+    K_OUTV = 162
+    K_P = 163
+    K_PAGERANKU = 164
+    K_PAGERANK = 165
+    K_PATH = 166
+    K_PEERPRESSUREU = 167
+    K_PEERPRESSURE = 168
+    K_PICK = 169
+    K_POP = 170
+    K_PROFILE = 171
+    K_PROJECT = 172
+    K_PROPERTIES = 173
+    K_PROPERTYMAP = 174
+    K_PROPERTYNAME = 175
+    K_PROPERTY = 176
+    K_PRODUCT = 177
+    K_RANGE = 178
+    K_READ = 179
+    K_READER = 180
+    K_REFERENCEVERTEX = 181
+    K_REGEX = 182
+    K_REPLACE = 183
+    K_REPEAT = 184
+    K_REVERSE = 185
+    K_ROLLBACK = 186
+    K_RTRIM = 187
+    K_SACK = 188
+    K_SAMPLE = 189
+    K_SCOPE = 190
+    K_SECOND = 191
+    K_SELECT = 192
+    K_SET = 193
+    K_SHORTESTPATHU = 194
+    K_SHORTESTPATH = 195
+    K_SHUFFLE = 196
+    K_SIDEEFFECT = 197
+    K_SIMPLEPATH = 198
+    K_SINGLE = 199
+    K_SKIP = 200
+    K_SPLIT = 201
+    K_STARTINGWITH = 202
+    K_STORE = 203
+    K_SUBGRAPH = 204
+    K_SUBSTRING = 205
+    K_SUM = 206
+    K_SUMLONG = 207
+    K_T = 208
+    K_TAIL = 209
+    K_TARGET = 210
+    K_TEXTP = 211
+    K_TIMELIMIT = 212
+    K_TIMES = 213
+    K_TO = 214
+    K_TOBULKSET = 215
+    K_TOKENS = 216
+    K_TOLIST = 217
+    K_TOLOWER = 218
+    K_TOSET = 219
+    K_TOSTRING = 220
+    K_TOUPPER = 221
+    K_TOE = 222
+    K_TOV = 223
+    K_TREE = 224
+    K_TRIM = 225
+    K_TRUE = 226
+    K_TRYNEXT = 227
+    K_TX = 228
+    K_UNFOLD = 229
+    K_UNION = 230
+    K_UNTIL = 231
+    K_UUID = 232
+    K_V = 233
+    K_VALUEMAP = 234
+    K_VALUES = 235
+    K_VALUE = 236
+    K_VERTEX = 237
+    K_WHERE = 238
+    K_WITH = 239
+    K_WITHBULK = 240
+    K_WITHIN = 241
+    K_WITHOPTOPTIONS = 242
+    K_WITHOUT = 243
+    K_WITHOUTSTRATEGIES = 244
+    K_WITHPATH = 245
+    K_WITHSACK = 246
+    K_WITHSIDEEFFECT = 247
+    K_WITHSTRATEGIES = 248
+    K_WRITE = 249
+    K_WRITER = 250
+    IntegerLiteral = 251
+    FloatingPointLiteral = 252
+    SignedInfLiteral = 253
+    NonEmptyStringLiteral = 254
+    EmptyStringLiteral = 255
+    LPAREN = 256
+    RPAREN = 257
+    LBRACE = 258
+    RBRACE = 259
+    LBRACK = 260
+    RBRACK = 261
+    SEMI = 262
+    COMMA = 263
+    DOT = 264
+    COLON = 265
+    TRAVERSAL_ROOT = 266
+    ANON_TRAVERSAL_ROOT = 267
+    WS = 268
+    LINE_COMMENT = 269
+    Identifier = 270
+
+    channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ]
+
+    modeNames = [ "DEFAULT_MODE" ]
+
+    literalNames = [ "<INVALID>",
+            "'discard'", "'addAll'", "'addE'", "'addV'", "'aggregate'", 
+            "'all'", "'and'", "'any'", "'as'", "'asc'", "'asDate'", "'asString'", 
+            "'assign'", "'barrier'", "'Barrier'", "'begin'", "'between'", 
+            "'both'", "'BOTH'", "'bothE'", "'bothV'", "'branch'", "'by'", 
+            "'call'", "'cap'", "'Cardinality'", "'choose'", "'coalesce'", 
+            "'coin'", "'Column'", "'combine'", "'commit'", "'component'", 
+            "'concat'", "'conjoin'", "'connectedComponent'", "'ConnectedComponent'", 
+            "'constant'", "'containing'", "'count'", "'cyclicPath'", "'day'", 
+            "'dateAdd'", "'dateDiff'", "'datetime'", "'DateTime'", "'decr'", 
+            "'dedup'", "'desc'", "'difference'", "'Direction'", "'disjunct'", 
+            "'distance'", "'div'", "'drop'", "'DT'", "'E'", "'edges'", "'elementMap'", 
+            "'element'", "'emit'", "'endingWith'", "'eq'", "'explain'", 
+            "'fail'", "'false'", "'filter'", "'first'", "'flatMap'", "'fold'", 
+            "'format'", "'from'", "'global'", "'gt'", "'gte'", "'graphml'", 
+            "'graphson'", "'groupCount'", "'group'", "'gryo'", "'has'", 
+            "'hasId'", "'hasKey'", "'hasLabel'", "'hasNext'", "'hasNot'", 
+            "'hasValue'", "'hour'", "'id'", "'identity'", "'ids'", "'in'", 
+            "'IN'", "'inE'", "'includeEdges'", "'incr'", "'indexer'", "'index'", 
+            "'Infinity'", "'inject'", "'inside'", "'intersect'", "'inV'", 
+            "'IO'", "'io'", "'is'", "'iterate'", "'key'", "'keys'", "'labels'", 
+            "'label'", "'last'", "'length'", "'limit'", "'list'", "'local'", 
+            "'loops'", "'lt'", "'lte'", "'lTrim'", "'map'", "'match'", "'math'", 
+            "'max'", "'maxDistance'", "'mean'", "'Merge'", "'merge'", "'mergeE'", 
+            "'mergeV'", "'min'", "'minute'", "'minus'", "'mixed'", "'mult'", 
+            "'NaN'", "'negate'", "'next'", "'none'", "'notRegex'", "'notContaining'", 
+            "'notEndingWith'", "'notStartingWith'", "'not'", "'neq'", "'new'", 
+            "'normSack'", "'null'", "'onCreate'", "'onMatch'", "'Operator'", 
+            "'option'", "'optional'", "'Order'", "'order'", "'or'", "'otherV'", 
+            "'OUT'", "'out'", "'outE'", "'outside'", "'outV'", "'P'", "'PageRank'", 
+            "'pageRank'", "'path'", "'PeerPressure'", "'peerPressure'", 
+            "'Pick'", "'Pop'", "'profile'", "'project'", "'properties'", 
+            "'propertyMap'", "'propertyName'", "'property'", "'product'", 
+            "'range'", "'read'", "'reader'", "'ReferenceVertex'", "'regex'", 
+            "'replace'", "'repeat'", "'reverse'", "'rollback'", "'rTrim'", 
+            "'sack'", "'sample'", "'Scope'", "'second'", "'select'", "'set'", 
+            "'ShortestPath'", "'shortestPath'", "'shuffle'", "'sideEffect'", 
+            "'simplePath'", "'single'", "'skip'", "'split'", "'startingWith'", 
+            "'store'", "'subgraph'", "'substring'", "'sum'", "'sumLong'", 
+            "'T'", "'tail'", "'target'", "'TextP'", "'timeLimit'", "'times'", 
+            "'to'", "'toBulkSet'", "'tokens'", "'toList'", "'toLower'", 
+            "'toSet'", "'toString'", "'toUpper'", "'toE'", "'toV'", "'tree'", 
+            "'trim'", "'true'", "'tryNext'", "'tx'", "'unfold'", "'union'", 
+            "'until'", "'UUID'", "'V'", "'valueMap'", "'values'", "'value'", 
+            "'Vertex'", "'where'", "'with'", "'withBulk'", "'within'", "'WithOptions'", 
+            "'without'", "'withoutStrategies'", "'withPath'", "'withSack'", 
+            "'withSideEffect'", "'withStrategies'", "'write'", "'writer'", 
+            "'('", "')'", "'{'", "'}'", "'['", "']'", "';'", "','", "'.'", 
+            "':'", "'g'", "'__'" ]
+
+    symbolicNames = [ "<INVALID>",
+            "K_ADDALL", "K_ADDE", "K_ADDV", "K_AGGREGATE", "K_ALL", "K_AND", 
+            "K_ANY", "K_AS", "K_ASC", "K_ASDATE", "K_ASSTRING", "K_ASSIGN", 
+            "K_BARRIER", "K_BARRIERU", "K_BEGIN", "K_BETWEEN", "K_BOTH", 
+            "K_BOTHU", "K_BOTHE", "K_BOTHV", "K_BRANCH", "K_BY", "K_CALL", 
+            "K_CAP", "K_CARDINALITY", "K_CHOOSE", "K_COALESCE", "K_COIN", 
+            "K_COLUMN", "K_COMBINE", "K_COMMIT", "K_COMPONENT", "K_CONCAT", 
+            "K_CONJOIN", "K_CONNECTEDCOMPONENT", "K_CONNECTEDCOMPONENTU", 
+            "K_CONSTANT", "K_CONTAINING", "K_COUNT", "K_CYCLICPATH", "K_DAY", 
+            "K_DATEADD", "K_DATEDIFF", "K_DATETIME", "K_DATETIMEU", "K_DECR", 
+            "K_DEDUP", "K_DESC", "K_DIFFERENCE", "K_DIRECTION", "K_DISJUNCT", 
+            "K_DISTANCE", "K_DIV", "K_DROP", "K_DT", "K_E", "K_EDGES", "K_ELEMENTMAP", 
+            "K_ELEMENT", "K_EMIT", "K_ENDINGWITH", "K_EQ", "K_EXPLAIN", 
+            "K_FAIL", "K_FALSE", "K_FILTER", "K_FIRST", "K_FLATMAP", "K_FOLD", 
+            "K_FORMAT", "K_FROM", "K_GLOBAL", "K_GT", "K_GTE", "K_GRAPHML", 
+            "K_GRAPHSON", "K_GROUPCOUNT", "K_GROUP", "K_GRYO", "K_HAS", 
+            "K_HASID", "K_HASKEY", "K_HASLABEL", "K_HASNEXT", "K_HASNOT", 
+            "K_HASVALUE", "K_HOUR", "K_ID", "K_IDENTITY", "K_IDS", "K_IN", 
+            "K_INU", "K_INE", "K_INCLUDEEDGES", "K_INCR", "K_INDEXER", "K_INDEX", 
+            "K_INFINITY", "K_INJECT", "K_INSIDE", "K_INTERSECT", "K_INV", 
+            "K_IOU", "K_IO", "K_IS", "K_ITERATE", "K_KEY", "K_KEYS", "K_LABELS", 
+            "K_LABEL", "K_LAST", "K_LENGTH", "K_LIMIT", "K_LIST", "K_LOCAL", 
+            "K_LOOPS", "K_LT", "K_LTE", "K_LTRIM", "K_MAP", "K_MATCH", "K_MATH", 
+            "K_MAX", "K_MAXDISTANCE", "K_MEAN", "K_MERGEU", "K_MERGE", "K_MERGEE", 
+            "K_MERGEV", "K_MIN", "K_MINUTE", "K_MINUS", "K_MIXED", "K_MULT", 
+            "K_NAN", "K_NEGATE", "K_NEXT", "K_NONE", "K_NOTREGEX", "K_NOTCONTAINING", 
+            "K_NOTENDINGWITH", "K_NOTSTARTINGWITH", "K_NOT", "K_NEQ", "K_NEW", 
+            "K_NORMSACK", "K_NULL", "K_ONCREATE", "K_ONMATCH", "K_OPERATOR", 
+            "K_OPTION", "K_OPTIONAL", "K_ORDERU", "K_ORDER", "K_OR", "K_OTHERV", 
+            "K_OUTU", "K_OUT", "K_OUTE", "K_OUTSIDE", "K_OUTV", "K_P", "K_PAGERANKU", 
+            "K_PAGERANK", "K_PATH", "K_PEERPRESSUREU", "K_PEERPRESSURE", 
+            "K_PICK", "K_POP", "K_PROFILE", "K_PROJECT", "K_PROPERTIES", 
+            "K_PROPERTYMAP", "K_PROPERTYNAME", "K_PROPERTY", "K_PRODUCT", 
+            "K_RANGE", "K_READ", "K_READER", "K_REFERENCEVERTEX", "K_REGEX", 
+            "K_REPLACE", "K_REPEAT", "K_REVERSE", "K_ROLLBACK", "K_RTRIM", 
+            "K_SACK", "K_SAMPLE", "K_SCOPE", "K_SECOND", "K_SELECT", "K_SET", 
+            "K_SHORTESTPATHU", "K_SHORTESTPATH", "K_SHUFFLE", "K_SIDEEFFECT", 
+            "K_SIMPLEPATH", "K_SINGLE", "K_SKIP", "K_SPLIT", "K_STARTINGWITH", 
+            "K_STORE", "K_SUBGRAPH", "K_SUBSTRING", "K_SUM", "K_SUMLONG", 
+            "K_T", "K_TAIL", "K_TARGET", "K_TEXTP", "K_TIMELIMIT", "K_TIMES", 
+            "K_TO", "K_TOBULKSET", "K_TOKENS", "K_TOLIST", "K_TOLOWER", 
+            "K_TOSET", "K_TOSTRING", "K_TOUPPER", "K_TOE", "K_TOV", "K_TREE", 
+            "K_TRIM", "K_TRUE", "K_TRYNEXT", "K_TX", "K_UNFOLD", "K_UNION", 
+            "K_UNTIL", "K_UUID", "K_V", "K_VALUEMAP", "K_VALUES", "K_VALUE", 
+            "K_VERTEX", "K_WHERE", "K_WITH", "K_WITHBULK", "K_WITHIN", "K_WITHOPTOPTIONS", 
+            "K_WITHOUT", "K_WITHOUTSTRATEGIES", "K_WITHPATH", "K_WITHSACK", 
+            "K_WITHSIDEEFFECT", "K_WITHSTRATEGIES", "K_WRITE", "K_WRITER", 
+            "IntegerLiteral", "FloatingPointLiteral", "SignedInfLiteral", 
+            "NonEmptyStringLiteral", "EmptyStringLiteral", "LPAREN", "RPAREN", 
+            "LBRACE", "RBRACE", "LBRACK", "RBRACK", "SEMI", "COMMA", "DOT", 
+            "COLON", "TRAVERSAL_ROOT", "ANON_TRAVERSAL_ROOT", "WS", "LINE_COMMENT", 
+            "Identifier" ]
+
+    ruleNames = [ "T__0", "K_ADDALL", "K_ADDE", "K_ADDV", "K_AGGREGATE", 
+                  "K_ALL", "K_AND", "K_ANY", "K_AS", "K_ASC", "K_ASDATE", 
+                  "K_ASSTRING", "K_ASSIGN", "K_BARRIER", "K_BARRIERU", "K_BEGIN", 
+                  "K_BETWEEN", "K_BOTH", "K_BOTHU", "K_BOTHE", "K_BOTHV", 
+                  "K_BRANCH", "K_BY", "K_CALL", "K_CAP", "K_CARDINALITY", 
+                  "K_CHOOSE", "K_COALESCE", "K_COIN", "K_COLUMN", "K_COMBINE", 
+                  "K_COMMIT", "K_COMPONENT", "K_CONCAT", "K_CONJOIN", "K_CONNECTEDCOMPONENT", 
+                  "K_CONNECTEDCOMPONENTU", "K_CONSTANT", "K_CONTAINING", 
+                  "K_COUNT", "K_CYCLICPATH", "K_DAY", "K_DATEADD", "K_DATEDIFF", 
+                  "K_DATETIME", "K_DATETIMEU", "K_DECR", "K_DEDUP", "K_DESC", 
+                  "K_DIFFERENCE", "K_DIRECTION", "K_DISJUNCT", "K_DISTANCE", 
+                  "K_DIV", "K_DROP", "K_DT", "K_E", "K_EDGES", "K_ELEMENTMAP", 
+                  "K_ELEMENT", "K_EMIT", "K_ENDINGWITH", "K_EQ", "K_EXPLAIN", 
+                  "K_FAIL", "K_FALSE", "K_FILTER", "K_FIRST", "K_FLATMAP", 
+                  "K_FOLD", "K_FORMAT", "K_FROM", "K_GLOBAL", "K_GT", "K_GTE", 
+                  "K_GRAPHML", "K_GRAPHSON", "K_GROUPCOUNT", "K_GROUP", 
+                  "K_GRYO", "K_HAS", "K_HASID", "K_HASKEY", "K_HASLABEL", 
+                  "K_HASNEXT", "K_HASNOT", "K_HASVALUE", "K_HOUR", "K_ID", 
+                  "K_IDENTITY", "K_IDS", "K_IN", "K_INU", "K_INE", "K_INCLUDEEDGES", 
+                  "K_INCR", "K_INDEXER", "K_INDEX", "K_INFINITY", "K_INJECT", 
+                  "K_INSIDE", "K_INTERSECT", "K_INV", "K_IOU", "K_IO", "K_IS", 
+                  "K_ITERATE", "K_KEY", "K_KEYS", "K_LABELS", "K_LABEL", 
+                  "K_LAST", "K_LENGTH", "K_LIMIT", "K_LIST", "K_LOCAL", 
+                  "K_LOOPS", "K_LT", "K_LTE", "K_LTRIM", "K_MAP", "K_MATCH", 
+                  "K_MATH", "K_MAX", "K_MAXDISTANCE", "K_MEAN", "K_MERGEU", 
+                  "K_MERGE", "K_MERGEE", "K_MERGEV", "K_MIN", "K_MINUTE", 
+                  "K_MINUS", "K_MIXED", "K_MULT", "K_NAN", "K_NEGATE", "K_NEXT", 
+                  "K_NONE", "K_NOTREGEX", "K_NOTCONTAINING", "K_NOTENDINGWITH", 
+                  "K_NOTSTARTINGWITH", "K_NOT", "K_NEQ", "K_NEW", "K_NORMSACK", 
+                  "K_NULL", "K_ONCREATE", "K_ONMATCH", "K_OPERATOR", "K_OPTION", 
+                  "K_OPTIONAL", "K_ORDERU", "K_ORDER", "K_OR", "K_OTHERV", 
+                  "K_OUTU", "K_OUT", "K_OUTE", "K_OUTSIDE", "K_OUTV", "K_P", 
+                  "K_PAGERANKU", "K_PAGERANK", "K_PATH", "K_PEERPRESSUREU", 
+                  "K_PEERPRESSURE", "K_PICK", "K_POP", "K_PROFILE", "K_PROJECT", 
+                  "K_PROPERTIES", "K_PROPERTYMAP", "K_PROPERTYNAME", "K_PROPERTY", 
+                  "K_PRODUCT", "K_RANGE", "K_READ", "K_READER", "K_REFERENCEVERTEX", 
+                  "K_REGEX", "K_REPLACE", "K_REPEAT", "K_REVERSE", "K_ROLLBACK", 
+                  "K_RTRIM", "K_SACK", "K_SAMPLE", "K_SCOPE", "K_SECOND", 
+                  "K_SELECT", "K_SET", "K_SHORTESTPATHU", "K_SHORTESTPATH", 
+                  "K_SHUFFLE", "K_SIDEEFFECT", "K_SIMPLEPATH", "K_SINGLE", 
+                  "K_SKIP", "K_SPLIT", "K_STARTINGWITH", "K_STORE", "K_SUBGRAPH", 
+                  "K_SUBSTRING", "K_SUM", "K_SUMLONG", "K_T", "K_TAIL", 
+                  "K_TARGET", "K_TEXTP", "K_TIMELIMIT", "K_TIMES", "K_TO", 
+                  "K_TOBULKSET", "K_TOKENS", "K_TOLIST", "K_TOLOWER", "K_TOSET", 
+                  "K_TOSTRING", "K_TOUPPER", "K_TOE", "K_TOV", "K_TREE", 
+                  "K_TRIM", "K_TRUE", "K_TRYNEXT", "K_TX", "K_UNFOLD", "K_UNION", 
+                  "K_UNTIL", "K_UUID", "K_V", "K_VALUEMAP", "K_VALUES", 
+                  "K_VALUE", "K_VERTEX", "K_WHERE", "K_WITH", "K_WITHBULK", 
+                  "K_WITHIN", "K_WITHOPTOPTIONS", "K_WITHOUT", "K_WITHOUTSTRATEGIES", 
+                  "K_WITHPATH", "K_WITHSACK", "K_WITHSIDEEFFECT", "K_WITHSTRATEGIES", 
+                  "K_WRITE", "K_WRITER", "IntegerLiteral", "DecimalIntegerLiteral", 
+                  "HexIntegerLiteral", "OctalIntegerLiteral", "IntegerTypeSuffix", 
+                  "DecimalNumeral", "Digits", "Digit", "NonZeroDigit", "DigitsAndUnderscores", 
+                  "DigitOrUnderscore", "Underscores", "HexNumeral", "HexDigits", 
+                  "HexDigit", "HexDigitsAndUnderscores", "HexDigitOrUnderscore", 
+                  "OctalNumeral", "OctalDigits", "OctalDigit", "OctalDigitsAndUnderscores", 
+                  "OctalDigitOrUnderscore", "FloatingPointLiteral", "DecimalFloatingPointLiteral", 
+                  "ExponentPart", "ExponentIndicator", "SignedInteger", 
+                  "Sign", "FloatTypeSuffix", "SignedInfLiteral", "NonEmptyStringLiteral", 
+                  "EmptyStringLiteral", "DoubleQuotedStringCharacters", 
+                  "DoubleQuotedStringCharacter", "SingleQuotedStringCharacters", 
+                  "SingleQuotedStringCharacter", "JoinLineEscape", "EscapeSequence", 
+                  "OctalEscape", "ZeroToThree", "UnicodeEscape", "LPAREN", 
+                  "RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK", "SEMI", 
+                  "COMMA", "DOT", "COLON", "TRAVERSAL_ROOT", "ANON_TRAVERSAL_ROOT", 
+                  "WS", "LINE_COMMENT", "Identifier", "IdentifierStart", 
+                  "IdentifierPart" ]
+
+    grammarFileName = "Gremlin.g4"
+
+    def __init__(self, input=None, output:TextIO = sys.stdout):
+        super().__init__(input, output)
+        self.checkVersion("4.13.1")
+        self._interp = LexerATNSimulator(self, self.atn, self.decisionsToDFA, PredictionContextCache())
+        self._actions = None
+        self._predicates = None
+
+
diff --git a/text2gremlin/AST_Text2Gremlin/base/gremlin/GremlinLexer.tokens b/text2gremlin/AST_Text2Gremlin/base/gremlin/GremlinLexer.tokens
new file mode 100644
index 00000000..0b40f3f1
--- /dev/null
+++ b/text2gremlin/AST_Text2Gremlin/base/gremlin/GremlinLexer.tokens
@@ -0,0 +1,532 @@
+T__0=1
+K_ADDALL=2
+K_ADDE=3
+K_ADDV=4
+K_AGGREGATE=5
+K_ALL=6
+K_AND=7
+K_ANY=8
+K_AS=9
+K_ASC=10
+K_ASDATE=11
+K_ASSTRING=12
+K_ASSIGN=13
+K_BARRIER=14
+K_BARRIERU=15
+K_BEGIN=16
+K_BETWEEN=17
+K_BOTH=18
+K_BOTHU=19
+K_BOTHE=20
+K_BOTHV=21
+K_BRANCH=22
+K_BY=23
+K_CALL=24
+K_CAP=25
+K_CARDINALITY=26
+K_CHOOSE=27
+K_COALESCE=28
+K_COIN=29
+K_COLUMN=30
+K_COMBINE=31
+K_COMMIT=32
+K_COMPONENT=33
+K_CONCAT=34
+K_CONJOIN=35
+K_CONNECTEDCOMPONENT=36
+K_CONNECTEDCOMPONENTU=37
+K_CONSTANT=38
+K_CONTAINING=39
+K_COUNT=40
+K_CYCLICPATH=41
+K_DAY=42
+K_DATEADD=43
+K_DATEDIFF=44
+K_DATETIME=45
+K_DATETIMEU=46
+K_DECR=47
+K_DEDUP=48
+K_DESC=49
+K_DIFFERENCE=50
+K_DIRECTION=51
+K_DISJUNCT=52
+K_DISTANCE=53
+K_DIV=54
+K_DROP=55
+K_DT=56
+K_E=57
+K_EDGES=58
+K_ELEMENTMAP=59
+K_ELEMENT=60
+K_EMIT=61
+K_ENDINGWITH=62
+K_EQ=63
+K_EXPLAIN=64
+K_FAIL=65
+K_FALSE=66
+K_FILTER=67
+K_FIRST=68
+K_FLATMAP=69
+K_FOLD=70
+K_FORMAT=71
+K_FROM=72
+K_GLOBAL=73
+K_GT=74
+K_GTE=75
+K_GRAPHML=76
+K_GRAPHSON=77
+K_GROUPCOUNT=78
+K_GROUP=79
+K_GRYO=80
+K_HAS=81
+K_HASID=82
+K_HASKEY=83
+K_HASLABEL=84
+K_HASNEXT=85
+K_HASNOT=86
+K_HASVALUE=87
+K_HOUR=88
+K_ID=89
+K_IDENTITY=90
+K_IDS=91
+K_IN=92
+K_INU=93
+K_INE=94
+K_INCLUDEEDGES=95
+K_INCR=96
+K_INDEXER=97
+K_INDEX=98
+K_INFINITY=99
+K_INJECT=100
+K_INSIDE=101
+K_INTERSECT=102
+K_INV=103
+K_IOU=104
+K_IO=105
+K_IS=106
+K_ITERATE=107
+K_KEY=108
+K_KEYS=109
+K_LABELS=110
+K_LABEL=111
+K_LAST=112
+K_LENGTH=113
+K_LIMIT=114
+K_LIST=115
+K_LOCAL=116
+K_LOOPS=117
+K_LT=118
+K_LTE=119
+K_LTRIM=120
+K_MAP=121
+K_MATCH=122
+K_MATH=123
+K_MAX=124
+K_MAXDISTANCE=125
+K_MEAN=126
+K_MERGEU=127
+K_MERGE=128
+K_MERGEE=129
+K_MERGEV=130
+K_MIN=131
+K_MINUTE=132
+K_MINUS=133
+K_MIXED=134
+K_MULT=135
+K_NAN=136
+K_NEGATE=137
+K_NEXT=138
+K_NONE=139
+K_NOTREGEX=140
+K_NOTCONTAINING=141
+K_NOTENDINGWITH=142
+K_NOTSTARTINGWITH=143
+K_NOT=144
+K_NEQ=145
+K_NEW=146
+K_NORMSACK=147
+K_NULL=148
+K_ONCREATE=149
+K_ONMATCH=150
+K_OPERATOR=151
+K_OPTION=152
+K_OPTIONAL=153
+K_ORDERU=154
+K_ORDER=155
+K_OR=156
+K_OTHERV=157
+K_OUTU=158
+K_OUT=159
+K_OUTE=160
+K_OUTSIDE=161
+K_OUTV=162
+K_P=163
+K_PAGERANKU=164
+K_PAGERANK=165
+K_PATH=166
+K_PEERPRESSUREU=167
+K_PEERPRESSURE=168
+K_PICK=169
+K_POP=170
+K_PROFILE=171
+K_PROJECT=172
+K_PROPERTIES=173
+K_PROPERTYMAP=174
+K_PROPERTYNAME=175
+K_PROPERTY=176
+K_PRODUCT=177
+K_RANGE=178
+K_READ=179
+K_READER=180
+K_REFERENCEVERTEX=181
+K_REGEX=182
+K_REPLACE=183
+K_REPEAT=184
+K_REVERSE=185
+K_ROLLBACK=186
+K_RTRIM=187
+K_SACK=188
+K_SAMPLE=189
+K_SCOPE=190
+K_SECOND=191
+K_SELECT=192
+K_SET=193
+K_SHORTESTPATHU=194
+K_SHORTESTPATH=195
+K_SHUFFLE=196
+K_SIDEEFFECT=197
+K_SIMPLEPATH=198
+K_SINGLE=199
+K_SKIP=200
+K_SPLIT=201
+K_STARTINGWITH=202
+K_STORE=203
+K_SUBGRAPH=204
+K_SUBSTRING=205
+K_SUM=206
+K_SUMLONG=207
+K_T=208
+K_TAIL=209
+K_TARGET=210
+K_TEXTP=211
+K_TIMELIMIT=212
+K_TIMES=213
+K_TO=214
+K_TOBULKSET=215
+K_TOKENS=216
+K_TOLIST=217
+K_TOLOWER=218
+K_TOSET=219
+K_TOSTRING=220
+K_TOUPPER=221
+K_TOE=222
+K_TOV=223
+K_TREE=224
+K_TRIM=225
+K_TRUE=226
+K_TRYNEXT=227
+K_TX=228
+K_UNFOLD=229
+K_UNION=230
+K_UNTIL=231
+K_UUID=232
+K_V=233
+K_VALUEMAP=234
+K_VALUES=235
+K_VALUE=236
+K_VERTEX=237
+K_WHERE=238
+K_WITH=239
+K_WITHBULK=240
+K_WITHIN=241
+K_WITHOPTOPTIONS=242
+K_WITHOUT=243
+K_WITHOUTSTRATEGIES=244
+K_WITHPATH=245
+K_WITHSACK=246
+K_WITHSIDEEFFECT=247
+K_WITHSTRATEGIES=248
+K_WRITE=249
+K_WRITER=250
+IntegerLiteral=251
+FloatingPointLiteral=252
+SignedInfLiteral=253
+NonEmptyStringLiteral=254
+EmptyStringLiteral=255
+LPAREN=256
+RPAREN=257
+LBRACE=258
+RBRACE=259
+LBRACK=260
+RBRACK=261
+SEMI=262
+COMMA=263
+DOT=264
+COLON=265
+TRAVERSAL_ROOT=266
+ANON_TRAVERSAL_ROOT=267
+WS=268
+LINE_COMMENT=269
+Identifier=270
+'discard'=1
+'addAll'=2
+'addE'=3
+'addV'=4
+'aggregate'=5
+'all'=6
+'and'=7
+'any'=8
+'as'=9
+'asc'=10
+'asDate'=11
+'asString'=12
+'assign'=13
+'barrier'=14
+'Barrier'=15
+'begin'=16
+'between'=17
+'both'=18
+'BOTH'=19
+'bothE'=20
+'bothV'=21
+'branch'=22
+'by'=23
+'call'=24
+'cap'=25
+'Cardinality'=26
+'choose'=27
+'coalesce'=28
+'coin'=29
+'Column'=30
+'combine'=31
+'commit'=32
+'component'=33
+'concat'=34
+'conjoin'=35
+'connectedComponent'=36
+'ConnectedComponent'=37
+'constant'=38
+'containing'=39
+'count'=40
+'cyclicPath'=41
+'day'=42
+'dateAdd'=43
+'dateDiff'=44
+'datetime'=45
+'DateTime'=46
+'decr'=47
+'dedup'=48
+'desc'=49
+'difference'=50
+'Direction'=51
+'disjunct'=52
+'distance'=53
+'div'=54
+'drop'=55
+'DT'=56
+'E'=57
+'edges'=58
+'elementMap'=59
+'element'=60
+'emit'=61
+'endingWith'=62
+'eq'=63
+'explain'=64
+'fail'=65
+'false'=66
+'filter'=67
+'first'=68
+'flatMap'=69
+'fold'=70
+'format'=71
+'from'=72
+'global'=73
+'gt'=74
+'gte'=75
+'graphml'=76
+'graphson'=77
+'groupCount'=78
+'group'=79
+'gryo'=80
+'has'=81
+'hasId'=82
+'hasKey'=83
+'hasLabel'=84
+'hasNext'=85
+'hasNot'=86
+'hasValue'=87
+'hour'=88
+'id'=89
+'identity'=90
+'ids'=91
+'in'=92
+'IN'=93
+'inE'=94
+'includeEdges'=95
+'incr'=96
+'indexer'=97
+'index'=98
+'Infinity'=99
+'inject'=100
+'inside'=101
+'intersect'=102
+'inV'=103
+'IO'=104
+'io'=105
+'is'=106
+'iterate'=107
+'key'=108
+'keys'=109
+'labels'=110
+'label'=111
+'last'=112
+'length'=113
+'limit'=114
+'list'=115
+'local'=116
+'loops'=117
+'lt'=118
+'lte'=119
+'lTrim'=120
+'map'=121
+'match'=122
+'math'=123
+'max'=124
+'maxDistance'=125
+'mean'=126
+'Merge'=127
+'merge'=128
+'mergeE'=129
+'mergeV'=130
+'min'=131
+'minute'=132
+'minus'=133
+'mixed'=134
+'mult'=135
+'NaN'=136
+'negate'=137
+'next'=138
+'none'=139
+'notRegex'=140
+'notContaining'=141
+'notEndingWith'=142
+'notStartingWith'=143
+'not'=144
+'neq'=145
+'new'=146
+'normSack'=147
+'null'=148
+'onCreate'=149
+'onMatch'=150
+'Operator'=151
+'option'=152
+'optional'=153
+'Order'=154
+'order'=155
+'or'=156
+'otherV'=157
+'OUT'=158
+'out'=159
+'outE'=160
+'outside'=161
+'outV'=162
+'P'=163
+'PageRank'=164
+'pageRank'=165
+'path'=166
+'PeerPressure'=167
+'peerPressure'=168
+'Pick'=169
+'Pop'=170
+'profile'=171
+'project'=172
+'properties'=173
+'propertyMap'=174
+'propertyName'=175
+'property'=176
+'product'=177
+'range'=178
+'read'=179
+'reader'=180
+'ReferenceVertex'=181
+'regex'=182
+'replace'=183
+'repeat'=184
+'reverse'=185
+'rollback'=186
+'rTrim'=187
+'sack'=188
+'sample'=189
+'Scope'=190
+'second'=191
+'select'=192
+'set'=193
+'ShortestPath'=194
+'shortestPath'=195
+'shuffle'=196
+'sideEffect'=197
+'simplePath'=198
+'single'=199
+'skip'=200
+'split'=201
+'startingWith'=202
+'store'=203
+'subgraph'=204
+'substring'=205
+'sum'=206
+'sumLong'=207
+'T'=208
+'tail'=209
+'target'=210
+'TextP'=211
+'timeLimit'=212
+'times'=213
+'to'=214
+'toBulkSet'=215
+'tokens'=216
+'toList'=217
+'toLower'=218
+'toSet'=219
+'toString'=220
+'toUpper'=221
+'toE'=222
+'toV'=223
+'tree'=224
+'trim'=225
+'true'=226
+'tryNext'=227
+'tx'=228
+'unfold'=229
+'union'=230
+'until'=231
+'UUID'=232
+'V'=233
+'valueMap'=234
+'values'=235
+'value'=236
+'Vertex'=237
+'where'=238
+'with'=239
+'withBulk'=240
+'within'=241
+'WithOptions'=242
+'without'=243
+'withoutStrategies'=244
+'withPath'=245
+'withSack'=246
+'withSideEffect'=247
+'withStrategies'=248
+'write'=249
+'writer'=250
+'('=256
+')'=257
+'{'=258
+'}'=259
+'['=260
+']'=261
+';'=262
+','=263
+'.'=264
+':'=265
+'g'=266
+'__'=267
diff --git a/text2gremlin/AST_Text2Gremlin/base/gremlin/GremlinListener.py b/text2gremlin/AST_Text2Gremlin/base/gremlin/GremlinListener.py
new file mode 100644
index 00000000..b9782b1b
--- /dev/null
+++ b/text2gremlin/AST_Text2Gremlin/base/gremlin/GremlinListener.py
@@ -0,0 +1,3747 @@
+# Generated from /root/lzj/ospp/Gremlin_Antlr4/Gremlin.g4 by ANTLR 4.13.1
+from antlr4 import *
+if "." in __name__:
+    from .GremlinParser import GremlinParser
+else:
+    from GremlinParser import GremlinParser
+
+# This class defines a complete listener for a parse tree produced by GremlinParser.
+class GremlinListener(ParseTreeListener):
+
+    # Enter a parse tree produced by GremlinParser#queryList.
+    def enterQueryList(self, ctx:GremlinParser.QueryListContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#queryList.
+    def exitQueryList(self, ctx:GremlinParser.QueryListContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#query.
+    def enterQuery(self, ctx:GremlinParser.QueryContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#query.
+    def exitQuery(self, ctx:GremlinParser.QueryContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#emptyQuery.
+    def enterEmptyQuery(self, ctx:GremlinParser.EmptyQueryContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#emptyQuery.
+    def exitEmptyQuery(self, ctx:GremlinParser.EmptyQueryContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSource.
+    def enterTraversalSource(self, ctx:GremlinParser.TraversalSourceContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSource.
+    def exitTraversalSource(self, ctx:GremlinParser.TraversalSourceContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#transactionPart.
+    def enterTransactionPart(self, ctx:GremlinParser.TransactionPartContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#transactionPart.
+    def exitTransactionPart(self, ctx:GremlinParser.TransactionPartContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#rootTraversal.
+    def enterRootTraversal(self, ctx:GremlinParser.RootTraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#rootTraversal.
+    def exitRootTraversal(self, ctx:GremlinParser.RootTraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSelfMethod.
+    def enterTraversalSourceSelfMethod(self, ctx:GremlinParser.TraversalSourceSelfMethodContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSelfMethod.
+    def exitTraversalSourceSelfMethod(self, ctx:GremlinParser.TraversalSourceSelfMethodContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSelfMethod_withBulk.
+    def enterTraversalSourceSelfMethod_withBulk(self, ctx:GremlinParser.TraversalSourceSelfMethod_withBulkContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSelfMethod_withBulk.
+    def exitTraversalSourceSelfMethod_withBulk(self, ctx:GremlinParser.TraversalSourceSelfMethod_withBulkContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSelfMethod_withPath.
+    def enterTraversalSourceSelfMethod_withPath(self, ctx:GremlinParser.TraversalSourceSelfMethod_withPathContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSelfMethod_withPath.
+    def exitTraversalSourceSelfMethod_withPath(self, ctx:GremlinParser.TraversalSourceSelfMethod_withPathContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSelfMethod_withSack.
+    def enterTraversalSourceSelfMethod_withSack(self, ctx:GremlinParser.TraversalSourceSelfMethod_withSackContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSelfMethod_withSack.
+    def exitTraversalSourceSelfMethod_withSack(self, ctx:GremlinParser.TraversalSourceSelfMethod_withSackContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSelfMethod_withSideEffect.
+    def enterTraversalSourceSelfMethod_withSideEffect(self, ctx:GremlinParser.TraversalSourceSelfMethod_withSideEffectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSelfMethod_withSideEffect.
+    def exitTraversalSourceSelfMethod_withSideEffect(self, ctx:GremlinParser.TraversalSourceSelfMethod_withSideEffectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSelfMethod_withStrategies.
+    def enterTraversalSourceSelfMethod_withStrategies(self, ctx:GremlinParser.TraversalSourceSelfMethod_withStrategiesContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSelfMethod_withStrategies.
+    def exitTraversalSourceSelfMethod_withStrategies(self, ctx:GremlinParser.TraversalSourceSelfMethod_withStrategiesContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSelfMethod_withoutStrategies.
+    def enterTraversalSourceSelfMethod_withoutStrategies(self, ctx:GremlinParser.TraversalSourceSelfMethod_withoutStrategiesContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSelfMethod_withoutStrategies.
+    def exitTraversalSourceSelfMethod_withoutStrategies(self, ctx:GremlinParser.TraversalSourceSelfMethod_withoutStrategiesContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSelfMethod_with.
+    def enterTraversalSourceSelfMethod_with(self, ctx:GremlinParser.TraversalSourceSelfMethod_withContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSelfMethod_with.
+    def exitTraversalSourceSelfMethod_with(self, ctx:GremlinParser.TraversalSourceSelfMethod_withContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSpawnMethod.
+    def enterTraversalSourceSpawnMethod(self, ctx:GremlinParser.TraversalSourceSpawnMethodContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSpawnMethod.
+    def exitTraversalSourceSpawnMethod(self, ctx:GremlinParser.TraversalSourceSpawnMethodContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSpawnMethod_addE.
+    def enterTraversalSourceSpawnMethod_addE(self, ctx:GremlinParser.TraversalSourceSpawnMethod_addEContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSpawnMethod_addE.
+    def exitTraversalSourceSpawnMethod_addE(self, ctx:GremlinParser.TraversalSourceSpawnMethod_addEContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSpawnMethod_addV.
+    def enterTraversalSourceSpawnMethod_addV(self, ctx:GremlinParser.TraversalSourceSpawnMethod_addVContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSpawnMethod_addV.
+    def exitTraversalSourceSpawnMethod_addV(self, ctx:GremlinParser.TraversalSourceSpawnMethod_addVContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSpawnMethod_E.
+    def enterTraversalSourceSpawnMethod_E(self, ctx:GremlinParser.TraversalSourceSpawnMethod_EContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSpawnMethod_E.
+    def exitTraversalSourceSpawnMethod_E(self, ctx:GremlinParser.TraversalSourceSpawnMethod_EContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSpawnMethod_V.
+    def enterTraversalSourceSpawnMethod_V(self, ctx:GremlinParser.TraversalSourceSpawnMethod_VContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSpawnMethod_V.
+    def exitTraversalSourceSpawnMethod_V(self, ctx:GremlinParser.TraversalSourceSpawnMethod_VContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSpawnMethod_inject.
+    def enterTraversalSourceSpawnMethod_inject(self, ctx:GremlinParser.TraversalSourceSpawnMethod_injectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSpawnMethod_inject.
+    def exitTraversalSourceSpawnMethod_inject(self, ctx:GremlinParser.TraversalSourceSpawnMethod_injectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSpawnMethod_io.
+    def enterTraversalSourceSpawnMethod_io(self, ctx:GremlinParser.TraversalSourceSpawnMethod_ioContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSpawnMethod_io.
+    def exitTraversalSourceSpawnMethod_io(self, ctx:GremlinParser.TraversalSourceSpawnMethod_ioContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSpawnMethod_mergeV_Map.
+    def enterTraversalSourceSpawnMethod_mergeV_Map(self, ctx:GremlinParser.TraversalSourceSpawnMethod_mergeV_MapContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSpawnMethod_mergeV_Map.
+    def exitTraversalSourceSpawnMethod_mergeV_Map(self, ctx:GremlinParser.TraversalSourceSpawnMethod_mergeV_MapContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSpawnMethod_mergeV_Traversal.
+    def enterTraversalSourceSpawnMethod_mergeV_Traversal(self, ctx:GremlinParser.TraversalSourceSpawnMethod_mergeV_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSpawnMethod_mergeV_Traversal.
+    def exitTraversalSourceSpawnMethod_mergeV_Traversal(self, ctx:GremlinParser.TraversalSourceSpawnMethod_mergeV_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSpawnMethod_mergeE_Map.
+    def enterTraversalSourceSpawnMethod_mergeE_Map(self, ctx:GremlinParser.TraversalSourceSpawnMethod_mergeE_MapContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSpawnMethod_mergeE_Map.
+    def exitTraversalSourceSpawnMethod_mergeE_Map(self, ctx:GremlinParser.TraversalSourceSpawnMethod_mergeE_MapContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSpawnMethod_mergeE_Traversal.
+    def enterTraversalSourceSpawnMethod_mergeE_Traversal(self, ctx:GremlinParser.TraversalSourceSpawnMethod_mergeE_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSpawnMethod_mergeE_Traversal.
+    def exitTraversalSourceSpawnMethod_mergeE_Traversal(self, ctx:GremlinParser.TraversalSourceSpawnMethod_mergeE_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSpawnMethod_call_empty.
+    def enterTraversalSourceSpawnMethod_call_empty(self, ctx:GremlinParser.TraversalSourceSpawnMethod_call_emptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSpawnMethod_call_empty.
+    def exitTraversalSourceSpawnMethod_call_empty(self, ctx:GremlinParser.TraversalSourceSpawnMethod_call_emptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSpawnMethod_call_string.
+    def enterTraversalSourceSpawnMethod_call_string(self, ctx:GremlinParser.TraversalSourceSpawnMethod_call_stringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSpawnMethod_call_string.
+    def exitTraversalSourceSpawnMethod_call_string(self, ctx:GremlinParser.TraversalSourceSpawnMethod_call_stringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSpawnMethod_call_string_map.
+    def enterTraversalSourceSpawnMethod_call_string_map(self, ctx:GremlinParser.TraversalSourceSpawnMethod_call_string_mapContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSpawnMethod_call_string_map.
+    def exitTraversalSourceSpawnMethod_call_string_map(self, ctx:GremlinParser.TraversalSourceSpawnMethod_call_string_mapContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSpawnMethod_call_string_traversal.
+    def enterTraversalSourceSpawnMethod_call_string_traversal(self, ctx:GremlinParser.TraversalSourceSpawnMethod_call_string_traversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSpawnMethod_call_string_traversal.
+    def exitTraversalSourceSpawnMethod_call_string_traversal(self, ctx:GremlinParser.TraversalSourceSpawnMethod_call_string_traversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSpawnMethod_call_string_map_traversal.
+    def enterTraversalSourceSpawnMethod_call_string_map_traversal(self, ctx:GremlinParser.TraversalSourceSpawnMethod_call_string_map_traversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSpawnMethod_call_string_map_traversal.
+    def exitTraversalSourceSpawnMethod_call_string_map_traversal(self, ctx:GremlinParser.TraversalSourceSpawnMethod_call_string_map_traversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalSourceSpawnMethod_union.
+    def enterTraversalSourceSpawnMethod_union(self, ctx:GremlinParser.TraversalSourceSpawnMethod_unionContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalSourceSpawnMethod_union.
+    def exitTraversalSourceSpawnMethod_union(self, ctx:GremlinParser.TraversalSourceSpawnMethod_unionContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#chainedTraversal.
+    def enterChainedTraversal(self, ctx:GremlinParser.ChainedTraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#chainedTraversal.
+    def exitChainedTraversal(self, ctx:GremlinParser.ChainedTraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#nestedTraversal.
+    def enterNestedTraversal(self, ctx:GremlinParser.NestedTraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#nestedTraversal.
+    def exitNestedTraversal(self, ctx:GremlinParser.NestedTraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#terminatedTraversal.
+    def enterTerminatedTraversal(self, ctx:GremlinParser.TerminatedTraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#terminatedTraversal.
+    def exitTerminatedTraversal(self, ctx:GremlinParser.TerminatedTraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod.
+    def enterTraversalMethod(self, ctx:GremlinParser.TraversalMethodContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod.
+    def exitTraversalMethod(self, ctx:GremlinParser.TraversalMethodContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_V.
+    def enterTraversalMethod_V(self, ctx:GremlinParser.TraversalMethod_VContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_V.
+    def exitTraversalMethod_V(self, ctx:GremlinParser.TraversalMethod_VContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_E.
+    def enterTraversalMethod_E(self, ctx:GremlinParser.TraversalMethod_EContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_E.
+    def exitTraversalMethod_E(self, ctx:GremlinParser.TraversalMethod_EContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_addE_String.
+    def enterTraversalMethod_addE_String(self, ctx:GremlinParser.TraversalMethod_addE_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_addE_String.
+    def exitTraversalMethod_addE_String(self, ctx:GremlinParser.TraversalMethod_addE_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_addE_Traversal.
+    def enterTraversalMethod_addE_Traversal(self, ctx:GremlinParser.TraversalMethod_addE_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_addE_Traversal.
+    def exitTraversalMethod_addE_Traversal(self, ctx:GremlinParser.TraversalMethod_addE_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_addV_Empty.
+    def enterTraversalMethod_addV_Empty(self, ctx:GremlinParser.TraversalMethod_addV_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_addV_Empty.
+    def exitTraversalMethod_addV_Empty(self, ctx:GremlinParser.TraversalMethod_addV_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_addV_String.
+    def enterTraversalMethod_addV_String(self, ctx:GremlinParser.TraversalMethod_addV_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_addV_String.
+    def exitTraversalMethod_addV_String(self, ctx:GremlinParser.TraversalMethod_addV_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_addV_Traversal.
+    def enterTraversalMethod_addV_Traversal(self, ctx:GremlinParser.TraversalMethod_addV_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_addV_Traversal.
+    def exitTraversalMethod_addV_Traversal(self, ctx:GremlinParser.TraversalMethod_addV_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_aggregate_Scope_String.
+    def enterTraversalMethod_aggregate_Scope_String(self, ctx:GremlinParser.TraversalMethod_aggregate_Scope_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_aggregate_Scope_String.
+    def exitTraversalMethod_aggregate_Scope_String(self, ctx:GremlinParser.TraversalMethod_aggregate_Scope_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_aggregate_String.
+    def enterTraversalMethod_aggregate_String(self, ctx:GremlinParser.TraversalMethod_aggregate_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_aggregate_String.
+    def exitTraversalMethod_aggregate_String(self, ctx:GremlinParser.TraversalMethod_aggregate_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_all_P.
+    def enterTraversalMethod_all_P(self, ctx:GremlinParser.TraversalMethod_all_PContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_all_P.
+    def exitTraversalMethod_all_P(self, ctx:GremlinParser.TraversalMethod_all_PContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_and.
+    def enterTraversalMethod_and(self, ctx:GremlinParser.TraversalMethod_andContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_and.
+    def exitTraversalMethod_and(self, ctx:GremlinParser.TraversalMethod_andContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_any_P.
+    def enterTraversalMethod_any_P(self, ctx:GremlinParser.TraversalMethod_any_PContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_any_P.
+    def exitTraversalMethod_any_P(self, ctx:GremlinParser.TraversalMethod_any_PContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_as.
+    def enterTraversalMethod_as(self, ctx:GremlinParser.TraversalMethod_asContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_as.
+    def exitTraversalMethod_as(self, ctx:GremlinParser.TraversalMethod_asContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_asDate.
+    def enterTraversalMethod_asDate(self, ctx:GremlinParser.TraversalMethod_asDateContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_asDate.
+    def exitTraversalMethod_asDate(self, ctx:GremlinParser.TraversalMethod_asDateContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_asString_Empty.
+    def enterTraversalMethod_asString_Empty(self, ctx:GremlinParser.TraversalMethod_asString_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_asString_Empty.
+    def exitTraversalMethod_asString_Empty(self, ctx:GremlinParser.TraversalMethod_asString_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_asString_Scope.
+    def enterTraversalMethod_asString_Scope(self, ctx:GremlinParser.TraversalMethod_asString_ScopeContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_asString_Scope.
+    def exitTraversalMethod_asString_Scope(self, ctx:GremlinParser.TraversalMethod_asString_ScopeContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_barrier_Consumer.
+    def enterTraversalMethod_barrier_Consumer(self, ctx:GremlinParser.TraversalMethod_barrier_ConsumerContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_barrier_Consumer.
+    def exitTraversalMethod_barrier_Consumer(self, ctx:GremlinParser.TraversalMethod_barrier_ConsumerContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_barrier_Empty.
+    def enterTraversalMethod_barrier_Empty(self, ctx:GremlinParser.TraversalMethod_barrier_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_barrier_Empty.
+    def exitTraversalMethod_barrier_Empty(self, ctx:GremlinParser.TraversalMethod_barrier_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_barrier_int.
+    def enterTraversalMethod_barrier_int(self, ctx:GremlinParser.TraversalMethod_barrier_intContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_barrier_int.
+    def exitTraversalMethod_barrier_int(self, ctx:GremlinParser.TraversalMethod_barrier_intContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_both.
+    def enterTraversalMethod_both(self, ctx:GremlinParser.TraversalMethod_bothContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_both.
+    def exitTraversalMethod_both(self, ctx:GremlinParser.TraversalMethod_bothContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_bothE.
+    def enterTraversalMethod_bothE(self, ctx:GremlinParser.TraversalMethod_bothEContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_bothE.
+    def exitTraversalMethod_bothE(self, ctx:GremlinParser.TraversalMethod_bothEContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_bothV.
+    def enterTraversalMethod_bothV(self, ctx:GremlinParser.TraversalMethod_bothVContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_bothV.
+    def exitTraversalMethod_bothV(self, ctx:GremlinParser.TraversalMethod_bothVContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_branch.
+    def enterTraversalMethod_branch(self, ctx:GremlinParser.TraversalMethod_branchContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_branch.
+    def exitTraversalMethod_branch(self, ctx:GremlinParser.TraversalMethod_branchContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_by_Comparator.
+    def enterTraversalMethod_by_Comparator(self, ctx:GremlinParser.TraversalMethod_by_ComparatorContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_by_Comparator.
+    def exitTraversalMethod_by_Comparator(self, ctx:GremlinParser.TraversalMethod_by_ComparatorContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_by_Empty.
+    def enterTraversalMethod_by_Empty(self, ctx:GremlinParser.TraversalMethod_by_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_by_Empty.
+    def exitTraversalMethod_by_Empty(self, ctx:GremlinParser.TraversalMethod_by_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_by_Function.
+    def enterTraversalMethod_by_Function(self, ctx:GremlinParser.TraversalMethod_by_FunctionContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_by_Function.
+    def exitTraversalMethod_by_Function(self, ctx:GremlinParser.TraversalMethod_by_FunctionContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_by_Function_Comparator.
+    def enterTraversalMethod_by_Function_Comparator(self, ctx:GremlinParser.TraversalMethod_by_Function_ComparatorContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_by_Function_Comparator.
+    def exitTraversalMethod_by_Function_Comparator(self, ctx:GremlinParser.TraversalMethod_by_Function_ComparatorContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_by_Order.
+    def enterTraversalMethod_by_Order(self, ctx:GremlinParser.TraversalMethod_by_OrderContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_by_Order.
+    def exitTraversalMethod_by_Order(self, ctx:GremlinParser.TraversalMethod_by_OrderContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_by_String.
+    def enterTraversalMethod_by_String(self, ctx:GremlinParser.TraversalMethod_by_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_by_String.
+    def exitTraversalMethod_by_String(self, ctx:GremlinParser.TraversalMethod_by_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_by_String_Comparator.
+    def enterTraversalMethod_by_String_Comparator(self, ctx:GremlinParser.TraversalMethod_by_String_ComparatorContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_by_String_Comparator.
+    def exitTraversalMethod_by_String_Comparator(self, ctx:GremlinParser.TraversalMethod_by_String_ComparatorContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_by_T.
+    def enterTraversalMethod_by_T(self, ctx:GremlinParser.TraversalMethod_by_TContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_by_T.
+    def exitTraversalMethod_by_T(self, ctx:GremlinParser.TraversalMethod_by_TContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_by_Traversal.
+    def enterTraversalMethod_by_Traversal(self, ctx:GremlinParser.TraversalMethod_by_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_by_Traversal.
+    def exitTraversalMethod_by_Traversal(self, ctx:GremlinParser.TraversalMethod_by_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_by_Traversal_Comparator.
+    def enterTraversalMethod_by_Traversal_Comparator(self, ctx:GremlinParser.TraversalMethod_by_Traversal_ComparatorContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_by_Traversal_Comparator.
+    def exitTraversalMethod_by_Traversal_Comparator(self, ctx:GremlinParser.TraversalMethod_by_Traversal_ComparatorContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_call_string.
+    def enterTraversalMethod_call_string(self, ctx:GremlinParser.TraversalMethod_call_stringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_call_string.
+    def exitTraversalMethod_call_string(self, ctx:GremlinParser.TraversalMethod_call_stringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_call_string_map.
+    def enterTraversalMethod_call_string_map(self, ctx:GremlinParser.TraversalMethod_call_string_mapContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_call_string_map.
+    def exitTraversalMethod_call_string_map(self, ctx:GremlinParser.TraversalMethod_call_string_mapContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_call_string_traversal.
+    def enterTraversalMethod_call_string_traversal(self, ctx:GremlinParser.TraversalMethod_call_string_traversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_call_string_traversal.
+    def exitTraversalMethod_call_string_traversal(self, ctx:GremlinParser.TraversalMethod_call_string_traversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_call_string_map_traversal.
+    def enterTraversalMethod_call_string_map_traversal(self, ctx:GremlinParser.TraversalMethod_call_string_map_traversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_call_string_map_traversal.
+    def exitTraversalMethod_call_string_map_traversal(self, ctx:GremlinParser.TraversalMethod_call_string_map_traversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_cap.
+    def enterTraversalMethod_cap(self, ctx:GremlinParser.TraversalMethod_capContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_cap.
+    def exitTraversalMethod_cap(self, ctx:GremlinParser.TraversalMethod_capContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_choose_Function.
+    def enterTraversalMethod_choose_Function(self, ctx:GremlinParser.TraversalMethod_choose_FunctionContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_choose_Function.
+    def exitTraversalMethod_choose_Function(self, ctx:GremlinParser.TraversalMethod_choose_FunctionContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_choose_Predicate_Traversal.
+    def enterTraversalMethod_choose_Predicate_Traversal(self, ctx:GremlinParser.TraversalMethod_choose_Predicate_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_choose_Predicate_Traversal.
+    def exitTraversalMethod_choose_Predicate_Traversal(self, ctx:GremlinParser.TraversalMethod_choose_Predicate_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_choose_Predicate_Traversal_Traversal.
+    def enterTraversalMethod_choose_Predicate_Traversal_Traversal(self, ctx:GremlinParser.TraversalMethod_choose_Predicate_Traversal_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_choose_Predicate_Traversal_Traversal.
+    def exitTraversalMethod_choose_Predicate_Traversal_Traversal(self, ctx:GremlinParser.TraversalMethod_choose_Predicate_Traversal_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_choose_Traversal.
+    def enterTraversalMethod_choose_Traversal(self, ctx:GremlinParser.TraversalMethod_choose_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_choose_Traversal.
+    def exitTraversalMethod_choose_Traversal(self, ctx:GremlinParser.TraversalMethod_choose_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_choose_Traversal_Traversal.
+    def enterTraversalMethod_choose_Traversal_Traversal(self, ctx:GremlinParser.TraversalMethod_choose_Traversal_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_choose_Traversal_Traversal.
+    def exitTraversalMethod_choose_Traversal_Traversal(self, ctx:GremlinParser.TraversalMethod_choose_Traversal_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_choose_Traversal_Traversal_Traversal.
+    def enterTraversalMethod_choose_Traversal_Traversal_Traversal(self, ctx:GremlinParser.TraversalMethod_choose_Traversal_Traversal_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_choose_Traversal_Traversal_Traversal.
+    def exitTraversalMethod_choose_Traversal_Traversal_Traversal(self, ctx:GremlinParser.TraversalMethod_choose_Traversal_Traversal_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_coalesce.
+    def enterTraversalMethod_coalesce(self, ctx:GremlinParser.TraversalMethod_coalesceContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_coalesce.
+    def exitTraversalMethod_coalesce(self, ctx:GremlinParser.TraversalMethod_coalesceContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_coin.
+    def enterTraversalMethod_coin(self, ctx:GremlinParser.TraversalMethod_coinContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_coin.
+    def exitTraversalMethod_coin(self, ctx:GremlinParser.TraversalMethod_coinContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_combine_Object.
+    def enterTraversalMethod_combine_Object(self, ctx:GremlinParser.TraversalMethod_combine_ObjectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_combine_Object.
+    def exitTraversalMethod_combine_Object(self, ctx:GremlinParser.TraversalMethod_combine_ObjectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_concat_Traversal_Traversal.
+    def enterTraversalMethod_concat_Traversal_Traversal(self, ctx:GremlinParser.TraversalMethod_concat_Traversal_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_concat_Traversal_Traversal.
+    def exitTraversalMethod_concat_Traversal_Traversal(self, ctx:GremlinParser.TraversalMethod_concat_Traversal_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_concat_String.
+    def enterTraversalMethod_concat_String(self, ctx:GremlinParser.TraversalMethod_concat_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_concat_String.
+    def exitTraversalMethod_concat_String(self, ctx:GremlinParser.TraversalMethod_concat_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_conjoin_String.
+    def enterTraversalMethod_conjoin_String(self, ctx:GremlinParser.TraversalMethod_conjoin_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_conjoin_String.
+    def exitTraversalMethod_conjoin_String(self, ctx:GremlinParser.TraversalMethod_conjoin_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_connectedComponent.
+    def enterTraversalMethod_connectedComponent(self, ctx:GremlinParser.TraversalMethod_connectedComponentContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_connectedComponent.
+    def exitTraversalMethod_connectedComponent(self, ctx:GremlinParser.TraversalMethod_connectedComponentContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_constant.
+    def enterTraversalMethod_constant(self, ctx:GremlinParser.TraversalMethod_constantContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_constant.
+    def exitTraversalMethod_constant(self, ctx:GremlinParser.TraversalMethod_constantContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_count_Empty.
+    def enterTraversalMethod_count_Empty(self, ctx:GremlinParser.TraversalMethod_count_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_count_Empty.
+    def exitTraversalMethod_count_Empty(self, ctx:GremlinParser.TraversalMethod_count_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_count_Scope.
+    def enterTraversalMethod_count_Scope(self, ctx:GremlinParser.TraversalMethod_count_ScopeContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_count_Scope.
+    def exitTraversalMethod_count_Scope(self, ctx:GremlinParser.TraversalMethod_count_ScopeContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_cyclicPath.
+    def enterTraversalMethod_cyclicPath(self, ctx:GremlinParser.TraversalMethod_cyclicPathContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_cyclicPath.
+    def exitTraversalMethod_cyclicPath(self, ctx:GremlinParser.TraversalMethod_cyclicPathContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_dateAdd.
+    def enterTraversalMethod_dateAdd(self, ctx:GremlinParser.TraversalMethod_dateAddContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_dateAdd.
+    def exitTraversalMethod_dateAdd(self, ctx:GremlinParser.TraversalMethod_dateAddContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_dateDiff_Traversal.
+    def enterTraversalMethod_dateDiff_Traversal(self, ctx:GremlinParser.TraversalMethod_dateDiff_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_dateDiff_Traversal.
+    def exitTraversalMethod_dateDiff_Traversal(self, ctx:GremlinParser.TraversalMethod_dateDiff_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_dateDiff_Date.
+    def enterTraversalMethod_dateDiff_Date(self, ctx:GremlinParser.TraversalMethod_dateDiff_DateContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_dateDiff_Date.
+    def exitTraversalMethod_dateDiff_Date(self, ctx:GremlinParser.TraversalMethod_dateDiff_DateContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_dedup_Scope_String.
+    def enterTraversalMethod_dedup_Scope_String(self, ctx:GremlinParser.TraversalMethod_dedup_Scope_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_dedup_Scope_String.
+    def exitTraversalMethod_dedup_Scope_String(self, ctx:GremlinParser.TraversalMethod_dedup_Scope_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_dedup_String.
+    def enterTraversalMethod_dedup_String(self, ctx:GremlinParser.TraversalMethod_dedup_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_dedup_String.
+    def exitTraversalMethod_dedup_String(self, ctx:GremlinParser.TraversalMethod_dedup_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_difference_Object.
+    def enterTraversalMethod_difference_Object(self, ctx:GremlinParser.TraversalMethod_difference_ObjectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_difference_Object.
+    def exitTraversalMethod_difference_Object(self, ctx:GremlinParser.TraversalMethod_difference_ObjectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_discard.
+    def enterTraversalMethod_discard(self, ctx:GremlinParser.TraversalMethod_discardContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_discard.
+    def exitTraversalMethod_discard(self, ctx:GremlinParser.TraversalMethod_discardContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_disjunct_Object.
+    def enterTraversalMethod_disjunct_Object(self, ctx:GremlinParser.TraversalMethod_disjunct_ObjectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_disjunct_Object.
+    def exitTraversalMethod_disjunct_Object(self, ctx:GremlinParser.TraversalMethod_disjunct_ObjectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_drop.
+    def enterTraversalMethod_drop(self, ctx:GremlinParser.TraversalMethod_dropContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_drop.
+    def exitTraversalMethod_drop(self, ctx:GremlinParser.TraversalMethod_dropContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_element.
+    def enterTraversalMethod_element(self, ctx:GremlinParser.TraversalMethod_elementContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_element.
+    def exitTraversalMethod_element(self, ctx:GremlinParser.TraversalMethod_elementContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_elementMap.
+    def enterTraversalMethod_elementMap(self, ctx:GremlinParser.TraversalMethod_elementMapContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_elementMap.
+    def exitTraversalMethod_elementMap(self, ctx:GremlinParser.TraversalMethod_elementMapContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_emit_Empty.
+    def enterTraversalMethod_emit_Empty(self, ctx:GremlinParser.TraversalMethod_emit_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_emit_Empty.
+    def exitTraversalMethod_emit_Empty(self, ctx:GremlinParser.TraversalMethod_emit_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_emit_Predicate.
+    def enterTraversalMethod_emit_Predicate(self, ctx:GremlinParser.TraversalMethod_emit_PredicateContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_emit_Predicate.
+    def exitTraversalMethod_emit_Predicate(self, ctx:GremlinParser.TraversalMethod_emit_PredicateContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_emit_Traversal.
+    def enterTraversalMethod_emit_Traversal(self, ctx:GremlinParser.TraversalMethod_emit_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_emit_Traversal.
+    def exitTraversalMethod_emit_Traversal(self, ctx:GremlinParser.TraversalMethod_emit_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_fail_Empty.
+    def enterTraversalMethod_fail_Empty(self, ctx:GremlinParser.TraversalMethod_fail_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_fail_Empty.
+    def exitTraversalMethod_fail_Empty(self, ctx:GremlinParser.TraversalMethod_fail_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_fail_String.
+    def enterTraversalMethod_fail_String(self, ctx:GremlinParser.TraversalMethod_fail_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_fail_String.
+    def exitTraversalMethod_fail_String(self, ctx:GremlinParser.TraversalMethod_fail_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_filter_Predicate.
+    def enterTraversalMethod_filter_Predicate(self, ctx:GremlinParser.TraversalMethod_filter_PredicateContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_filter_Predicate.
+    def exitTraversalMethod_filter_Predicate(self, ctx:GremlinParser.TraversalMethod_filter_PredicateContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_filter_Traversal.
+    def enterTraversalMethod_filter_Traversal(self, ctx:GremlinParser.TraversalMethod_filter_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_filter_Traversal.
+    def exitTraversalMethod_filter_Traversal(self, ctx:GremlinParser.TraversalMethod_filter_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_flatMap.
+    def enterTraversalMethod_flatMap(self, ctx:GremlinParser.TraversalMethod_flatMapContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_flatMap.
+    def exitTraversalMethod_flatMap(self, ctx:GremlinParser.TraversalMethod_flatMapContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_fold_Empty.
+    def enterTraversalMethod_fold_Empty(self, ctx:GremlinParser.TraversalMethod_fold_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_fold_Empty.
+    def exitTraversalMethod_fold_Empty(self, ctx:GremlinParser.TraversalMethod_fold_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_fold_Object_BiFunction.
+    def enterTraversalMethod_fold_Object_BiFunction(self, ctx:GremlinParser.TraversalMethod_fold_Object_BiFunctionContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_fold_Object_BiFunction.
+    def exitTraversalMethod_fold_Object_BiFunction(self, ctx:GremlinParser.TraversalMethod_fold_Object_BiFunctionContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_format_String.
+    def enterTraversalMethod_format_String(self, ctx:GremlinParser.TraversalMethod_format_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_format_String.
+    def exitTraversalMethod_format_String(self, ctx:GremlinParser.TraversalMethod_format_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_from_String.
+    def enterTraversalMethod_from_String(self, ctx:GremlinParser.TraversalMethod_from_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_from_String.
+    def exitTraversalMethod_from_String(self, ctx:GremlinParser.TraversalMethod_from_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_from_Vertex.
+    def enterTraversalMethod_from_Vertex(self, ctx:GremlinParser.TraversalMethod_from_VertexContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_from_Vertex.
+    def exitTraversalMethod_from_Vertex(self, ctx:GremlinParser.TraversalMethod_from_VertexContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_from_Traversal.
+    def enterTraversalMethod_from_Traversal(self, ctx:GremlinParser.TraversalMethod_from_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_from_Traversal.
+    def exitTraversalMethod_from_Traversal(self, ctx:GremlinParser.TraversalMethod_from_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_group_Empty.
+    def enterTraversalMethod_group_Empty(self, ctx:GremlinParser.TraversalMethod_group_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_group_Empty.
+    def exitTraversalMethod_group_Empty(self, ctx:GremlinParser.TraversalMethod_group_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_group_String.
+    def enterTraversalMethod_group_String(self, ctx:GremlinParser.TraversalMethod_group_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_group_String.
+    def exitTraversalMethod_group_String(self, ctx:GremlinParser.TraversalMethod_group_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_groupCount_Empty.
+    def enterTraversalMethod_groupCount_Empty(self, ctx:GremlinParser.TraversalMethod_groupCount_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_groupCount_Empty.
+    def exitTraversalMethod_groupCount_Empty(self, ctx:GremlinParser.TraversalMethod_groupCount_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_groupCount_String.
+    def enterTraversalMethod_groupCount_String(self, ctx:GremlinParser.TraversalMethod_groupCount_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_groupCount_String.
+    def exitTraversalMethod_groupCount_String(self, ctx:GremlinParser.TraversalMethod_groupCount_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_has_String.
+    def enterTraversalMethod_has_String(self, ctx:GremlinParser.TraversalMethod_has_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_has_String.
+    def exitTraversalMethod_has_String(self, ctx:GremlinParser.TraversalMethod_has_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_has_String_Object.
+    def enterTraversalMethod_has_String_Object(self, ctx:GremlinParser.TraversalMethod_has_String_ObjectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_has_String_Object.
+    def exitTraversalMethod_has_String_Object(self, ctx:GremlinParser.TraversalMethod_has_String_ObjectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_has_String_P.
+    def enterTraversalMethod_has_String_P(self, ctx:GremlinParser.TraversalMethod_has_String_PContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_has_String_P.
+    def exitTraversalMethod_has_String_P(self, ctx:GremlinParser.TraversalMethod_has_String_PContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_has_String_String_Object.
+    def enterTraversalMethod_has_String_String_Object(self, ctx:GremlinParser.TraversalMethod_has_String_String_ObjectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_has_String_String_Object.
+    def exitTraversalMethod_has_String_String_Object(self, ctx:GremlinParser.TraversalMethod_has_String_String_ObjectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_has_String_String_P.
+    def enterTraversalMethod_has_String_String_P(self, ctx:GremlinParser.TraversalMethod_has_String_String_PContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_has_String_String_P.
+    def exitTraversalMethod_has_String_String_P(self, ctx:GremlinParser.TraversalMethod_has_String_String_PContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_has_String_Traversal.
+    def enterTraversalMethod_has_String_Traversal(self, ctx:GremlinParser.TraversalMethod_has_String_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_has_String_Traversal.
+    def exitTraversalMethod_has_String_Traversal(self, ctx:GremlinParser.TraversalMethod_has_String_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_has_T_Object.
+    def enterTraversalMethod_has_T_Object(self, ctx:GremlinParser.TraversalMethod_has_T_ObjectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_has_T_Object.
+    def exitTraversalMethod_has_T_Object(self, ctx:GremlinParser.TraversalMethod_has_T_ObjectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_has_T_P.
+    def enterTraversalMethod_has_T_P(self, ctx:GremlinParser.TraversalMethod_has_T_PContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_has_T_P.
+    def exitTraversalMethod_has_T_P(self, ctx:GremlinParser.TraversalMethod_has_T_PContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_has_T_Traversal.
+    def enterTraversalMethod_has_T_Traversal(self, ctx:GremlinParser.TraversalMethod_has_T_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_has_T_Traversal.
+    def exitTraversalMethod_has_T_Traversal(self, ctx:GremlinParser.TraversalMethod_has_T_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_hasId_Object_Object.
+    def enterTraversalMethod_hasId_Object_Object(self, ctx:GremlinParser.TraversalMethod_hasId_Object_ObjectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_hasId_Object_Object.
+    def exitTraversalMethod_hasId_Object_Object(self, ctx:GremlinParser.TraversalMethod_hasId_Object_ObjectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_hasId_P.
+    def enterTraversalMethod_hasId_P(self, ctx:GremlinParser.TraversalMethod_hasId_PContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_hasId_P.
+    def exitTraversalMethod_hasId_P(self, ctx:GremlinParser.TraversalMethod_hasId_PContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_hasKey_P.
+    def enterTraversalMethod_hasKey_P(self, ctx:GremlinParser.TraversalMethod_hasKey_PContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_hasKey_P.
+    def exitTraversalMethod_hasKey_P(self, ctx:GremlinParser.TraversalMethod_hasKey_PContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_hasKey_String_String.
+    def enterTraversalMethod_hasKey_String_String(self, ctx:GremlinParser.TraversalMethod_hasKey_String_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_hasKey_String_String.
+    def exitTraversalMethod_hasKey_String_String(self, ctx:GremlinParser.TraversalMethod_hasKey_String_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_hasLabel_P.
+    def enterTraversalMethod_hasLabel_P(self, ctx:GremlinParser.TraversalMethod_hasLabel_PContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_hasLabel_P.
+    def exitTraversalMethod_hasLabel_P(self, ctx:GremlinParser.TraversalMethod_hasLabel_PContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_hasLabel_String_String.
+    def enterTraversalMethod_hasLabel_String_String(self, ctx:GremlinParser.TraversalMethod_hasLabel_String_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_hasLabel_String_String.
+    def exitTraversalMethod_hasLabel_String_String(self, ctx:GremlinParser.TraversalMethod_hasLabel_String_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_hasNot.
+    def enterTraversalMethod_hasNot(self, ctx:GremlinParser.TraversalMethod_hasNotContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_hasNot.
+    def exitTraversalMethod_hasNot(self, ctx:GremlinParser.TraversalMethod_hasNotContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_hasValue_Object_Object.
+    def enterTraversalMethod_hasValue_Object_Object(self, ctx:GremlinParser.TraversalMethod_hasValue_Object_ObjectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_hasValue_Object_Object.
+    def exitTraversalMethod_hasValue_Object_Object(self, ctx:GremlinParser.TraversalMethod_hasValue_Object_ObjectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_hasValue_P.
+    def enterTraversalMethod_hasValue_P(self, ctx:GremlinParser.TraversalMethod_hasValue_PContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_hasValue_P.
+    def exitTraversalMethod_hasValue_P(self, ctx:GremlinParser.TraversalMethod_hasValue_PContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_id.
+    def enterTraversalMethod_id(self, ctx:GremlinParser.TraversalMethod_idContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_id.
+    def exitTraversalMethod_id(self, ctx:GremlinParser.TraversalMethod_idContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_identity.
+    def enterTraversalMethod_identity(self, ctx:GremlinParser.TraversalMethod_identityContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_identity.
+    def exitTraversalMethod_identity(self, ctx:GremlinParser.TraversalMethod_identityContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_in.
+    def enterTraversalMethod_in(self, ctx:GremlinParser.TraversalMethod_inContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_in.
+    def exitTraversalMethod_in(self, ctx:GremlinParser.TraversalMethod_inContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_inE.
+    def enterTraversalMethod_inE(self, ctx:GremlinParser.TraversalMethod_inEContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_inE.
+    def exitTraversalMethod_inE(self, ctx:GremlinParser.TraversalMethod_inEContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_intersect_Object.
+    def enterTraversalMethod_intersect_Object(self, ctx:GremlinParser.TraversalMethod_intersect_ObjectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_intersect_Object.
+    def exitTraversalMethod_intersect_Object(self, ctx:GremlinParser.TraversalMethod_intersect_ObjectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_inV.
+    def enterTraversalMethod_inV(self, ctx:GremlinParser.TraversalMethod_inVContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_inV.
+    def exitTraversalMethod_inV(self, ctx:GremlinParser.TraversalMethod_inVContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_index.
+    def enterTraversalMethod_index(self, ctx:GremlinParser.TraversalMethod_indexContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_index.
+    def exitTraversalMethod_index(self, ctx:GremlinParser.TraversalMethod_indexContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_inject.
+    def enterTraversalMethod_inject(self, ctx:GremlinParser.TraversalMethod_injectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_inject.
+    def exitTraversalMethod_inject(self, ctx:GremlinParser.TraversalMethod_injectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_is_Object.
+    def enterTraversalMethod_is_Object(self, ctx:GremlinParser.TraversalMethod_is_ObjectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_is_Object.
+    def exitTraversalMethod_is_Object(self, ctx:GremlinParser.TraversalMethod_is_ObjectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_is_P.
+    def enterTraversalMethod_is_P(self, ctx:GremlinParser.TraversalMethod_is_PContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_is_P.
+    def exitTraversalMethod_is_P(self, ctx:GremlinParser.TraversalMethod_is_PContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_key.
+    def enterTraversalMethod_key(self, ctx:GremlinParser.TraversalMethod_keyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_key.
+    def exitTraversalMethod_key(self, ctx:GremlinParser.TraversalMethod_keyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_label.
+    def enterTraversalMethod_label(self, ctx:GremlinParser.TraversalMethod_labelContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_label.
+    def exitTraversalMethod_label(self, ctx:GremlinParser.TraversalMethod_labelContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_length_Empty.
+    def enterTraversalMethod_length_Empty(self, ctx:GremlinParser.TraversalMethod_length_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_length_Empty.
+    def exitTraversalMethod_length_Empty(self, ctx:GremlinParser.TraversalMethod_length_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_length_Scope.
+    def enterTraversalMethod_length_Scope(self, ctx:GremlinParser.TraversalMethod_length_ScopeContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_length_Scope.
+    def exitTraversalMethod_length_Scope(self, ctx:GremlinParser.TraversalMethod_length_ScopeContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_limit_Scope_long.
+    def enterTraversalMethod_limit_Scope_long(self, ctx:GremlinParser.TraversalMethod_limit_Scope_longContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_limit_Scope_long.
+    def exitTraversalMethod_limit_Scope_long(self, ctx:GremlinParser.TraversalMethod_limit_Scope_longContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_limit_long.
+    def enterTraversalMethod_limit_long(self, ctx:GremlinParser.TraversalMethod_limit_longContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_limit_long.
+    def exitTraversalMethod_limit_long(self, ctx:GremlinParser.TraversalMethod_limit_longContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_local.
+    def enterTraversalMethod_local(self, ctx:GremlinParser.TraversalMethod_localContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_local.
+    def exitTraversalMethod_local(self, ctx:GremlinParser.TraversalMethod_localContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_loops_Empty.
+    def enterTraversalMethod_loops_Empty(self, ctx:GremlinParser.TraversalMethod_loops_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_loops_Empty.
+    def exitTraversalMethod_loops_Empty(self, ctx:GremlinParser.TraversalMethod_loops_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_loops_String.
+    def enterTraversalMethod_loops_String(self, ctx:GremlinParser.TraversalMethod_loops_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_loops_String.
+    def exitTraversalMethod_loops_String(self, ctx:GremlinParser.TraversalMethod_loops_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_lTrim_Empty.
+    def enterTraversalMethod_lTrim_Empty(self, ctx:GremlinParser.TraversalMethod_lTrim_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_lTrim_Empty.
+    def exitTraversalMethod_lTrim_Empty(self, ctx:GremlinParser.TraversalMethod_lTrim_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_lTrim_Scope.
+    def enterTraversalMethod_lTrim_Scope(self, ctx:GremlinParser.TraversalMethod_lTrim_ScopeContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_lTrim_Scope.
+    def exitTraversalMethod_lTrim_Scope(self, ctx:GremlinParser.TraversalMethod_lTrim_ScopeContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_map.
+    def enterTraversalMethod_map(self, ctx:GremlinParser.TraversalMethod_mapContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_map.
+    def exitTraversalMethod_map(self, ctx:GremlinParser.TraversalMethod_mapContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_match.
+    def enterTraversalMethod_match(self, ctx:GremlinParser.TraversalMethod_matchContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_match.
+    def exitTraversalMethod_match(self, ctx:GremlinParser.TraversalMethod_matchContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_math.
+    def enterTraversalMethod_math(self, ctx:GremlinParser.TraversalMethod_mathContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_math.
+    def exitTraversalMethod_math(self, ctx:GremlinParser.TraversalMethod_mathContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_max_Empty.
+    def enterTraversalMethod_max_Empty(self, ctx:GremlinParser.TraversalMethod_max_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_max_Empty.
+    def exitTraversalMethod_max_Empty(self, ctx:GremlinParser.TraversalMethod_max_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_max_Scope.
+    def enterTraversalMethod_max_Scope(self, ctx:GremlinParser.TraversalMethod_max_ScopeContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_max_Scope.
+    def exitTraversalMethod_max_Scope(self, ctx:GremlinParser.TraversalMethod_max_ScopeContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_mean_Empty.
+    def enterTraversalMethod_mean_Empty(self, ctx:GremlinParser.TraversalMethod_mean_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_mean_Empty.
+    def exitTraversalMethod_mean_Empty(self, ctx:GremlinParser.TraversalMethod_mean_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_mean_Scope.
+    def enterTraversalMethod_mean_Scope(self, ctx:GremlinParser.TraversalMethod_mean_ScopeContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_mean_Scope.
+    def exitTraversalMethod_mean_Scope(self, ctx:GremlinParser.TraversalMethod_mean_ScopeContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_merge_Object.
+    def enterTraversalMethod_merge_Object(self, ctx:GremlinParser.TraversalMethod_merge_ObjectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_merge_Object.
+    def exitTraversalMethod_merge_Object(self, ctx:GremlinParser.TraversalMethod_merge_ObjectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_mergeV_empty.
+    def enterTraversalMethod_mergeV_empty(self, ctx:GremlinParser.TraversalMethod_mergeV_emptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_mergeV_empty.
+    def exitTraversalMethod_mergeV_empty(self, ctx:GremlinParser.TraversalMethod_mergeV_emptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_mergeV_Map.
+    def enterTraversalMethod_mergeV_Map(self, ctx:GremlinParser.TraversalMethod_mergeV_MapContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_mergeV_Map.
+    def exitTraversalMethod_mergeV_Map(self, ctx:GremlinParser.TraversalMethod_mergeV_MapContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_mergeV_Traversal.
+    def enterTraversalMethod_mergeV_Traversal(self, ctx:GremlinParser.TraversalMethod_mergeV_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_mergeV_Traversal.
+    def exitTraversalMethod_mergeV_Traversal(self, ctx:GremlinParser.TraversalMethod_mergeV_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_mergeE_empty.
+    def enterTraversalMethod_mergeE_empty(self, ctx:GremlinParser.TraversalMethod_mergeE_emptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_mergeE_empty.
+    def exitTraversalMethod_mergeE_empty(self, ctx:GremlinParser.TraversalMethod_mergeE_emptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_mergeE_Map.
+    def enterTraversalMethod_mergeE_Map(self, ctx:GremlinParser.TraversalMethod_mergeE_MapContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_mergeE_Map.
+    def exitTraversalMethod_mergeE_Map(self, ctx:GremlinParser.TraversalMethod_mergeE_MapContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_mergeE_Traversal.
+    def enterTraversalMethod_mergeE_Traversal(self, ctx:GremlinParser.TraversalMethod_mergeE_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_mergeE_Traversal.
+    def exitTraversalMethod_mergeE_Traversal(self, ctx:GremlinParser.TraversalMethod_mergeE_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_min_Empty.
+    def enterTraversalMethod_min_Empty(self, ctx:GremlinParser.TraversalMethod_min_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_min_Empty.
+    def exitTraversalMethod_min_Empty(self, ctx:GremlinParser.TraversalMethod_min_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_min_Scope.
+    def enterTraversalMethod_min_Scope(self, ctx:GremlinParser.TraversalMethod_min_ScopeContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_min_Scope.
+    def exitTraversalMethod_min_Scope(self, ctx:GremlinParser.TraversalMethod_min_ScopeContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_none_P.
+    def enterTraversalMethod_none_P(self, ctx:GremlinParser.TraversalMethod_none_PContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_none_P.
+    def exitTraversalMethod_none_P(self, ctx:GremlinParser.TraversalMethod_none_PContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_not.
+    def enterTraversalMethod_not(self, ctx:GremlinParser.TraversalMethod_notContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_not.
+    def exitTraversalMethod_not(self, ctx:GremlinParser.TraversalMethod_notContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_option_Predicate_Traversal.
+    def enterTraversalMethod_option_Predicate_Traversal(self, ctx:GremlinParser.TraversalMethod_option_Predicate_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_option_Predicate_Traversal.
+    def exitTraversalMethod_option_Predicate_Traversal(self, ctx:GremlinParser.TraversalMethod_option_Predicate_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_option_Merge_Map.
+    def enterTraversalMethod_option_Merge_Map(self, ctx:GremlinParser.TraversalMethod_option_Merge_MapContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_option_Merge_Map.
+    def exitTraversalMethod_option_Merge_Map(self, ctx:GremlinParser.TraversalMethod_option_Merge_MapContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_option_Merge_Map_Cardinality.
+    def enterTraversalMethod_option_Merge_Map_Cardinality(self, ctx:GremlinParser.TraversalMethod_option_Merge_Map_CardinalityContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_option_Merge_Map_Cardinality.
+    def exitTraversalMethod_option_Merge_Map_Cardinality(self, ctx:GremlinParser.TraversalMethod_option_Merge_Map_CardinalityContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_option_Merge_Traversal.
+    def enterTraversalMethod_option_Merge_Traversal(self, ctx:GremlinParser.TraversalMethod_option_Merge_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_option_Merge_Traversal.
+    def exitTraversalMethod_option_Merge_Traversal(self, ctx:GremlinParser.TraversalMethod_option_Merge_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_option_Object_Traversal.
+    def enterTraversalMethod_option_Object_Traversal(self, ctx:GremlinParser.TraversalMethod_option_Object_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_option_Object_Traversal.
+    def exitTraversalMethod_option_Object_Traversal(self, ctx:GremlinParser.TraversalMethod_option_Object_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_option_Traversal.
+    def enterTraversalMethod_option_Traversal(self, ctx:GremlinParser.TraversalMethod_option_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_option_Traversal.
+    def exitTraversalMethod_option_Traversal(self, ctx:GremlinParser.TraversalMethod_option_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_optional.
+    def enterTraversalMethod_optional(self, ctx:GremlinParser.TraversalMethod_optionalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_optional.
+    def exitTraversalMethod_optional(self, ctx:GremlinParser.TraversalMethod_optionalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_or.
+    def enterTraversalMethod_or(self, ctx:GremlinParser.TraversalMethod_orContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_or.
+    def exitTraversalMethod_or(self, ctx:GremlinParser.TraversalMethod_orContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_order_Empty.
+    def enterTraversalMethod_order_Empty(self, ctx:GremlinParser.TraversalMethod_order_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_order_Empty.
+    def exitTraversalMethod_order_Empty(self, ctx:GremlinParser.TraversalMethod_order_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_order_Scope.
+    def enterTraversalMethod_order_Scope(self, ctx:GremlinParser.TraversalMethod_order_ScopeContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_order_Scope.
+    def exitTraversalMethod_order_Scope(self, ctx:GremlinParser.TraversalMethod_order_ScopeContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_otherV.
+    def enterTraversalMethod_otherV(self, ctx:GremlinParser.TraversalMethod_otherVContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_otherV.
+    def exitTraversalMethod_otherV(self, ctx:GremlinParser.TraversalMethod_otherVContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_out.
+    def enterTraversalMethod_out(self, ctx:GremlinParser.TraversalMethod_outContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_out.
+    def exitTraversalMethod_out(self, ctx:GremlinParser.TraversalMethod_outContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_outE.
+    def enterTraversalMethod_outE(self, ctx:GremlinParser.TraversalMethod_outEContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_outE.
+    def exitTraversalMethod_outE(self, ctx:GremlinParser.TraversalMethod_outEContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_outV.
+    def enterTraversalMethod_outV(self, ctx:GremlinParser.TraversalMethod_outVContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_outV.
+    def exitTraversalMethod_outV(self, ctx:GremlinParser.TraversalMethod_outVContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_pageRank_Empty.
+    def enterTraversalMethod_pageRank_Empty(self, ctx:GremlinParser.TraversalMethod_pageRank_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_pageRank_Empty.
+    def exitTraversalMethod_pageRank_Empty(self, ctx:GremlinParser.TraversalMethod_pageRank_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_pageRank_double.
+    def enterTraversalMethod_pageRank_double(self, ctx:GremlinParser.TraversalMethod_pageRank_doubleContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_pageRank_double.
+    def exitTraversalMethod_pageRank_double(self, ctx:GremlinParser.TraversalMethod_pageRank_doubleContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_path.
+    def enterTraversalMethod_path(self, ctx:GremlinParser.TraversalMethod_pathContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_path.
+    def exitTraversalMethod_path(self, ctx:GremlinParser.TraversalMethod_pathContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_peerPressure.
+    def enterTraversalMethod_peerPressure(self, ctx:GremlinParser.TraversalMethod_peerPressureContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_peerPressure.
+    def exitTraversalMethod_peerPressure(self, ctx:GremlinParser.TraversalMethod_peerPressureContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_product_Object.
+    def enterTraversalMethod_product_Object(self, ctx:GremlinParser.TraversalMethod_product_ObjectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_product_Object.
+    def exitTraversalMethod_product_Object(self, ctx:GremlinParser.TraversalMethod_product_ObjectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_profile_Empty.
+    def enterTraversalMethod_profile_Empty(self, ctx:GremlinParser.TraversalMethod_profile_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_profile_Empty.
+    def exitTraversalMethod_profile_Empty(self, ctx:GremlinParser.TraversalMethod_profile_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_profile_String.
+    def enterTraversalMethod_profile_String(self, ctx:GremlinParser.TraversalMethod_profile_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_profile_String.
+    def exitTraversalMethod_profile_String(self, ctx:GremlinParser.TraversalMethod_profile_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_project.
+    def enterTraversalMethod_project(self, ctx:GremlinParser.TraversalMethod_projectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_project.
+    def exitTraversalMethod_project(self, ctx:GremlinParser.TraversalMethod_projectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_properties.
+    def enterTraversalMethod_properties(self, ctx:GremlinParser.TraversalMethod_propertiesContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_properties.
+    def exitTraversalMethod_properties(self, ctx:GremlinParser.TraversalMethod_propertiesContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_property_Cardinality_Object_Object_Object.
+    def enterTraversalMethod_property_Cardinality_Object_Object_Object(self, ctx:GremlinParser.TraversalMethod_property_Cardinality_Object_Object_ObjectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_property_Cardinality_Object_Object_Object.
+    def exitTraversalMethod_property_Cardinality_Object_Object_Object(self, ctx:GremlinParser.TraversalMethod_property_Cardinality_Object_Object_ObjectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_property_Cardinality_Object.
+    def enterTraversalMethod_property_Cardinality_Object(self, ctx:GremlinParser.TraversalMethod_property_Cardinality_ObjectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_property_Cardinality_Object.
+    def exitTraversalMethod_property_Cardinality_Object(self, ctx:GremlinParser.TraversalMethod_property_Cardinality_ObjectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_property_Object_Object_Object.
+    def enterTraversalMethod_property_Object_Object_Object(self, ctx:GremlinParser.TraversalMethod_property_Object_Object_ObjectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_property_Object_Object_Object.
+    def exitTraversalMethod_property_Object_Object_Object(self, ctx:GremlinParser.TraversalMethod_property_Object_Object_ObjectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_property_Object.
+    def enterTraversalMethod_property_Object(self, ctx:GremlinParser.TraversalMethod_property_ObjectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_property_Object.
+    def exitTraversalMethod_property_Object(self, ctx:GremlinParser.TraversalMethod_property_ObjectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_propertyMap.
+    def enterTraversalMethod_propertyMap(self, ctx:GremlinParser.TraversalMethod_propertyMapContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_propertyMap.
+    def exitTraversalMethod_propertyMap(self, ctx:GremlinParser.TraversalMethod_propertyMapContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_range_Scope_long_long.
+    def enterTraversalMethod_range_Scope_long_long(self, ctx:GremlinParser.TraversalMethod_range_Scope_long_longContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_range_Scope_long_long.
+    def exitTraversalMethod_range_Scope_long_long(self, ctx:GremlinParser.TraversalMethod_range_Scope_long_longContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_range_long_long.
+    def enterTraversalMethod_range_long_long(self, ctx:GremlinParser.TraversalMethod_range_long_longContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_range_long_long.
+    def exitTraversalMethod_range_long_long(self, ctx:GremlinParser.TraversalMethod_range_long_longContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_read.
+    def enterTraversalMethod_read(self, ctx:GremlinParser.TraversalMethod_readContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_read.
+    def exitTraversalMethod_read(self, ctx:GremlinParser.TraversalMethod_readContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_repeat_String_Traversal.
+    def enterTraversalMethod_repeat_String_Traversal(self, ctx:GremlinParser.TraversalMethod_repeat_String_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_repeat_String_Traversal.
+    def exitTraversalMethod_repeat_String_Traversal(self, ctx:GremlinParser.TraversalMethod_repeat_String_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_repeat_Traversal.
+    def enterTraversalMethod_repeat_Traversal(self, ctx:GremlinParser.TraversalMethod_repeat_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_repeat_Traversal.
+    def exitTraversalMethod_repeat_Traversal(self, ctx:GremlinParser.TraversalMethod_repeat_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_replace_String_String.
+    def enterTraversalMethod_replace_String_String(self, ctx:GremlinParser.TraversalMethod_replace_String_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_replace_String_String.
+    def exitTraversalMethod_replace_String_String(self, ctx:GremlinParser.TraversalMethod_replace_String_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_replace_Scope_String_String.
+    def enterTraversalMethod_replace_Scope_String_String(self, ctx:GremlinParser.TraversalMethod_replace_Scope_String_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_replace_Scope_String_String.
+    def exitTraversalMethod_replace_Scope_String_String(self, ctx:GremlinParser.TraversalMethod_replace_Scope_String_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_reverse_Empty.
+    def enterTraversalMethod_reverse_Empty(self, ctx:GremlinParser.TraversalMethod_reverse_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_reverse_Empty.
+    def exitTraversalMethod_reverse_Empty(self, ctx:GremlinParser.TraversalMethod_reverse_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_rTrim_Empty.
+    def enterTraversalMethod_rTrim_Empty(self, ctx:GremlinParser.TraversalMethod_rTrim_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_rTrim_Empty.
+    def exitTraversalMethod_rTrim_Empty(self, ctx:GremlinParser.TraversalMethod_rTrim_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_rTrim_Scope.
+    def enterTraversalMethod_rTrim_Scope(self, ctx:GremlinParser.TraversalMethod_rTrim_ScopeContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_rTrim_Scope.
+    def exitTraversalMethod_rTrim_Scope(self, ctx:GremlinParser.TraversalMethod_rTrim_ScopeContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_sack_BiFunction.
+    def enterTraversalMethod_sack_BiFunction(self, ctx:GremlinParser.TraversalMethod_sack_BiFunctionContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_sack_BiFunction.
+    def exitTraversalMethod_sack_BiFunction(self, ctx:GremlinParser.TraversalMethod_sack_BiFunctionContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_sack_Empty.
+    def enterTraversalMethod_sack_Empty(self, ctx:GremlinParser.TraversalMethod_sack_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_sack_Empty.
+    def exitTraversalMethod_sack_Empty(self, ctx:GremlinParser.TraversalMethod_sack_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_sample_Scope_int.
+    def enterTraversalMethod_sample_Scope_int(self, ctx:GremlinParser.TraversalMethod_sample_Scope_intContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_sample_Scope_int.
+    def exitTraversalMethod_sample_Scope_int(self, ctx:GremlinParser.TraversalMethod_sample_Scope_intContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_sample_int.
+    def enterTraversalMethod_sample_int(self, ctx:GremlinParser.TraversalMethod_sample_intContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_sample_int.
+    def exitTraversalMethod_sample_int(self, ctx:GremlinParser.TraversalMethod_sample_intContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_select_Column.
+    def enterTraversalMethod_select_Column(self, ctx:GremlinParser.TraversalMethod_select_ColumnContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_select_Column.
+    def exitTraversalMethod_select_Column(self, ctx:GremlinParser.TraversalMethod_select_ColumnContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_select_Pop_String.
+    def enterTraversalMethod_select_Pop_String(self, ctx:GremlinParser.TraversalMethod_select_Pop_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_select_Pop_String.
+    def exitTraversalMethod_select_Pop_String(self, ctx:GremlinParser.TraversalMethod_select_Pop_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_select_Pop_String_String_String.
+    def enterTraversalMethod_select_Pop_String_String_String(self, ctx:GremlinParser.TraversalMethod_select_Pop_String_String_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_select_Pop_String_String_String.
+    def exitTraversalMethod_select_Pop_String_String_String(self, ctx:GremlinParser.TraversalMethod_select_Pop_String_String_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_select_Pop_Traversal.
+    def enterTraversalMethod_select_Pop_Traversal(self, ctx:GremlinParser.TraversalMethod_select_Pop_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_select_Pop_Traversal.
+    def exitTraversalMethod_select_Pop_Traversal(self, ctx:GremlinParser.TraversalMethod_select_Pop_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_select_String.
+    def enterTraversalMethod_select_String(self, ctx:GremlinParser.TraversalMethod_select_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_select_String.
+    def exitTraversalMethod_select_String(self, ctx:GremlinParser.TraversalMethod_select_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_select_String_String_String.
+    def enterTraversalMethod_select_String_String_String(self, ctx:GremlinParser.TraversalMethod_select_String_String_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_select_String_String_String.
+    def exitTraversalMethod_select_String_String_String(self, ctx:GremlinParser.TraversalMethod_select_String_String_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_select_Traversal.
+    def enterTraversalMethod_select_Traversal(self, ctx:GremlinParser.TraversalMethod_select_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_select_Traversal.
+    def exitTraversalMethod_select_Traversal(self, ctx:GremlinParser.TraversalMethod_select_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_shortestPath.
+    def enterTraversalMethod_shortestPath(self, ctx:GremlinParser.TraversalMethod_shortestPathContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_shortestPath.
+    def exitTraversalMethod_shortestPath(self, ctx:GremlinParser.TraversalMethod_shortestPathContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_sideEffect.
+    def enterTraversalMethod_sideEffect(self, ctx:GremlinParser.TraversalMethod_sideEffectContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_sideEffect.
+    def exitTraversalMethod_sideEffect(self, ctx:GremlinParser.TraversalMethod_sideEffectContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_simplePath.
+    def enterTraversalMethod_simplePath(self, ctx:GremlinParser.TraversalMethod_simplePathContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_simplePath.
+    def exitTraversalMethod_simplePath(self, ctx:GremlinParser.TraversalMethod_simplePathContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_skip_Scope_long.
+    def enterTraversalMethod_skip_Scope_long(self, ctx:GremlinParser.TraversalMethod_skip_Scope_longContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_skip_Scope_long.
+    def exitTraversalMethod_skip_Scope_long(self, ctx:GremlinParser.TraversalMethod_skip_Scope_longContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_skip_long.
+    def enterTraversalMethod_skip_long(self, ctx:GremlinParser.TraversalMethod_skip_longContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_skip_long.
+    def exitTraversalMethod_skip_long(self, ctx:GremlinParser.TraversalMethod_skip_longContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_split_String.
+    def enterTraversalMethod_split_String(self, ctx:GremlinParser.TraversalMethod_split_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_split_String.
+    def exitTraversalMethod_split_String(self, ctx:GremlinParser.TraversalMethod_split_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_split_Scope_String.
+    def enterTraversalMethod_split_Scope_String(self, ctx:GremlinParser.TraversalMethod_split_Scope_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_split_Scope_String.
+    def exitTraversalMethod_split_Scope_String(self, ctx:GremlinParser.TraversalMethod_split_Scope_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_store.
+    def enterTraversalMethod_store(self, ctx:GremlinParser.TraversalMethod_storeContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_store.
+    def exitTraversalMethod_store(self, ctx:GremlinParser.TraversalMethod_storeContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_subgraph.
+    def enterTraversalMethod_subgraph(self, ctx:GremlinParser.TraversalMethod_subgraphContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_subgraph.
+    def exitTraversalMethod_subgraph(self, ctx:GremlinParser.TraversalMethod_subgraphContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_substring_int.
+    def enterTraversalMethod_substring_int(self, ctx:GremlinParser.TraversalMethod_substring_intContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_substring_int.
+    def exitTraversalMethod_substring_int(self, ctx:GremlinParser.TraversalMethod_substring_intContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_substring_Scope_int.
+    def enterTraversalMethod_substring_Scope_int(self, ctx:GremlinParser.TraversalMethod_substring_Scope_intContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_substring_Scope_int.
+    def exitTraversalMethod_substring_Scope_int(self, ctx:GremlinParser.TraversalMethod_substring_Scope_intContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_substring_int_int.
+    def enterTraversalMethod_substring_int_int(self, ctx:GremlinParser.TraversalMethod_substring_int_intContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_substring_int_int.
+    def exitTraversalMethod_substring_int_int(self, ctx:GremlinParser.TraversalMethod_substring_int_intContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_substring_Scope_int_int.
+    def enterTraversalMethod_substring_Scope_int_int(self, ctx:GremlinParser.TraversalMethod_substring_Scope_int_intContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_substring_Scope_int_int.
+    def exitTraversalMethod_substring_Scope_int_int(self, ctx:GremlinParser.TraversalMethod_substring_Scope_int_intContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_sum_Empty.
+    def enterTraversalMethod_sum_Empty(self, ctx:GremlinParser.TraversalMethod_sum_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_sum_Empty.
+    def exitTraversalMethod_sum_Empty(self, ctx:GremlinParser.TraversalMethod_sum_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_sum_Scope.
+    def enterTraversalMethod_sum_Scope(self, ctx:GremlinParser.TraversalMethod_sum_ScopeContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_sum_Scope.
+    def exitTraversalMethod_sum_Scope(self, ctx:GremlinParser.TraversalMethod_sum_ScopeContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_tail_Empty.
+    def enterTraversalMethod_tail_Empty(self, ctx:GremlinParser.TraversalMethod_tail_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_tail_Empty.
+    def exitTraversalMethod_tail_Empty(self, ctx:GremlinParser.TraversalMethod_tail_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_tail_Scope.
+    def enterTraversalMethod_tail_Scope(self, ctx:GremlinParser.TraversalMethod_tail_ScopeContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_tail_Scope.
+    def exitTraversalMethod_tail_Scope(self, ctx:GremlinParser.TraversalMethod_tail_ScopeContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_tail_Scope_long.
+    def enterTraversalMethod_tail_Scope_long(self, ctx:GremlinParser.TraversalMethod_tail_Scope_longContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_tail_Scope_long.
+    def exitTraversalMethod_tail_Scope_long(self, ctx:GremlinParser.TraversalMethod_tail_Scope_longContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_tail_long.
+    def enterTraversalMethod_tail_long(self, ctx:GremlinParser.TraversalMethod_tail_longContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_tail_long.
+    def exitTraversalMethod_tail_long(self, ctx:GremlinParser.TraversalMethod_tail_longContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_timeLimit.
+    def enterTraversalMethod_timeLimit(self, ctx:GremlinParser.TraversalMethod_timeLimitContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_timeLimit.
+    def exitTraversalMethod_timeLimit(self, ctx:GremlinParser.TraversalMethod_timeLimitContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_times.
+    def enterTraversalMethod_times(self, ctx:GremlinParser.TraversalMethod_timesContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_times.
+    def exitTraversalMethod_times(self, ctx:GremlinParser.TraversalMethod_timesContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_to_Direction_String.
+    def enterTraversalMethod_to_Direction_String(self, ctx:GremlinParser.TraversalMethod_to_Direction_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_to_Direction_String.
+    def exitTraversalMethod_to_Direction_String(self, ctx:GremlinParser.TraversalMethod_to_Direction_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_to_String.
+    def enterTraversalMethod_to_String(self, ctx:GremlinParser.TraversalMethod_to_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_to_String.
+    def exitTraversalMethod_to_String(self, ctx:GremlinParser.TraversalMethod_to_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_to_Vertex.
+    def enterTraversalMethod_to_Vertex(self, ctx:GremlinParser.TraversalMethod_to_VertexContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_to_Vertex.
+    def exitTraversalMethod_to_Vertex(self, ctx:GremlinParser.TraversalMethod_to_VertexContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_to_Traversal.
+    def enterTraversalMethod_to_Traversal(self, ctx:GremlinParser.TraversalMethod_to_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_to_Traversal.
+    def exitTraversalMethod_to_Traversal(self, ctx:GremlinParser.TraversalMethod_to_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_toE.
+    def enterTraversalMethod_toE(self, ctx:GremlinParser.TraversalMethod_toEContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_toE.
+    def exitTraversalMethod_toE(self, ctx:GremlinParser.TraversalMethod_toEContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_toLower_Empty.
+    def enterTraversalMethod_toLower_Empty(self, ctx:GremlinParser.TraversalMethod_toLower_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_toLower_Empty.
+    def exitTraversalMethod_toLower_Empty(self, ctx:GremlinParser.TraversalMethod_toLower_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_toLower_Scope.
+    def enterTraversalMethod_toLower_Scope(self, ctx:GremlinParser.TraversalMethod_toLower_ScopeContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_toLower_Scope.
+    def exitTraversalMethod_toLower_Scope(self, ctx:GremlinParser.TraversalMethod_toLower_ScopeContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_toUpper_Empty.
+    def enterTraversalMethod_toUpper_Empty(self, ctx:GremlinParser.TraversalMethod_toUpper_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_toUpper_Empty.
+    def exitTraversalMethod_toUpper_Empty(self, ctx:GremlinParser.TraversalMethod_toUpper_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_toUpper_Scope.
+    def enterTraversalMethod_toUpper_Scope(self, ctx:GremlinParser.TraversalMethod_toUpper_ScopeContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_toUpper_Scope.
+    def exitTraversalMethod_toUpper_Scope(self, ctx:GremlinParser.TraversalMethod_toUpper_ScopeContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_toV.
+    def enterTraversalMethod_toV(self, ctx:GremlinParser.TraversalMethod_toVContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_toV.
+    def exitTraversalMethod_toV(self, ctx:GremlinParser.TraversalMethod_toVContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_tree_Empty.
+    def enterTraversalMethod_tree_Empty(self, ctx:GremlinParser.TraversalMethod_tree_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_tree_Empty.
+    def exitTraversalMethod_tree_Empty(self, ctx:GremlinParser.TraversalMethod_tree_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_tree_String.
+    def enterTraversalMethod_tree_String(self, ctx:GremlinParser.TraversalMethod_tree_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_tree_String.
+    def exitTraversalMethod_tree_String(self, ctx:GremlinParser.TraversalMethod_tree_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_trim_Empty.
+    def enterTraversalMethod_trim_Empty(self, ctx:GremlinParser.TraversalMethod_trim_EmptyContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_trim_Empty.
+    def exitTraversalMethod_trim_Empty(self, ctx:GremlinParser.TraversalMethod_trim_EmptyContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_trim_Scope.
+    def enterTraversalMethod_trim_Scope(self, ctx:GremlinParser.TraversalMethod_trim_ScopeContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_trim_Scope.
+    def exitTraversalMethod_trim_Scope(self, ctx:GremlinParser.TraversalMethod_trim_ScopeContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_unfold.
+    def enterTraversalMethod_unfold(self, ctx:GremlinParser.TraversalMethod_unfoldContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_unfold.
+    def exitTraversalMethod_unfold(self, ctx:GremlinParser.TraversalMethod_unfoldContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_union.
+    def enterTraversalMethod_union(self, ctx:GremlinParser.TraversalMethod_unionContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_union.
+    def exitTraversalMethod_union(self, ctx:GremlinParser.TraversalMethod_unionContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_until_Predicate.
+    def enterTraversalMethod_until_Predicate(self, ctx:GremlinParser.TraversalMethod_until_PredicateContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_until_Predicate.
+    def exitTraversalMethod_until_Predicate(self, ctx:GremlinParser.TraversalMethod_until_PredicateContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_until_Traversal.
+    def enterTraversalMethod_until_Traversal(self, ctx:GremlinParser.TraversalMethod_until_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_until_Traversal.
+    def exitTraversalMethod_until_Traversal(self, ctx:GremlinParser.TraversalMethod_until_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_value.
+    def enterTraversalMethod_value(self, ctx:GremlinParser.TraversalMethod_valueContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_value.
+    def exitTraversalMethod_value(self, ctx:GremlinParser.TraversalMethod_valueContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_valueMap_String.
+    def enterTraversalMethod_valueMap_String(self, ctx:GremlinParser.TraversalMethod_valueMap_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_valueMap_String.
+    def exitTraversalMethod_valueMap_String(self, ctx:GremlinParser.TraversalMethod_valueMap_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_valueMap_boolean_String.
+    def enterTraversalMethod_valueMap_boolean_String(self, ctx:GremlinParser.TraversalMethod_valueMap_boolean_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_valueMap_boolean_String.
+    def exitTraversalMethod_valueMap_boolean_String(self, ctx:GremlinParser.TraversalMethod_valueMap_boolean_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_values.
+    def enterTraversalMethod_values(self, ctx:GremlinParser.TraversalMethod_valuesContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_values.
+    def exitTraversalMethod_values(self, ctx:GremlinParser.TraversalMethod_valuesContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_where_P.
+    def enterTraversalMethod_where_P(self, ctx:GremlinParser.TraversalMethod_where_PContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_where_P.
+    def exitTraversalMethod_where_P(self, ctx:GremlinParser.TraversalMethod_where_PContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_where_String_P.
+    def enterTraversalMethod_where_String_P(self, ctx:GremlinParser.TraversalMethod_where_String_PContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_where_String_P.
+    def exitTraversalMethod_where_String_P(self, ctx:GremlinParser.TraversalMethod_where_String_PContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_where_Traversal.
+    def enterTraversalMethod_where_Traversal(self, ctx:GremlinParser.TraversalMethod_where_TraversalContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_where_Traversal.
+    def exitTraversalMethod_where_Traversal(self, ctx:GremlinParser.TraversalMethod_where_TraversalContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_with_String.
+    def enterTraversalMethod_with_String(self, ctx:GremlinParser.TraversalMethod_with_StringContext):
+        pass
+
+    # Exit a parse tree produced by GremlinParser#traversalMethod_with_String.
+    def exitTraversalMethod_with_String(self, ctx:GremlinParser.TraversalMethod_with_StringContext):
+        pass
+
+
+    # Enter a parse tree produced by GremlinParser#traversalMethod_with_String_Object.
+    def enterTraversalMethod_with_String_Object(self, ctx:GremlinParser.TraversalMethod_with_String_ObjectContext):
+        pass
... 36134 lines suppressed ...