Prefer the instantiated version of GenericLiteralVisitor

Tried to retain the instance() method in as many places as possible but it seems like a new instance is simply just required for this to work right in places related to Traversal building CTR
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index 111732c..72511bd 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -441,7 +441,7 @@
     @Override
     public GraphTraversal visitTraversalMethod_constant(final GremlinParser.TraversalMethod_constantContext ctx) {
         return graphTraversal
-                .constant(GenericLiteralVisitor.instance().visitGenericLiteral(ctx.genericLiteral()));
+                .constant(new GenericLiteralVisitor(antlr).visitGenericLiteral(ctx.genericLiteral()));
     }
 
     /**
@@ -571,7 +571,7 @@
     @Override
     public GraphTraversal visitTraversalMethod_fold_Object_BiFunction(final GremlinParser.TraversalMethod_fold_Object_BiFunctionContext ctx) {
         return graphTraversal.fold(
-                GenericLiteralVisitor.instance().visitGenericLiteral(ctx.genericLiteral()),
+                new GenericLiteralVisitor(antlr).visitGenericLiteral(ctx.genericLiteral()),
                 (BiFunction) TraversalEnumParser.parseTraversalEnumFromContext(Operator.class, ctx.getChild(4)));
     }
 
@@ -628,7 +628,7 @@
      */
     @Override
     public GraphTraversal visitTraversalMethod_hasId_Object_Object(final GremlinParser.TraversalMethod_hasId_Object_ObjectContext ctx) {
-        return graphTraversal.hasId(GenericLiteralVisitor.instance().visitGenericLiteral(ctx.genericLiteral()),
+        return graphTraversal.hasId(new GenericLiteralVisitor(antlr).visitGenericLiteral(ctx.genericLiteral()),
                 GenericLiteralVisitor.getGenericLiteralList(ctx.genericLiteralList()));
     }
 
@@ -695,7 +695,7 @@
      */
     @Override
     public GraphTraversal visitTraversalMethod_hasValue_Object_Object(final GremlinParser.TraversalMethod_hasValue_Object_ObjectContext ctx) {
-        return graphTraversal.hasValue(GenericLiteralVisitor.instance().visitGenericLiteral(ctx.genericLiteral()),
+        return graphTraversal.hasValue(new GenericLiteralVisitor(antlr).visitGenericLiteral(ctx.genericLiteral()),
                 GenericLiteralVisitor.getGenericLiteralList(ctx.genericLiteralList()));
     }
 
@@ -740,7 +740,7 @@
     public GraphTraversal visitTraversalMethod_has_String_String_Object(final GremlinParser.TraversalMethod_has_String_String_ObjectContext ctx) {
         return graphTraversal.has(GenericLiteralVisitor.getStringLiteral(ctx.stringBasedLiteral(0)),
                 GenericLiteralVisitor.getStringLiteral(ctx.stringBasedLiteral(1)),
-                GenericLiteralVisitor.instance().visitGenericLiteral(ctx.genericLiteral()));
+                new GenericLiteralVisitor(antlr).visitGenericLiteral(ctx.genericLiteral()));
     }
 
     /**
@@ -847,7 +847,7 @@
      */
     @Override
     public GraphTraversal visitTraversalMethod_is_Object(final GremlinParser.TraversalMethod_is_ObjectContext ctx) {
-        return graphTraversal.is(GenericLiteralVisitor.instance().visitGenericLiteral(ctx.genericLiteral()));
+        return graphTraversal.is(new GenericLiteralVisitor(antlr).visitGenericLiteral(ctx.genericLiteral()));
     }
 
     /**
@@ -1219,8 +1219,8 @@
     @Override
     public GraphTraversal visitTraversalMethod_property_Cardinality_Object_Object_Object(final GremlinParser.TraversalMethod_property_Cardinality_Object_Object_ObjectContext ctx) {
         return graphTraversal.property(TraversalEnumParser.parseTraversalEnumFromContext(VertexProperty.Cardinality.class, ctx.getChild(2)),
-                GenericLiteralVisitor.instance().visitGenericLiteral(ctx.genericLiteral(0)),
-                GenericLiteralVisitor.instance().visitGenericLiteral(ctx.genericLiteral(1)),
+                new GenericLiteralVisitor(antlr).visitGenericLiteral(ctx.genericLiteral(0)),
+                new GenericLiteralVisitor(antlr).visitGenericLiteral(ctx.genericLiteral(1)),
                 GenericLiteralVisitor.getGenericLiteralList(ctx.genericLiteralList()));
     }
 
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalPredicateVisitor.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalPredicateVisitor.java
index e454bd5..b80679b 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalPredicateVisitor.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalPredicateVisitor.java
@@ -99,42 +99,48 @@
     /**
      * {@inheritDoc}
      */
-    @Override public P visitTraversalPredicate_eq(final GremlinParser.TraversalPredicate_eqContext ctx) {
+    @Override
+    public P visitTraversalPredicate_eq(final GremlinParser.TraversalPredicate_eqContext ctx) {
         return P.eq(getSingleGenericLiteralArgument(ctx));
     }
 
     /**
      * {@inheritDoc}
      */
-    @Override public P visitTraversalPredicate_neq(final GremlinParser.TraversalPredicate_neqContext ctx) {
+    @Override
+    public P visitTraversalPredicate_neq(final GremlinParser.TraversalPredicate_neqContext ctx) {
         return P.neq(getSingleGenericLiteralArgument(ctx));
     }
 
     /**
      * {@inheritDoc}
      */
-    @Override public P visitTraversalPredicate_lt(final GremlinParser.TraversalPredicate_ltContext ctx) {
+    @Override
+    public P visitTraversalPredicate_lt(final GremlinParser.TraversalPredicate_ltContext ctx) {
         return P.lt(getSingleGenericLiteralArgument(ctx));
     }
 
     /**
      * {@inheritDoc}
      */
-    @Override public P visitTraversalPredicate_lte(final GremlinParser.TraversalPredicate_lteContext ctx) {
+    @Override
+    public P visitTraversalPredicate_lte(final GremlinParser.TraversalPredicate_lteContext ctx) {
         return P.lte(getSingleGenericLiteralArgument(ctx));
     }
 
     /**
      * {@inheritDoc}
      */
-    @Override public P visitTraversalPredicate_gt(final GremlinParser.TraversalPredicate_gtContext ctx) {
+    @Override
+    public P visitTraversalPredicate_gt(final GremlinParser.TraversalPredicate_gtContext ctx) {
         return P.gt(getSingleGenericLiteralArgument(ctx));
     }
 
     /**
      * {@inheritDoc}
      */
-    @Override public P visitTraversalPredicate_gte(final GremlinParser.TraversalPredicate_gteContext ctx) {
+    @Override
+    public P visitTraversalPredicate_gte(final GremlinParser.TraversalPredicate_gteContext ctx) {
         return P.gte(getSingleGenericLiteralArgument(ctx));
     }
 
@@ -157,7 +163,8 @@
     /**
      * {@inheritDoc}
      */
-    @Override public P visitTraversalPredicate_inside(final GremlinParser.TraversalPredicate_insideContext ctx) {
+    @Override
+    public P visitTraversalPredicate_inside(final GremlinParser.TraversalPredicate_insideContext ctx) {
         final Object[] arguments = getDoubleGenericLiteralArgument(ctx);
         return P.inside(arguments[0], arguments[1]);
     }
@@ -165,7 +172,8 @@
     /**
      * {@inheritDoc}
      */
-    @Override public P visitTraversalPredicate_outside(final GremlinParser.TraversalPredicate_outsideContext ctx) {
+    @Override
+    public P visitTraversalPredicate_outside(final GremlinParser.TraversalPredicate_outsideContext ctx) {
         final Object[] arguments = getDoubleGenericLiteralArgument(ctx);
         return P.outside(arguments[0], arguments[1]);
     }
@@ -173,7 +181,8 @@
     /**
      * {@inheritDoc}
      */
-    @Override public P visitTraversalPredicate_between(final GremlinParser.TraversalPredicate_betweenContext ctx) {
+    @Override
+    public P visitTraversalPredicate_between(final GremlinParser.TraversalPredicate_betweenContext ctx) {
         final Object[] arguments = getDoubleGenericLiteralArgument(ctx);
         return P.between(arguments[0], arguments[1]);
     }
@@ -181,7 +190,8 @@
     /**
      * {@inheritDoc}
      */
-    @Override public P visitTraversalPredicate_within(final GremlinParser.TraversalPredicate_withinContext ctx) {
+    @Override
+    public P visitTraversalPredicate_within(final GremlinParser.TraversalPredicate_withinContext ctx) {
         final int childIndexOfParameterValues = 2;
 
         // called with no args which is valid for java/groovy
@@ -205,7 +215,8 @@
     /**
      * {@inheritDoc}
      */
-    @Override public P visitTraversalPredicate_without(final GremlinParser.TraversalPredicate_withoutContext ctx) {
+    @Override
+    public P visitTraversalPredicate_without(final GremlinParser.TraversalPredicate_withoutContext ctx) {
         final int childIndexOfParameterValues = 2;
 
         // called with no args which is valid for java/groovy
@@ -229,7 +240,8 @@
     /**
      * {@inheritDoc}
      */
-    @Override public P visitTraversalPredicate_not(final GremlinParser.TraversalPredicate_notContext ctx) {
+    @Override
+    public P visitTraversalPredicate_not(final GremlinParser.TraversalPredicate_notContext ctx) {
         final int childIndexOfParameterPredicate = 2;
 
         return P.not(visitTraversalPredicate(castChildToTraversalPredicate(ctx, childIndexOfParameterPredicate)));
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalSourceSelfMethodVisitor.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalSourceSelfMethodVisitor.java
index 6e765bb..77eca7a 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalSourceSelfMethodVisitor.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalSourceSelfMethodVisitor.java
@@ -56,7 +56,7 @@
     {
         final int childIndexOfParameterUseBulk = 2;
 
-        final Boolean useBulk = (Boolean)(GenericLiteralVisitor.instance().visitBooleanLiteral(
+        final Boolean useBulk = (Boolean)(new GenericLiteralVisitor(antlr).visitBooleanLiteral(
                 (GremlinParser.BooleanLiteralContext)(ctx.getChild(childIndexOfParameterUseBulk))));
 
         return source.withBulk(useBulk);
@@ -80,12 +80,12 @@
         final int childIndexOfParameterInitialValue = 2;
 
         if (ctx.getChildCount() == 4) {
-            return source.withSack(GenericLiteralVisitor.instance().visitGenericLiteral(
+            return source.withSack(new GenericLiteralVisitor(antlr).visitGenericLiteral(
                     ParseTreeContextCastHelper.castChildToGenericLiteral(ctx, childIndexOfParameterInitialValue)));
         } else {
             final int childIndexOfParameterMergeOperator = 4;
 
-            return source.withSack(GenericLiteralVisitor.instance().visitGenericLiteral(
+            return source.withSack(new GenericLiteralVisitor(antlr).visitGenericLiteral(
                     ParseTreeContextCastHelper.castChildToGenericLiteral(ctx, childIndexOfParameterInitialValue)),
                     TraversalEnumParser.parseTraversalEnumFromContext(Operator.class, ctx.getChild(childIndexOfParameterMergeOperator)));
         }
@@ -100,9 +100,9 @@
         final int childIndexOfParameterKey = 2;
         final int childIndexOfParameterInitialValue = 4;
 
-        final String argument1 = (String)(GenericLiteralVisitor.instance().visitStringBasedLiteral(
+        final String argument1 = (String)(new GenericLiteralVisitor(antlr).visitStringBasedLiteral(
                 (GremlinParser.StringBasedLiteralContext)(ctx.getChild(childIndexOfParameterKey))));
-        final Object argument2 = GenericLiteralVisitor.instance().visitGenericLiteral(
+        final Object argument2 = new GenericLiteralVisitor(antlr).visitGenericLiteral(
                 (GremlinParser.GenericLiteralContext)(ctx.getChild(childIndexOfParameterInitialValue)));
 
         return source.withSideEffect(argument1, argument2);
@@ -136,15 +136,15 @@
         final int childIndexOfParameterKey = 2;
 
         if (ctx.getChildCount() == 4) {
-            final String argument1 = (String)(GenericLiteralVisitor.instance().visitStringBasedLiteral(
+            final String argument1 = (String)(new GenericLiteralVisitor(antlr).visitStringBasedLiteral(
                     (GremlinParser.StringBasedLiteralContext)(ctx.getChild(childIndexOfParameterKey))));
             return source.with(argument1);
         } else {
             final int childIndexOfParameterInitialValue = 4;
 
-            final String argument1 = (String)(GenericLiteralVisitor.instance().visitStringBasedLiteral(
+            final String argument1 = (String)(new GenericLiteralVisitor(antlr).visitStringBasedLiteral(
                     (GremlinParser.StringBasedLiteralContext)(ctx.getChild(childIndexOfParameterKey))));
-            final Object argument2 = GenericLiteralVisitor.instance().visitGenericLiteral(
+            final Object argument2 = new GenericLiteralVisitor(antlr).visitGenericLiteral(
                     (GremlinParser.GenericLiteralContext)(ctx.getChild(childIndexOfParameterInitialValue)));
             return source.with(argument1, argument2);
         }