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

colegreer pushed a commit to branch TINKERPOP-3236
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit a0e0ff9e327c66d27021c1d652641e34f2ae8e0c
Author: Cole Greer <[email protected]>
AuthorDate: Tue Mar 17 09:44:04 2026 -0700

    [TINKERPOP-3236] Expand grammar argument types for coin and pagerank steps 
to numericArgument
---
 CHANGELOG.asciidoc                                             |  1 +
 .../tinkerpop/gremlin/language/grammar/ArgumentVisitor.java    | 10 +++++-----
 .../gremlin/language/grammar/DefaultGremlinBaseVisitor.java    |  2 +-
 .../gremlin/language/grammar/GenericLiteralVisitor.java        |  4 ++--
 .../gremlin/language/grammar/TraversalMethodVisitor.java       |  4 ++--
 .../gremlin/language/grammar/ArgumentVisitorTest.java          |  2 +-
 gremlin-language/src/main/antlr4/Gremlin.g4                    |  8 ++++----
 7 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 555e70a604..984c5dd4f4 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -29,6 +29,7 @@ 
image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 * Fixed bug in `SubgraphStrategy` where specifying `edges` and `vertices` 
filters that had `map`-type steps could generate an error.
 * Fixed bug in `ReservedKeysVerificationStrategy` where `AddPropertyStep` was 
not triggering proper validations.
 * Fixed bug in `mergeE` where `onCreate` validation of invalid static argument 
overrides did not trigger until traversal runtime.
+* Expand grammar argument types for `coin` and `pagerank` steps to 
`numericArgument` from `floatArgument`.
 * Added `closeSessionPostGraphOp` to the Gremlin Server settings to indicate 
that the `Session` should be closed on either a successful commit or rollback.
 * Added `SessionedChildClient` that borrows connections from a different 
`Client` for use with `Sessions`.
 * Added `reuseConnectionsForSessions` to Java GLV settings to decide whether 
to use `SessionedChildClient` for remote transactions.
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitor.java
index a461896fa7..9b7212c638 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitor.java
@@ -66,8 +66,8 @@ public class ArgumentVisitor extends 
DefaultGremlinBaseVisitor<Object> {
     /**
      * Wrapper to visit function for float types.
      */
-    public Number parseNumber(final GremlinParser.FloatArgumentContext ctx) {
-        return (Number) visitFloatArgument(ctx);
+    public Number parseNumber(final GremlinParser.NumericArgumentContext ctx) {
+        return (Number) visitNumericArgument(ctx);
     }
 
     /**
@@ -240,9 +240,9 @@ public class ArgumentVisitor extends 
DefaultGremlinBaseVisitor<Object> {
     }
 
     @Override
-    public Object visitFloatArgument(final GremlinParser.FloatArgumentContext 
ctx) {
-        if (ctx.floatLiteral() != null) {
-            return antlr.genericVisitor.parseFloating(ctx.floatLiteral());
+    public Object visitNumericArgument(final 
GremlinParser.NumericArgumentContext ctx) {
+        if (ctx.numericLiteral() != null) {
+            return antlr.genericVisitor.parseNumeric(ctx.numericLiteral());
         } else {
             return visitVariable(ctx.variable());
         }
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
index c0432ddd83..3582444ab6 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/DefaultGremlinBaseVisitor.java
@@ -1462,7 +1462,7 @@ public class DefaultGremlinBaseVisitor<T> extends 
AbstractParseTreeVisitor<T> im
        /**
         * {@inheritDoc}
         */
-       @Override public T visitFloatArgument(final 
GremlinParser.FloatArgumentContext ctx) { notImplemented(ctx); return null; }
+       @Override public T visitNumericArgument(final 
GremlinParser.NumericArgumentContext ctx) { notImplemented(ctx); return null; }
        /**
         * {@inheritDoc}
         */
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
index d7f87f298a..a4d5a8b641 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/GenericLiteralVisitor.java
@@ -63,8 +63,8 @@ public class GenericLiteralVisitor extends 
DefaultGremlinBaseVisitor<Object> {
     /**
      * Parse floating literal context and return a floating type number.
      */
-    public Number parseFloating(final GremlinParser.FloatLiteralContext 
floatLiteral) {
-        return (Number) visitFloatLiteral(floatLiteral);
+    public Number parseNumeric(final GremlinParser.NumericLiteralContext 
numericLiteral) {
+        return (Number) visitNumericLiteral(numericLiteral);
     }
 
     /**
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 6dcafe2e65..222af839e3 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
@@ -443,7 +443,7 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor<GraphTraversal>
      */
     @Override
     public GraphTraversal visitTraversalMethod_coin(final 
GremlinParser.TraversalMethod_coinContext ctx) {
-        return graphTraversal.coin(((Number) 
antlr.argumentVisitor.visitFloatArgument(ctx.floatArgument())).doubleValue());
+        return graphTraversal.coin(((Number) 
antlr.argumentVisitor.visitNumericArgument(ctx.numericArgument())).doubleValue());
     }
 
     /**
@@ -1228,7 +1228,7 @@ public class TraversalMethodVisitor extends 
TraversalRootVisitor<GraphTraversal>
      */
     @Override
     public GraphTraversal visitTraversalMethod_pageRank_double(final 
GremlinParser.TraversalMethod_pageRank_doubleContext ctx) {
-        return graphTraversal.pageRank(((Number) 
antlr.argumentVisitor.visitFloatArgument(ctx.floatArgument())).doubleValue());
+        return graphTraversal.pageRank(((Number) 
antlr.argumentVisitor.visitNumericArgument(ctx.numericArgument())).doubleValue());
     }
 
     /**
diff --git 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitorTest.java
 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitorTest.java
index 8c2472eebc..4c64c1804d 100644
--- 
a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitorTest.java
+++ 
b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/language/grammar/ArgumentVisitorTest.java
@@ -178,7 +178,7 @@ public class ArgumentVisitorTest {
             });
         } else if (clazz.equals(Float.class)) {
             assertParsing(() -> {
-                final GremlinParser.FloatArgumentContext ctx = 
parser.floatArgument();
+                final GremlinParser.NumericArgumentContext ctx = 
parser.numericArgument();
                 return antlrToLanguage.argumentVisitor.parseNumber(ctx);
             });
         } else if (clazz.equals(String.class)) {
diff --git a/gremlin-language/src/main/antlr4/Gremlin.g4 
b/gremlin-language/src/main/antlr4/Gremlin.g4
index 35a4b934e0..0b7a224790 100644
--- a/gremlin-language/src/main/antlr4/Gremlin.g4
+++ b/gremlin-language/src/main/antlr4/Gremlin.g4
@@ -409,7 +409,7 @@ traversalMethod_coalesce
     ;
 
 traversalMethod_coin
-    : 'coin' LPAREN floatArgument RPAREN
+    : 'coin' LPAREN numericArgument RPAREN
     ;
 
 traversalMethod_combine
@@ -668,7 +668,7 @@ traversalMethod_outV
 
 traversalMethod_pageRank
     : 'pageRank' LPAREN RPAREN #traversalMethod_pageRank_Empty
-    | 'pageRank' LPAREN floatArgument RPAREN #traversalMethod_pageRank_double
+    | 'pageRank' LPAREN numericArgument RPAREN #traversalMethod_pageRank_double
     ;
 
 traversalMethod_path
@@ -1486,8 +1486,8 @@ integerArgument
     | variable
     ;
 
-floatArgument
-    : floatLiteral
+numericArgument
+    : numericLiteral
     | variable
     ;
 

Reply via email to