gremlin 4.0.0-beta.2 → 4.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/driver/auth.cjs +11 -4
- package/build/cjs/driver/auth.d.cts +1 -1
- package/build/cjs/driver/client.cjs +82 -38
- package/build/cjs/driver/client.d.cts +30 -27
- package/build/cjs/driver/connection.cjs +173 -60
- package/build/cjs/driver/connection.d.cts +69 -26
- package/build/cjs/driver/dispatcher.browser.cjs +57 -0
- package/build/cjs/driver/dispatcher.browser.d.cts +35 -0
- package/build/cjs/driver/dispatcher.cjs +101 -0
- package/build/cjs/driver/dispatcher.d.cts +48 -0
- package/build/cjs/driver/driver-remote-connection.cjs +27 -15
- package/build/cjs/driver/driver-remote-connection.d.cts +10 -4
- package/build/cjs/driver/http-request.cjs +64 -0
- package/build/cjs/driver/http-request.d.cts +28 -0
- package/build/cjs/driver/logger.cjs +45 -0
- package/build/cjs/driver/logger.d.cts +29 -0
- package/build/cjs/driver/remote-connection.cjs +5 -8
- package/build/cjs/driver/remote-connection.d.cts +6 -21
- package/build/cjs/driver/request-message.cjs +110 -21
- package/build/cjs/driver/request-message.d.cts +38 -8
- package/build/cjs/driver/response-error.cjs +3 -3
- package/build/cjs/driver/response-error.d.cts +2 -2
- package/build/cjs/index.cjs +21 -0
- package/build/cjs/index.d.cts +47 -0
- package/build/cjs/language/grammar/GremlinLexer.cjs +1669 -1615
- package/build/cjs/language/grammar/GremlinLexer.d.cts +325 -316
- package/build/cjs/language/grammar/GremlinListener.cjs +322 -8
- package/build/cjs/language/grammar/GremlinListener.d.cts +351 -10
- package/build/cjs/language/grammar/GremlinParser.cjs +8700 -5798
- package/build/cjs/language/grammar/GremlinParser.d.cts +998 -619
- package/build/cjs/language/translator/AnonymizedTranslateVisitor.cjs +9 -0
- package/build/cjs/language/translator/AnonymizedTranslateVisitor.d.cts +3 -0
- package/build/cjs/language/translator/DotNetTranslateVisitor.cjs +113 -4
- package/build/cjs/language/translator/DotNetTranslateVisitor.d.cts +13 -2
- package/build/cjs/language/translator/GoTranslateVisitor.cjs +82 -0
- package/build/cjs/language/translator/GoTranslateVisitor.d.cts +9 -0
- package/build/cjs/language/translator/GroovyTranslateVisitor.cjs +23 -0
- package/build/cjs/language/translator/GroovyTranslateVisitor.d.cts +3 -0
- package/build/cjs/language/translator/JavaTranslateVisitor.cjs +23 -0
- package/build/cjs/language/translator/JavaTranslateVisitor.d.cts +3 -0
- package/build/cjs/language/translator/JavascriptTranslateVisitor.cjs +11 -0
- package/build/cjs/language/translator/JavascriptTranslateVisitor.d.cts +3 -0
- package/build/cjs/language/translator/PythonTranslateVisitor.cjs +39 -3
- package/build/cjs/language/translator/PythonTranslateVisitor.d.cts +3 -0
- package/build/cjs/language/translator/TranslateVisitor.cjs +9 -0
- package/build/cjs/language/translator/TranslateVisitor.d.cts +3 -0
- package/build/cjs/process/anonymous-traversal.cjs +5 -1
- package/build/cjs/process/graph-traversal.cjs +139 -8
- package/build/cjs/process/graph-traversal.d.cts +84 -3
- package/build/cjs/process/gremlin-lang.cjs +119 -7
- package/build/cjs/process/gremlin-lang.d.cts +6 -1
- package/build/cjs/process/gvalue.cjs +42 -0
- package/build/cjs/process/gvalue.d.cts +7 -0
- package/build/cjs/process/transaction.cjs +125 -23
- package/build/cjs/process/transaction.d.cts +50 -14
- package/build/cjs/process/traversal.cjs +105 -48
- package/build/cjs/process/traversal.d.cts +36 -10
- package/build/cjs/structure/PDTRegistry.cjs +116 -0
- package/build/cjs/structure/PDTRegistry.d.cts +34 -0
- package/build/cjs/structure/graph.cjs +351 -8
- package/build/cjs/structure/graph.d.cts +122 -3
- package/build/cjs/structure/io/binary/GraphBinary.cjs +68 -39
- package/build/cjs/structure/io/binary/GraphBinary.d.cts +15 -1
- package/build/cjs/structure/io/binary/internals/AnySerializer.cjs +34 -17
- package/build/cjs/structure/io/binary/internals/AnySerializer.d.cts +12 -2
- package/build/cjs/structure/io/binary/internals/ArraySerializer.cjs +41 -72
- package/build/cjs/structure/io/binary/internals/ArraySerializer.d.cts +14 -7
- package/build/cjs/structure/io/binary/internals/BigIntegerSerializer.cjs +34 -54
- package/build/cjs/structure/io/binary/internals/BigIntegerSerializer.d.cts +12 -7
- package/build/cjs/structure/io/binary/internals/BinarySerializer.cjs +31 -51
- package/build/cjs/structure/io/binary/internals/BinarySerializer.d.cts +12 -4
- package/build/cjs/structure/io/binary/internals/BooleanSerializer.cjs +28 -42
- package/build/cjs/structure/io/binary/internals/BooleanSerializer.d.cts +12 -4
- package/build/cjs/structure/io/binary/internals/ByteSerializer.cjs +24 -38
- package/build/cjs/structure/io/binary/internals/ByteSerializer.d.cts +12 -4
- package/build/cjs/structure/io/binary/internals/CompositePDTSerializer.cjs +81 -0
- package/build/cjs/structure/io/binary/internals/CompositePDTSerializer.d.cts +10 -0
- package/build/cjs/structure/io/binary/internals/DateTimeSerializer.cjs +52 -69
- package/build/cjs/structure/io/binary/internals/DateTimeSerializer.d.cts +12 -7
- package/build/cjs/structure/io/binary/internals/DoubleSerializer.cjs +24 -38
- package/build/cjs/structure/io/binary/internals/DoubleSerializer.d.cts +12 -4
- package/build/cjs/structure/io/binary/internals/EdgeSerializer.cjs +69 -124
- package/build/cjs/structure/io/binary/internals/EdgeSerializer.d.cts +14 -12
- package/build/cjs/structure/io/binary/internals/EnumSerializer.cjs +47 -59
- package/build/cjs/structure/io/binary/internals/EnumSerializer.d.cts +19 -4
- package/build/cjs/structure/io/binary/internals/FloatSerializer.cjs +24 -38
- package/build/cjs/structure/io/binary/internals/FloatSerializer.d.cts +12 -4
- package/build/cjs/structure/io/binary/internals/GraphBinaryReader.cjs +111 -37
- package/build/cjs/structure/io/binary/internals/GraphBinaryReader.d.cts +26 -2
- package/build/cjs/structure/io/binary/internals/GraphBinaryWriter.cjs +6 -6
- package/build/cjs/structure/io/binary/internals/GraphSerializer.cjs +184 -0
- package/build/cjs/structure/io/binary/internals/GraphSerializer.d.cts +22 -0
- package/build/cjs/structure/io/binary/internals/IntSerializer.cjs +33 -38
- package/build/cjs/structure/io/binary/internals/IntSerializer.d.cts +19 -4
- package/build/cjs/structure/io/binary/internals/LongSerializer.cjs +29 -42
- package/build/cjs/structure/io/binary/internals/LongSerializer.d.cts +13 -4
- package/build/cjs/structure/io/binary/internals/MapSerializer.cjs +36 -70
- package/build/cjs/structure/io/binary/internals/MapSerializer.d.cts +14 -7
- package/build/cjs/structure/io/binary/internals/MarkerSerializer.cjs +30 -33
- package/build/cjs/structure/io/binary/internals/MarkerSerializer.d.cts +13 -4
- package/build/cjs/structure/io/binary/internals/NumberSerializationStrategy.cjs +28 -2
- package/build/cjs/structure/io/binary/internals/NumberSerializationStrategy.d.cts +0 -3
- package/build/cjs/structure/io/binary/internals/PathSerializer.cjs +30 -55
- package/build/cjs/structure/io/binary/internals/PathSerializer.d.cts +14 -7
- package/build/cjs/structure/io/binary/internals/PrimitivePDTSerializer.cjs +80 -0
- package/build/cjs/structure/io/binary/internals/PrimitivePDTSerializer.d.cts +10 -0
- package/build/cjs/structure/io/binary/internals/PropertySerializer.cjs +32 -69
- package/build/cjs/structure/io/binary/internals/PropertySerializer.d.cts +14 -7
- package/build/cjs/structure/io/binary/internals/SetSerializer.cjs +39 -73
- package/build/cjs/structure/io/binary/internals/SetSerializer.d.cts +14 -7
- package/build/cjs/structure/io/binary/internals/ShortSerializer.cjs +24 -38
- package/build/cjs/structure/io/binary/internals/ShortSerializer.d.cts +12 -4
- package/build/cjs/structure/io/binary/internals/StreamReader.cjs +184 -0
- package/build/cjs/structure/io/binary/internals/StreamReader.d.cts +69 -0
- package/build/cjs/structure/io/binary/internals/StringSerializer.cjs +34 -53
- package/build/cjs/structure/io/binary/internals/StringSerializer.d.cts +14 -4
- package/build/cjs/structure/io/binary/internals/StubSerializer.cjs +2 -1
- package/build/cjs/structure/io/binary/internals/StubSerializer.d.cts +1 -1
- package/build/cjs/structure/io/binary/internals/TreeSerializer.cjs +139 -0
- package/build/cjs/structure/io/binary/internals/TreeSerializer.d.cts +54 -0
- package/build/cjs/structure/io/binary/internals/UnspecifiedNullSerializer.cjs +8 -31
- package/build/cjs/structure/io/binary/internals/UnspecifiedNullSerializer.d.cts +6 -4
- package/build/cjs/structure/io/binary/internals/UuidSerializer.cjs +33 -49
- package/build/cjs/structure/io/binary/internals/UuidSerializer.d.cts +12 -7
- package/build/cjs/structure/io/binary/internals/VertexPropertySerializer.cjs +37 -95
- package/build/cjs/structure/io/binary/internals/VertexPropertySerializer.d.cts +14 -7
- package/build/cjs/structure/io/binary/internals/VertexSerializer.cjs +41 -68
- package/build/cjs/structure/io/binary/internals/VertexSerializer.d.cts +14 -9
- package/build/cjs/utils.cjs +157 -40
- package/build/cjs/utils.d.cts +62 -4
- package/build/esm/driver/auth.d.ts +1 -1
- package/build/esm/driver/auth.js +11 -4
- package/build/esm/driver/client.d.ts +30 -27
- package/build/esm/driver/client.js +82 -38
- package/build/esm/driver/connection.d.ts +69 -26
- package/build/esm/driver/connection.js +172 -60
- package/build/esm/driver/dispatcher.browser.d.ts +35 -0
- package/build/esm/driver/dispatcher.browser.js +53 -0
- package/build/esm/driver/dispatcher.d.ts +48 -0
- package/build/esm/driver/dispatcher.js +94 -0
- package/build/esm/driver/driver-remote-connection.d.ts +10 -4
- package/build/esm/driver/driver-remote-connection.js +27 -15
- package/build/esm/driver/http-request.d.ts +28 -0
- package/build/esm/driver/http-request.js +60 -0
- package/build/esm/driver/logger.d.ts +29 -0
- package/build/esm/driver/logger.js +42 -0
- package/build/esm/driver/remote-connection.d.ts +6 -21
- package/build/esm/driver/remote-connection.js +5 -8
- package/build/esm/driver/request-message.d.ts +38 -8
- package/build/esm/driver/request-message.js +107 -21
- package/build/esm/driver/response-error.d.ts +2 -2
- package/build/esm/driver/response-error.js +3 -3
- package/build/esm/index.d.ts +47 -0
- package/build/esm/index.js +21 -0
- package/build/esm/language/grammar/GremlinLexer.d.ts +325 -316
- package/build/esm/language/grammar/GremlinLexer.js +1669 -1615
- package/build/esm/language/grammar/GremlinListener.d.ts +351 -10
- package/build/esm/language/grammar/GremlinListener.js +322 -8
- package/build/esm/language/grammar/GremlinParser.d.ts +998 -619
- package/build/esm/language/grammar/GremlinParser.js +8646 -5778
- package/build/esm/language/translator/AnonymizedTranslateVisitor.d.ts +3 -0
- package/build/esm/language/translator/AnonymizedTranslateVisitor.js +9 -0
- package/build/esm/language/translator/DotNetTranslateVisitor.d.ts +13 -2
- package/build/esm/language/translator/DotNetTranslateVisitor.js +113 -4
- package/build/esm/language/translator/GoTranslateVisitor.d.ts +9 -0
- package/build/esm/language/translator/GoTranslateVisitor.js +82 -0
- package/build/esm/language/translator/GroovyTranslateVisitor.d.ts +3 -0
- package/build/esm/language/translator/GroovyTranslateVisitor.js +23 -0
- package/build/esm/language/translator/JavaTranslateVisitor.d.ts +3 -0
- package/build/esm/language/translator/JavaTranslateVisitor.js +23 -0
- package/build/esm/language/translator/JavascriptTranslateVisitor.d.ts +3 -0
- package/build/esm/language/translator/JavascriptTranslateVisitor.js +11 -0
- package/build/esm/language/translator/PythonTranslateVisitor.d.ts +3 -0
- package/build/esm/language/translator/PythonTranslateVisitor.js +39 -3
- package/build/esm/language/translator/TranslateVisitor.d.ts +3 -0
- package/build/esm/language/translator/TranslateVisitor.js +9 -0
- package/build/esm/process/anonymous-traversal.js +5 -1
- package/build/esm/process/graph-traversal.d.ts +84 -3
- package/build/esm/process/graph-traversal.js +139 -8
- package/build/esm/process/gremlin-lang.d.ts +6 -1
- package/build/esm/process/gremlin-lang.js +121 -9
- package/build/esm/process/gvalue.d.ts +7 -0
- package/build/esm/process/gvalue.js +38 -0
- package/build/esm/process/transaction.d.ts +50 -14
- package/build/esm/process/transaction.js +122 -23
- package/build/esm/process/traversal.d.ts +36 -10
- package/build/esm/process/traversal.js +104 -47
- package/build/esm/structure/PDTRegistry.d.ts +34 -0
- package/build/esm/structure/PDTRegistry.js +112 -0
- package/build/esm/structure/graph.d.ts +122 -3
- package/build/esm/structure/graph.js +347 -7
- package/build/esm/structure/io/binary/GraphBinary.d.ts +15 -1
- package/build/esm/structure/io/binary/GraphBinary.js +66 -38
- package/build/esm/structure/io/binary/internals/AnySerializer.d.ts +12 -2
- package/build/esm/structure/io/binary/internals/AnySerializer.js +34 -17
- package/build/esm/structure/io/binary/internals/ArraySerializer.d.ts +14 -7
- package/build/esm/structure/io/binary/internals/ArraySerializer.js +41 -72
- package/build/esm/structure/io/binary/internals/BigIntegerSerializer.d.ts +12 -7
- package/build/esm/structure/io/binary/internals/BigIntegerSerializer.js +34 -54
- package/build/esm/structure/io/binary/internals/BinarySerializer.d.ts +12 -4
- package/build/esm/structure/io/binary/internals/BinarySerializer.js +31 -51
- package/build/esm/structure/io/binary/internals/BooleanSerializer.d.ts +12 -4
- package/build/esm/structure/io/binary/internals/BooleanSerializer.js +28 -42
- package/build/esm/structure/io/binary/internals/ByteSerializer.d.ts +12 -4
- package/build/esm/structure/io/binary/internals/ByteSerializer.js +24 -38
- package/build/esm/structure/io/binary/internals/CompositePDTSerializer.d.ts +10 -0
- package/build/esm/structure/io/binary/internals/CompositePDTSerializer.js +78 -0
- package/build/esm/structure/io/binary/internals/DateTimeSerializer.d.ts +12 -7
- package/build/esm/structure/io/binary/internals/DateTimeSerializer.js +52 -69
- package/build/esm/structure/io/binary/internals/DoubleSerializer.d.ts +12 -4
- package/build/esm/structure/io/binary/internals/DoubleSerializer.js +24 -38
- package/build/esm/structure/io/binary/internals/EdgeSerializer.d.ts +14 -12
- package/build/esm/structure/io/binary/internals/EdgeSerializer.js +69 -124
- package/build/esm/structure/io/binary/internals/EnumSerializer.d.ts +19 -4
- package/build/esm/structure/io/binary/internals/EnumSerializer.js +47 -59
- package/build/esm/structure/io/binary/internals/FloatSerializer.d.ts +12 -4
- package/build/esm/structure/io/binary/internals/FloatSerializer.js +24 -38
- package/build/esm/structure/io/binary/internals/GraphBinaryReader.d.ts +26 -2
- package/build/esm/structure/io/binary/internals/GraphBinaryReader.js +108 -37
- package/build/esm/structure/io/binary/internals/GraphBinaryWriter.js +6 -6
- package/build/esm/structure/io/binary/internals/GraphSerializer.d.ts +22 -0
- package/build/esm/structure/io/binary/internals/GraphSerializer.js +181 -0
- package/build/esm/structure/io/binary/internals/IntSerializer.d.ts +19 -4
- package/build/esm/structure/io/binary/internals/IntSerializer.js +33 -38
- package/build/esm/structure/io/binary/internals/LongSerializer.d.ts +13 -4
- package/build/esm/structure/io/binary/internals/LongSerializer.js +29 -42
- package/build/esm/structure/io/binary/internals/MapSerializer.d.ts +14 -7
- package/build/esm/structure/io/binary/internals/MapSerializer.js +36 -70
- package/build/esm/structure/io/binary/internals/MarkerSerializer.d.ts +13 -4
- package/build/esm/structure/io/binary/internals/MarkerSerializer.js +29 -33
- package/build/esm/structure/io/binary/internals/NumberSerializationStrategy.d.ts +0 -3
- package/build/esm/structure/io/binary/internals/NumberSerializationStrategy.js +28 -2
- package/build/esm/structure/io/binary/internals/PathSerializer.d.ts +14 -7
- package/build/esm/structure/io/binary/internals/PathSerializer.js +30 -55
- package/build/esm/structure/io/binary/internals/PrimitivePDTSerializer.d.ts +10 -0
- package/build/esm/structure/io/binary/internals/PrimitivePDTSerializer.js +77 -0
- package/build/esm/structure/io/binary/internals/PropertySerializer.d.ts +14 -7
- package/build/esm/structure/io/binary/internals/PropertySerializer.js +32 -69
- package/build/esm/structure/io/binary/internals/SetSerializer.d.ts +14 -7
- package/build/esm/structure/io/binary/internals/SetSerializer.js +39 -73
- package/build/esm/structure/io/binary/internals/ShortSerializer.d.ts +12 -4
- package/build/esm/structure/io/binary/internals/ShortSerializer.js +24 -38
- package/build/esm/structure/io/binary/internals/StreamReader.d.ts +69 -0
- package/build/esm/structure/io/binary/internals/StreamReader.js +181 -0
- package/build/esm/structure/io/binary/internals/StringSerializer.d.ts +14 -4
- package/build/esm/structure/io/binary/internals/StringSerializer.js +34 -53
- package/build/esm/structure/io/binary/internals/StubSerializer.d.ts +1 -1
- package/build/esm/structure/io/binary/internals/StubSerializer.js +2 -1
- package/build/esm/structure/io/binary/internals/TreeSerializer.d.ts +54 -0
- package/build/esm/structure/io/binary/internals/TreeSerializer.js +136 -0
- package/build/esm/structure/io/binary/internals/UnspecifiedNullSerializer.d.ts +6 -4
- package/build/esm/structure/io/binary/internals/UnspecifiedNullSerializer.js +8 -31
- package/build/esm/structure/io/binary/internals/UuidSerializer.d.ts +12 -7
- package/build/esm/structure/io/binary/internals/UuidSerializer.js +33 -49
- package/build/esm/structure/io/binary/internals/VertexPropertySerializer.d.ts +14 -7
- package/build/esm/structure/io/binary/internals/VertexPropertySerializer.js +37 -95
- package/build/esm/structure/io/binary/internals/VertexSerializer.d.ts +14 -9
- package/build/esm/structure/io/binary/internals/VertexSerializer.js +41 -68
- package/build/esm/utils.d.ts +62 -4
- package/build/esm/utils.js +145 -6
- package/package.json +27 -18
|
@@ -31,6 +31,9 @@ export default class AnonymizedTranslateVisitor extends TranslateVisitor {
|
|
|
31
31
|
visitNanLiteral(ctx: any): void;
|
|
32
32
|
visitInfLiteral(ctx: any): void;
|
|
33
33
|
visitUuidLiteral(ctx: any): void;
|
|
34
|
+
visitCharacterLiteral(ctx: any): void;
|
|
35
|
+
visitDurationLiteral(ctx: any): void;
|
|
36
|
+
visitBinaryLiteral(ctx: any): void;
|
|
34
37
|
visitNakedKey(ctx: any): void;
|
|
35
38
|
visitKeyword(ctx: any): void;
|
|
36
39
|
}
|
|
@@ -133,6 +133,15 @@ export default class AnonymizedTranslateVisitor extends TranslateVisitor {
|
|
|
133
133
|
visitUuidLiteral(ctx) {
|
|
134
134
|
this.anonymize(ctx, 'String');
|
|
135
135
|
}
|
|
136
|
+
visitCharacterLiteral(ctx) {
|
|
137
|
+
this.anonymize(ctx, 'Character');
|
|
138
|
+
}
|
|
139
|
+
visitDurationLiteral(ctx) {
|
|
140
|
+
this.anonymize(ctx, 'Duration');
|
|
141
|
+
}
|
|
142
|
+
visitBinaryLiteral(ctx) {
|
|
143
|
+
this.anonymize(ctx, 'ByteBuffer');
|
|
144
|
+
}
|
|
136
145
|
// ─── Keys — output unquoted (only values are anonymized) ─────────────────
|
|
137
146
|
visitNakedKey(ctx) {
|
|
138
147
|
this.sb.push(ctx.getText());
|
|
@@ -28,6 +28,9 @@ export default class DotNetTranslateVisitor extends TranslateVisitor {
|
|
|
28
28
|
visitMapEntry(ctx: any): void;
|
|
29
29
|
visitMapKey(ctx: any): void;
|
|
30
30
|
visitUuidLiteral(ctx: any): void;
|
|
31
|
+
visitCharacterLiteral(ctx: any): void;
|
|
32
|
+
visitDurationLiteral(ctx: any): void;
|
|
33
|
+
visitBinaryLiteral(ctx: any): void;
|
|
31
34
|
visitClassType(ctx: any): void;
|
|
32
35
|
visitTraversalStrategy(ctx: any): void;
|
|
33
36
|
visitConfiguration(ctx: any): void;
|
|
@@ -36,6 +39,7 @@ export default class DotNetTranslateVisitor extends TranslateVisitor {
|
|
|
36
39
|
private handleLongArguments;
|
|
37
40
|
private tryAppendCastToLong_IntArg;
|
|
38
41
|
private tryAppendCastToString_StringArg;
|
|
42
|
+
private visitStringArgumentVarargsWithCast;
|
|
39
43
|
private tryAppendCastToString_StringNullableLit;
|
|
40
44
|
private tryAppendCastToString_StringNullableArg;
|
|
41
45
|
private tryAppendCastToObject_GenericArg;
|
|
@@ -45,7 +49,9 @@ export default class DotNetTranslateVisitor extends TranslateVisitor {
|
|
|
45
49
|
visitTraversalSourceSpawnMethod_io(ctx: any): void;
|
|
46
50
|
visitTraversalSourceSpawnMethod_union(ctx: any): void;
|
|
47
51
|
visitTraversalSourceSpawnMethod_call_empty(ctx: any): void;
|
|
48
|
-
|
|
52
|
+
visitTraversalSourceSpawnMethod_match_string(ctx: any): void;
|
|
53
|
+
visitTraversalSourceSpawnMethod_match_string_map(ctx: any): void;
|
|
54
|
+
visitTraversalSourceSpawnMethod_addV_String(ctx: any): void;
|
|
49
55
|
visitTraversalSourceSpawnMethod_addE(ctx: any): void;
|
|
50
56
|
visitTraversalSourceSpawnMethod_call_string(ctx: any): void;
|
|
51
57
|
visitTraversalSourceSpawnMethod_call_string_map(ctx: any): void;
|
|
@@ -77,7 +83,9 @@ export default class DotNetTranslateVisitor extends TranslateVisitor {
|
|
|
77
83
|
visitTraversalMethod_local(ctx: any): void;
|
|
78
84
|
visitTraversalMethod_lTrim_Scope(ctx: any): void;
|
|
79
85
|
visitTraversalMethod_map(ctx: any): void;
|
|
80
|
-
|
|
86
|
+
visitTraversalMethod_match_traversal(ctx: any): void;
|
|
87
|
+
visitTraversalMethod_match_string(ctx: any): void;
|
|
88
|
+
visitTraversalMethod_match_string_map(ctx: any): void;
|
|
81
89
|
visitTraversalMethod_max_Empty(ctx: any): void;
|
|
82
90
|
visitTraversalMethod_max_Scope(ctx: any): void;
|
|
83
91
|
visitTraversalMethod_mean_Empty(ctx: any): void;
|
|
@@ -149,6 +157,9 @@ export default class DotNetTranslateVisitor extends TranslateVisitor {
|
|
|
149
157
|
visitTraversalMethod_option_Merge_Map(ctx: any): void;
|
|
150
158
|
visitTraversalMethod_option_Merge_Traversal(ctx: any): void;
|
|
151
159
|
visitTraversalMethod_option_Object_Traversal(ctx: any): void;
|
|
160
|
+
visitTraversalMethod_property_Object(ctx: any): void;
|
|
161
|
+
visitTraversalMethod_property_Cardinality_Object(ctx: any): void;
|
|
162
|
+
visitTraversalMethod_property_Traversal(ctx: any): void;
|
|
152
163
|
visitTraversalMethod_property_Cardinality_Object_Object_Object(ctx: any): void;
|
|
153
164
|
visitTraversalMethod_conjoin_String(ctx: any): void;
|
|
154
165
|
private tryAppendCastToString_StringLit;
|
|
@@ -211,6 +211,31 @@ export default class DotNetTranslateVisitor extends TranslateVisitor {
|
|
|
211
211
|
this.sb.push(ctx.stringLiteral().getText());
|
|
212
212
|
this.sb.push(')');
|
|
213
213
|
}
|
|
214
|
+
visitCharacterLiteral(ctx) {
|
|
215
|
+
const text = ctx.getText();
|
|
216
|
+
const withoutSuffix = text.substring(0, text.length - 1);
|
|
217
|
+
const inner = TranslateVisitor.removeFirstAndLastCharacters(withoutSuffix);
|
|
218
|
+
this.sb.push("'");
|
|
219
|
+
this.sb.push(inner);
|
|
220
|
+
this.sb.push("'");
|
|
221
|
+
}
|
|
222
|
+
visitDurationLiteral(ctx) {
|
|
223
|
+
const seconds = parseInt(ctx.integerLiteral(0).getText(), 10);
|
|
224
|
+
const nanos = parseInt(ctx.integerLiteral(1).getText(), 10);
|
|
225
|
+
const isPositive = ctx.booleanLiteral() === null ||
|
|
226
|
+
ctx.booleanLiteral().getText() === 'true';
|
|
227
|
+
// Convert to ticks: 1 tick = 100 nanoseconds, 1 second = 10,000,000 ticks
|
|
228
|
+
const ticks = seconds * 10_000_000 + Math.floor(nanos / 100);
|
|
229
|
+
this.sb.push(`TimeSpan.FromTicks(${ticks}L)`);
|
|
230
|
+
if (!isPositive) {
|
|
231
|
+
this.sb.push('.Negate()');
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
visitBinaryLiteral(ctx) {
|
|
235
|
+
this.sb.push('Convert.FromBase64String(');
|
|
236
|
+
this.sb.push(ctx.stringLiteral().getText());
|
|
237
|
+
this.sb.push(')');
|
|
238
|
+
}
|
|
214
239
|
visitClassType(ctx) {
|
|
215
240
|
this.sb.push('typeof(');
|
|
216
241
|
this.sb.push(ctx.getText());
|
|
@@ -306,6 +331,14 @@ export default class DotNetTranslateVisitor extends TranslateVisitor {
|
|
|
306
331
|
if (ctx?.variable() != null || ctx?.stringLiteral() != null)
|
|
307
332
|
this.sb.push('(string) ');
|
|
308
333
|
}
|
|
334
|
+
visitStringArgumentVarargsWithCast(ctx) {
|
|
335
|
+
for (let ix = 0; ix < ctx.getChildCount(); ix++) {
|
|
336
|
+
const child = ctx.getChild(ix);
|
|
337
|
+
if (child.constructor?.name === 'StringArgumentContext')
|
|
338
|
+
this.tryAppendCastToString_StringArg(child);
|
|
339
|
+
this.visit(child);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
309
342
|
tryAppendCastToString_StringNullableLit(ctx) {
|
|
310
343
|
if (ctx?.K_NULL != null && ctx.K_NULL() != null)
|
|
311
344
|
this.sb.push('(string) ');
|
|
@@ -349,12 +382,30 @@ export default class DotNetTranslateVisitor extends TranslateVisitor {
|
|
|
349
382
|
visitTraversalSourceSpawnMethod_io(ctx) { this.handleGenerics(ctx); }
|
|
350
383
|
visitTraversalSourceSpawnMethod_union(ctx) { this.handleGenerics(ctx); }
|
|
351
384
|
visitTraversalSourceSpawnMethod_call_empty(ctx) { this.handleGenerics(ctx); }
|
|
352
|
-
|
|
385
|
+
visitTraversalSourceSpawnMethod_match_string(ctx) {
|
|
386
|
+
this.sb.push(capitalize(ctx.getChild(0).getText()));
|
|
387
|
+
this.sb.push('(');
|
|
388
|
+
this.visit(ctx.stringLiteral());
|
|
389
|
+
this.sb.push(')');
|
|
390
|
+
}
|
|
391
|
+
visitTraversalSourceSpawnMethod_match_string_map(ctx) {
|
|
392
|
+
this.sb.push(capitalize(ctx.getChild(0).getText()));
|
|
393
|
+
this.sb.push('(');
|
|
394
|
+
this.visit(ctx.stringLiteral());
|
|
395
|
+
this.sb.push(', (IDictionary<object, object>) ');
|
|
396
|
+
this.visit(ctx.genericMapLiteral());
|
|
397
|
+
this.sb.push(')');
|
|
398
|
+
}
|
|
399
|
+
visitTraversalSourceSpawnMethod_addV_String(ctx) {
|
|
353
400
|
this.sb.push(capitalize(ctx.getChild(0).getText()));
|
|
354
401
|
for (let ix = 1; ix < ctx.getChildCount(); ix++) {
|
|
355
402
|
const child = ctx.getChild(ix);
|
|
356
403
|
if (child.constructor?.name === 'StringArgumentContext')
|
|
357
404
|
this.tryAppendCastToString_StringArg(child);
|
|
405
|
+
else if (child.constructor?.name === 'StringArgumentVarargsContext') {
|
|
406
|
+
this.visitStringArgumentVarargsWithCast(child);
|
|
407
|
+
continue;
|
|
408
|
+
}
|
|
358
409
|
this.visit(child);
|
|
359
410
|
}
|
|
360
411
|
}
|
|
@@ -424,7 +475,7 @@ export default class DotNetTranslateVisitor extends TranslateVisitor {
|
|
|
424
475
|
this.visit(ctx.nestedTraversal());
|
|
425
476
|
this.sb.push(')');
|
|
426
477
|
}
|
|
427
|
-
// ─── Traversal method overrides
|
|
478
|
+
// ─── Traversal method overrides - handleGenerics ─────────────────────────
|
|
428
479
|
visitTraversalMethod_asString_Scope(ctx) { this.handleGenerics(ctx); }
|
|
429
480
|
visitTraversalMethod_branch(ctx) { this.handleGenerics(ctx); }
|
|
430
481
|
visitTraversalMethod_cap(ctx) { this.handleGenerics(ctx); }
|
|
@@ -454,7 +505,21 @@ export default class DotNetTranslateVisitor extends TranslateVisitor {
|
|
|
454
505
|
visitTraversalMethod_local(ctx) { this.handleGenerics(ctx); }
|
|
455
506
|
visitTraversalMethod_lTrim_Scope(ctx) { this.handleGenerics(ctx); }
|
|
456
507
|
visitTraversalMethod_map(ctx) { this.handleGenerics(ctx); }
|
|
457
|
-
|
|
508
|
+
visitTraversalMethod_match_traversal(ctx) { this.handleGenerics(ctx); }
|
|
509
|
+
visitTraversalMethod_match_string(ctx) {
|
|
510
|
+
this.sb.push(capitalize(ctx.getChild(0).getText()));
|
|
511
|
+
this.sb.push('(');
|
|
512
|
+
this.visit(ctx.stringLiteral());
|
|
513
|
+
this.sb.push(')');
|
|
514
|
+
}
|
|
515
|
+
visitTraversalMethod_match_string_map(ctx) {
|
|
516
|
+
this.sb.push(capitalize(ctx.getChild(0).getText()));
|
|
517
|
+
this.sb.push('(');
|
|
518
|
+
this.visit(ctx.stringLiteral());
|
|
519
|
+
this.sb.push(', (IDictionary<object, object>) ');
|
|
520
|
+
this.visit(ctx.genericMapLiteral());
|
|
521
|
+
this.sb.push(')');
|
|
522
|
+
}
|
|
458
523
|
visitTraversalMethod_max_Empty(ctx) { this.handleGenerics(ctx); }
|
|
459
524
|
visitTraversalMethod_max_Scope(ctx) { this.handleGenerics(ctx); }
|
|
460
525
|
visitTraversalMethod_mean_Empty(ctx) { this.handleGenerics(ctx); }
|
|
@@ -493,7 +558,7 @@ export default class DotNetTranslateVisitor extends TranslateVisitor {
|
|
|
493
558
|
visitTraversalMethod_valueMap_String(ctx) { this.handleGenerics(ctx); }
|
|
494
559
|
visitTraversalMethod_valueMap_boolean_String(ctx) { this.handleGenerics(ctx); }
|
|
495
560
|
visitTraversalMethod_values(ctx) { this.handleGenerics(ctx); }
|
|
496
|
-
// ─── Traversal method overrides
|
|
561
|
+
// ─── Traversal method overrides - handleLongArguments ────────────────────
|
|
497
562
|
visitTraversalMethod_limit_long(ctx) { this.handleLongArguments(ctx); }
|
|
498
563
|
visitTraversalMethod_limit_Scope_long(ctx) { this.handleLongArguments(ctx); }
|
|
499
564
|
visitTraversalMethod_range_long_long(ctx) { this.handleLongArguments(ctx); }
|
|
@@ -509,6 +574,10 @@ export default class DotNetTranslateVisitor extends TranslateVisitor {
|
|
|
509
574
|
const child = ctx.getChild(ix);
|
|
510
575
|
if (child.constructor?.name === 'StringArgumentContext')
|
|
511
576
|
this.tryAppendCastToString_StringArg(child);
|
|
577
|
+
else if (child.constructor?.name === 'StringArgumentVarargsContext') {
|
|
578
|
+
this.visitStringArgumentVarargsWithCast(child);
|
|
579
|
+
continue;
|
|
580
|
+
}
|
|
512
581
|
this.visit(child);
|
|
513
582
|
}
|
|
514
583
|
}
|
|
@@ -518,6 +587,10 @@ export default class DotNetTranslateVisitor extends TranslateVisitor {
|
|
|
518
587
|
const child = ctx.getChild(ix);
|
|
519
588
|
if (child.constructor?.name === 'StringArgumentContext')
|
|
520
589
|
this.tryAppendCastToString_StringArg(child);
|
|
590
|
+
else if (child.constructor?.name === 'StringArgumentVarargsContext') {
|
|
591
|
+
this.visitStringArgumentVarargsWithCast(child);
|
|
592
|
+
continue;
|
|
593
|
+
}
|
|
521
594
|
this.visit(child);
|
|
522
595
|
}
|
|
523
596
|
}
|
|
@@ -741,6 +814,42 @@ export default class DotNetTranslateVisitor extends TranslateVisitor {
|
|
|
741
814
|
}
|
|
742
815
|
}
|
|
743
816
|
// ─── property ────────────────────────────────────────────────────────────
|
|
817
|
+
visitTraversalMethod_property_Object(ctx) {
|
|
818
|
+
// Property(null) is ambiguous with Property(ITraversal) - cast null to IDictionary to disambiguate
|
|
819
|
+
if (ctx.genericMapNullableArgument().genericMapNullableLiteral() != null &&
|
|
820
|
+
ctx.genericMapNullableArgument().genericMapNullableLiteral().nullLiteral() != null) {
|
|
821
|
+
this.visit(ctx.getChild(0));
|
|
822
|
+
this.sb.push('(');
|
|
823
|
+
this.sb.push('(IDictionary<object, object>) ');
|
|
824
|
+
this.visit(ctx.genericMapNullableArgument());
|
|
825
|
+
this.sb.push(')');
|
|
826
|
+
return;
|
|
827
|
+
}
|
|
828
|
+
this.visitChildren(ctx);
|
|
829
|
+
}
|
|
830
|
+
visitTraversalMethod_property_Cardinality_Object(ctx) {
|
|
831
|
+
// Property(Cardinality, null) - cast null to IDictionary to disambiguate
|
|
832
|
+
if (ctx.genericMapNullableArgument().genericMapNullableLiteral() != null &&
|
|
833
|
+
ctx.genericMapNullableArgument().genericMapNullableLiteral().nullLiteral() != null) {
|
|
834
|
+
this.visit(ctx.getChild(0));
|
|
835
|
+
this.sb.push('(');
|
|
836
|
+
this.visit(ctx.traversalCardinality());
|
|
837
|
+
this.sb.push(', ');
|
|
838
|
+
this.sb.push('(IDictionary<object, object>) ');
|
|
839
|
+
this.visit(ctx.genericMapNullableArgument());
|
|
840
|
+
this.sb.push(')');
|
|
841
|
+
return;
|
|
842
|
+
}
|
|
843
|
+
this.visitChildren(ctx);
|
|
844
|
+
}
|
|
845
|
+
visitTraversalMethod_property_Traversal(ctx) {
|
|
846
|
+
// Property(ITraversal) - cast to ITraversal to disambiguate
|
|
847
|
+
this.visit(ctx.getChild(0));
|
|
848
|
+
this.sb.push('(');
|
|
849
|
+
this.sb.push('(ITraversal) ');
|
|
850
|
+
this.visit(ctx.nestedTraversal());
|
|
851
|
+
this.sb.push(')');
|
|
852
|
+
}
|
|
744
853
|
visitTraversalMethod_property_Cardinality_Object_Object_Object(ctx) {
|
|
745
854
|
if (ctx.genericArgumentVarargs() == null || ctx.genericArgumentVarargs().getChildCount() === 0) {
|
|
746
855
|
this.sb.push(capitalize(ctx.getChild(0).getText()));
|
|
@@ -25,7 +25,16 @@ export default class GoTranslateVisitor extends TranslateVisitor {
|
|
|
25
25
|
visitMapEntry(ctx: any): void;
|
|
26
26
|
visitMapKey(ctx: any): void;
|
|
27
27
|
visitUuidLiteral(ctx: any): void;
|
|
28
|
+
visitCharacterLiteral(_ctx: any): void;
|
|
29
|
+
visitDurationLiteral(ctx: any): void;
|
|
30
|
+
visitBinaryLiteral(ctx: any): void;
|
|
31
|
+
visitTraversalTerminalMethod_next(ctx: any): void;
|
|
28
32
|
visitTraversalStrategy(ctx: any): void;
|
|
29
33
|
visitConfiguration(ctx: any): void;
|
|
34
|
+
visitTraversalSourceSpawnMethod_match_string(ctx: any): void;
|
|
35
|
+
visitTraversalSourceSpawnMethod_match_string_map(ctx: any): void;
|
|
36
|
+
visitTraversalMethod_match_string(ctx: any): void;
|
|
37
|
+
visitTraversalMethod_match_string_map(ctx: any): void;
|
|
38
|
+
private visitGoParamsMap;
|
|
30
39
|
visitTraversalSourceSelfMethod_withoutStrategies(ctx: any): void;
|
|
31
40
|
}
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
// require accepting arbitrary context types at runtime.
|
|
21
21
|
import TranslateVisitor from './TranslateVisitor.js';
|
|
22
22
|
import { TranslatorException } from './TranslatorException.js';
|
|
23
|
+
import { Buffer } from 'buffer';
|
|
23
24
|
const GO_PACKAGE_NAME = 'gremlingo.';
|
|
24
25
|
const STRATEGY_WITH_MAP_OPTS = new Set([
|
|
25
26
|
'OptionsStrategy',
|
|
@@ -229,6 +230,40 @@ export default class GoTranslateVisitor extends TranslateVisitor {
|
|
|
229
230
|
this.visitStringLiteral(ctx.stringLiteral());
|
|
230
231
|
this.sb.push(')');
|
|
231
232
|
}
|
|
233
|
+
visitCharacterLiteral(_ctx) {
|
|
234
|
+
throw new TranslatorException('Character literals are not supported in Go');
|
|
235
|
+
}
|
|
236
|
+
visitDurationLiteral(ctx) {
|
|
237
|
+
const seconds = parseInt(ctx.integerLiteral(0).getText(), 10);
|
|
238
|
+
const nanos = parseInt(ctx.integerLiteral(1).getText(), 10);
|
|
239
|
+
const isPositive = ctx.booleanLiteral() === null ||
|
|
240
|
+
ctx.booleanLiteral().getText() === 'true';
|
|
241
|
+
// Use BigInt to avoid precision loss for durations over ~104 days
|
|
242
|
+
const totalNanos = BigInt(seconds) * 1000000000n + BigInt(nanos);
|
|
243
|
+
this.sb.push(`time.Duration(${isPositive ? totalNanos : -totalNanos})`);
|
|
244
|
+
}
|
|
245
|
+
visitBinaryLiteral(ctx) {
|
|
246
|
+
const base64Str = TranslateVisitor.removeFirstAndLastCharacters(ctx.stringLiteral().getText());
|
|
247
|
+
const bytes = base64ToBytes(base64Str);
|
|
248
|
+
this.sb.push(GO_PACKAGE_NAME + 'ByteBuffer{Data: []byte{');
|
|
249
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
250
|
+
if (i > 0)
|
|
251
|
+
this.sb.push(',');
|
|
252
|
+
this.sb.push(String(bytes[i]));
|
|
253
|
+
}
|
|
254
|
+
this.sb.push('}}');
|
|
255
|
+
}
|
|
256
|
+
visitTraversalTerminalMethod_next(ctx) {
|
|
257
|
+
// Go has no method overloading: next() maps to Next(), next(n) maps to NextN(n)
|
|
258
|
+
if (ctx.getChildCount() === 4) {
|
|
259
|
+
this.sb.push('NextN(');
|
|
260
|
+
this.visit(ctx.getChild(2));
|
|
261
|
+
this.sb.push(')');
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
this.sb.push('Next()');
|
|
265
|
+
}
|
|
266
|
+
}
|
|
232
267
|
visitTraversalStrategy(ctx) {
|
|
233
268
|
if (ctx.getChildCount() === 1) {
|
|
234
269
|
this.sb.push(GO_PACKAGE_NAME);
|
|
@@ -291,6 +326,40 @@ export default class GoTranslateVisitor extends TranslateVisitor {
|
|
|
291
326
|
this.sb.push(transformed);
|
|
292
327
|
}
|
|
293
328
|
}
|
|
329
|
+
visitTraversalSourceSpawnMethod_match_string(ctx) {
|
|
330
|
+
this.sb.push('Match(');
|
|
331
|
+
this.visit(ctx.stringLiteral());
|
|
332
|
+
this.sb.push(')');
|
|
333
|
+
}
|
|
334
|
+
visitTraversalSourceSpawnMethod_match_string_map(ctx) {
|
|
335
|
+
this.sb.push('Match(');
|
|
336
|
+
this.visit(ctx.stringLiteral());
|
|
337
|
+
this.sb.push(', ');
|
|
338
|
+
this.visitGoParamsMap(ctx.genericMapLiteral());
|
|
339
|
+
this.sb.push(')');
|
|
340
|
+
}
|
|
341
|
+
visitTraversalMethod_match_string(ctx) {
|
|
342
|
+
this.sb.push('Match(');
|
|
343
|
+
this.visit(ctx.stringLiteral());
|
|
344
|
+
this.sb.push(')');
|
|
345
|
+
}
|
|
346
|
+
visitTraversalMethod_match_string_map(ctx) {
|
|
347
|
+
this.sb.push('Match(');
|
|
348
|
+
this.visit(ctx.stringLiteral());
|
|
349
|
+
this.sb.push(', ');
|
|
350
|
+
this.visitGoParamsMap(ctx.genericMapLiteral());
|
|
351
|
+
this.sb.push(')');
|
|
352
|
+
}
|
|
353
|
+
visitGoParamsMap(mapLiteral) {
|
|
354
|
+
this.sb.push('map[string]interface{}{');
|
|
355
|
+
const entries = mapLiteral.mapEntry();
|
|
356
|
+
for (let i = 0; i < entries.length; i++) {
|
|
357
|
+
this.visit(entries[i]);
|
|
358
|
+
if (i < entries.length - 1)
|
|
359
|
+
this.sb.push(', ');
|
|
360
|
+
}
|
|
361
|
+
this.sb.push(' }');
|
|
362
|
+
}
|
|
294
363
|
visitTraversalSourceSelfMethod_withoutStrategies(ctx) {
|
|
295
364
|
this.sb.push('WithoutStrategies(');
|
|
296
365
|
this.sb.push(GO_PACKAGE_NAME);
|
|
@@ -307,6 +376,19 @@ export default class GoTranslateVisitor extends TranslateVisitor {
|
|
|
307
376
|
this.sb.push(')');
|
|
308
377
|
}
|
|
309
378
|
}
|
|
379
|
+
/**
|
|
380
|
+
* Decodes a base64 string into an array of unsigned byte values.
|
|
381
|
+
*/
|
|
382
|
+
function base64ToBytes(base64) {
|
|
383
|
+
if (base64 === '')
|
|
384
|
+
return [];
|
|
385
|
+
const buf = Buffer.from(base64, 'base64');
|
|
386
|
+
const bytes = new Array(buf.length);
|
|
387
|
+
for (let i = 0; i < buf.length; i++) {
|
|
388
|
+
bytes[i] = buf[i];
|
|
389
|
+
}
|
|
390
|
+
return bytes;
|
|
391
|
+
}
|
|
310
392
|
class SymbolHelper {
|
|
311
393
|
static TO_GO_MAP = {
|
|
312
394
|
'OUT': 'Out',
|
|
@@ -9,6 +9,9 @@ export default class GroovyTranslateVisitor extends TranslateVisitor {
|
|
|
9
9
|
visitFloatLiteral(ctx: any): void;
|
|
10
10
|
visitInfLiteral(ctx: any): void;
|
|
11
11
|
visitUuidLiteral(ctx: any): void;
|
|
12
|
+
visitCharacterLiteral(ctx: any): void;
|
|
13
|
+
visitDurationLiteral(ctx: any): void;
|
|
14
|
+
visitBinaryLiteral(ctx: any): void;
|
|
12
15
|
visitNullLiteral(ctx: any): void;
|
|
13
16
|
visitGenericSetLiteral(ctx: any): void;
|
|
14
17
|
visitStringLiteral(ctx: any): void;
|
|
@@ -108,6 +108,29 @@ export default class GroovyTranslateVisitor extends TranslateVisitor {
|
|
|
108
108
|
this.sb.push(ctx.stringLiteral().getText());
|
|
109
109
|
this.sb.push(')');
|
|
110
110
|
}
|
|
111
|
+
visitCharacterLiteral(ctx) {
|
|
112
|
+
const text = ctx.getText();
|
|
113
|
+
const withoutSuffix = text.substring(0, text.length - 1);
|
|
114
|
+
const inner = TranslateVisitor.removeFirstAndLastCharacters(withoutSuffix);
|
|
115
|
+
this.sb.push("'");
|
|
116
|
+
this.sb.push(inner);
|
|
117
|
+
this.sb.push("' as char");
|
|
118
|
+
}
|
|
119
|
+
visitDurationLiteral(ctx) {
|
|
120
|
+
const seconds = parseInt(ctx.integerLiteral(0).getText(), 10);
|
|
121
|
+
const nanos = parseInt(ctx.integerLiteral(1).getText(), 10);
|
|
122
|
+
const isPositive = ctx.booleanLiteral() === null ||
|
|
123
|
+
ctx.booleanLiteral().getText() === 'true';
|
|
124
|
+
this.sb.push(`Duration.ofSeconds(${seconds}, ${nanos})`);
|
|
125
|
+
if (!isPositive) {
|
|
126
|
+
this.sb.push('.negated()');
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
visitBinaryLiteral(ctx) {
|
|
130
|
+
this.sb.push('ByteBuffer.wrap(Base64.getDecoder().decode(');
|
|
131
|
+
this.sb.push(ctx.stringLiteral().getText());
|
|
132
|
+
this.sb.push('))');
|
|
133
|
+
}
|
|
111
134
|
visitNullLiteral(ctx) {
|
|
112
135
|
if (ctx.parent?.constructor?.name === 'GenericMapNullableArgumentContext') {
|
|
113
136
|
this.sb.push('null as Map');
|
|
@@ -17,6 +17,9 @@ export default class JavaTranslateVisitor extends TranslateVisitor {
|
|
|
17
17
|
visitIntegerLiteral(ctx: any): void;
|
|
18
18
|
visitFloatLiteral(ctx: any): void;
|
|
19
19
|
visitUuidLiteral(ctx: any): void;
|
|
20
|
+
visitCharacterLiteral(ctx: any): void;
|
|
21
|
+
visitDurationLiteral(ctx: any): void;
|
|
22
|
+
visitBinaryLiteral(ctx: any): void;
|
|
20
23
|
visitGenericRangeLiteral(_ctx: any): void;
|
|
21
24
|
visitGenericSetLiteral(ctx: any): void;
|
|
22
25
|
visitGenericCollectionLiteral(ctx: any): void;
|
|
@@ -183,6 +183,29 @@ export default class JavaTranslateVisitor extends TranslateVisitor {
|
|
|
183
183
|
this.sb.push(ctx.stringLiteral().getText());
|
|
184
184
|
this.sb.push(')');
|
|
185
185
|
}
|
|
186
|
+
visitCharacterLiteral(ctx) {
|
|
187
|
+
const text = ctx.getText();
|
|
188
|
+
const withoutSuffix = text.substring(0, text.length - 1);
|
|
189
|
+
const inner = TranslateVisitor.removeFirstAndLastCharacters(withoutSuffix);
|
|
190
|
+
this.sb.push("'");
|
|
191
|
+
this.sb.push(inner);
|
|
192
|
+
this.sb.push("'");
|
|
193
|
+
}
|
|
194
|
+
visitDurationLiteral(ctx) {
|
|
195
|
+
const seconds = parseInt(ctx.integerLiteral(0).getText(), 10);
|
|
196
|
+
const nanos = parseInt(ctx.integerLiteral(1).getText(), 10);
|
|
197
|
+
const isPositive = ctx.booleanLiteral() === null ||
|
|
198
|
+
ctx.booleanLiteral().getText() === 'true';
|
|
199
|
+
this.sb.push(`Duration.ofSeconds(${seconds}, ${nanos})`);
|
|
200
|
+
if (!isPositive) {
|
|
201
|
+
this.sb.push('.negated()');
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
visitBinaryLiteral(ctx) {
|
|
205
|
+
this.sb.push('ByteBuffer.wrap(Base64.getDecoder().decode(');
|
|
206
|
+
this.sb.push(ctx.stringLiteral().getText());
|
|
207
|
+
this.sb.push('))');
|
|
208
|
+
}
|
|
186
209
|
visitGenericRangeLiteral(_ctx) {
|
|
187
210
|
throw new TranslatorException('Java does not support range literals');
|
|
188
211
|
}
|
|
@@ -22,4 +22,7 @@ export default class JavascriptTranslateVisitor extends TranslateVisitor {
|
|
|
22
22
|
visitGenericSetLiteral(ctx: any): void;
|
|
23
23
|
visitGenericCollectionLiteral(ctx: any): void;
|
|
24
24
|
visitUuidLiteral(ctx: any): void;
|
|
25
|
+
visitCharacterLiteral(_ctx: any): void;
|
|
26
|
+
visitDurationLiteral(_ctx: any): void;
|
|
27
|
+
visitBinaryLiteral(ctx: any): void;
|
|
25
28
|
}
|
|
@@ -171,6 +171,17 @@ export default class JavascriptTranslateVisitor extends TranslateVisitor {
|
|
|
171
171
|
this.visitStringLiteral(ctx.stringLiteral());
|
|
172
172
|
this.sb.push(')');
|
|
173
173
|
}
|
|
174
|
+
visitCharacterLiteral(_ctx) {
|
|
175
|
+
throw new TranslatorException('Character literals are not supported in JavaScript');
|
|
176
|
+
}
|
|
177
|
+
visitDurationLiteral(_ctx) {
|
|
178
|
+
throw new TranslatorException('Duration literals are not supported in JavaScript');
|
|
179
|
+
}
|
|
180
|
+
visitBinaryLiteral(ctx) {
|
|
181
|
+
this.sb.push("Buffer.from(");
|
|
182
|
+
this.visitStringLiteral(ctx.stringLiteral());
|
|
183
|
+
this.sb.push(",'base64')");
|
|
184
|
+
}
|
|
174
185
|
}
|
|
175
186
|
/**
|
|
176
187
|
* Formats a datetime string the same way Java's OffsetDateTime.toString() does:
|
|
@@ -23,6 +23,9 @@ export default class PythonTranslateVisitor extends TranslateVisitor {
|
|
|
23
23
|
visitMapEntry(ctx: any): void;
|
|
24
24
|
visitMapKey(ctx: any): void;
|
|
25
25
|
visitUuidLiteral(ctx: any): void;
|
|
26
|
+
visitCharacterLiteral(ctx: any): void;
|
|
27
|
+
visitDurationLiteral(ctx: any): void;
|
|
28
|
+
visitBinaryLiteral(ctx: any): void;
|
|
26
29
|
visitTraversalStrategy(ctx: any): void;
|
|
27
30
|
visitConfiguration(ctx: any): void;
|
|
28
31
|
}
|
|
@@ -35,9 +35,16 @@ export default class PythonTranslateVisitor extends TranslateVisitor {
|
|
|
35
35
|
return 'CardinalityValue';
|
|
36
36
|
}
|
|
37
37
|
handleStringLiteralText(text) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
if (text.includes("'")) {
|
|
39
|
+
this.sb.push('"');
|
|
40
|
+
this.sb.push(text);
|
|
41
|
+
this.sb.push('"');
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
this.sb.push("'");
|
|
45
|
+
this.sb.push(text);
|
|
46
|
+
this.sb.push("'");
|
|
47
|
+
}
|
|
41
48
|
}
|
|
42
49
|
visitBooleanLiteral(ctx) {
|
|
43
50
|
const text = ctx.getText();
|
|
@@ -196,6 +203,35 @@ export default class PythonTranslateVisitor extends TranslateVisitor {
|
|
|
196
203
|
this.visitStringLiteral(ctx.stringLiteral());
|
|
197
204
|
this.sb.push(')');
|
|
198
205
|
}
|
|
206
|
+
visitCharacterLiteral(ctx) {
|
|
207
|
+
const text = ctx.getText();
|
|
208
|
+
const withoutSuffix = text.substring(0, text.length - 1);
|
|
209
|
+
const inner = TranslateVisitor.removeFirstAndLastCharacters(withoutSuffix);
|
|
210
|
+
this.sb.push("SingleChar('");
|
|
211
|
+
this.sb.push(inner);
|
|
212
|
+
this.sb.push("')");
|
|
213
|
+
}
|
|
214
|
+
visitDurationLiteral(ctx) {
|
|
215
|
+
const seconds = parseInt(ctx.integerLiteral(0).getText(), 10);
|
|
216
|
+
const nanos = parseInt(ctx.integerLiteral(1).getText(), 10);
|
|
217
|
+
const isPositive = ctx.booleanLiteral() === null ||
|
|
218
|
+
ctx.booleanLiteral().getText() === 'true';
|
|
219
|
+
const totalSeconds = isPositive ? seconds : -seconds;
|
|
220
|
+
// Python's timedelta has microsecond resolution; sub-microsecond nanos are truncated
|
|
221
|
+
const micros = Math.floor(nanos / 1000);
|
|
222
|
+
if (micros === 0) {
|
|
223
|
+
this.sb.push(`timedelta(seconds=${totalSeconds})`);
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
const totalMicros = isPositive ? micros : -micros;
|
|
227
|
+
this.sb.push(`timedelta(seconds=${totalSeconds},microseconds=${totalMicros})`);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
visitBinaryLiteral(ctx) {
|
|
231
|
+
this.sb.push('base64.b64decode(');
|
|
232
|
+
this.visitStringLiteral(ctx.stringLiteral());
|
|
233
|
+
this.sb.push(')');
|
|
234
|
+
}
|
|
199
235
|
visitTraversalStrategy(ctx) {
|
|
200
236
|
if (ctx.getChildCount() === 1) {
|
|
201
237
|
this.sb.push(ctx.getText());
|
|
@@ -81,6 +81,9 @@ export default class TranslateVisitor {
|
|
|
81
81
|
visitNanLiteral(ctx: any): void;
|
|
82
82
|
visitInfLiteral(ctx: any): void;
|
|
83
83
|
visitUuidLiteral(ctx: any): void;
|
|
84
|
+
visitCharacterLiteral(ctx: any): void;
|
|
85
|
+
visitDurationLiteral(ctx: any): void;
|
|
86
|
+
visitBinaryLiteral(ctx: any): void;
|
|
84
87
|
visitStringLiteral(ctx: any): void;
|
|
85
88
|
visitStringNullableLiteral(ctx: any): void;
|
|
86
89
|
visitNakedKey(ctx: any): void;
|
|
@@ -344,6 +344,15 @@ export default class TranslateVisitor {
|
|
|
344
344
|
visitUuidLiteral(ctx) {
|
|
345
345
|
this.sb.push(ctx.getText());
|
|
346
346
|
}
|
|
347
|
+
visitCharacterLiteral(ctx) {
|
|
348
|
+
this.sb.push(ctx.getText());
|
|
349
|
+
}
|
|
350
|
+
visitDurationLiteral(ctx) {
|
|
351
|
+
this.sb.push(ctx.getText());
|
|
352
|
+
}
|
|
353
|
+
visitBinaryLiteral(ctx) {
|
|
354
|
+
this.sb.push(ctx.getText());
|
|
355
|
+
}
|
|
347
356
|
visitStringLiteral(ctx) {
|
|
348
357
|
const text = TranslateVisitor.removeFirstAndLastCharacters(ctx.getText());
|
|
349
358
|
this.handleStringLiteralText(text);
|
|
@@ -57,7 +57,11 @@ export default class AnonymousTraversalSource {
|
|
|
57
57
|
with_(connection) {
|
|
58
58
|
const traversalStrategies = new TraversalStrategies();
|
|
59
59
|
traversalStrategies.addStrategy(new RemoteStrategy(connection));
|
|
60
|
-
|
|
60
|
+
const gl = new GremlinLang();
|
|
61
|
+
if (connection.options?.pdtRegistry) {
|
|
62
|
+
gl.pdtRegistry = connection.options.pdtRegistry;
|
|
63
|
+
}
|
|
64
|
+
return new this.traversalSourceClass(new Graph(), traversalStrategies, gl, this.traversalSourceClass, this.traversalClass);
|
|
61
65
|
}
|
|
62
66
|
/**
|
|
63
67
|
* Creates a {@link GraphTraversalSource} binding a {@link RemoteConnection} to a remote {@link Graph} instances as its
|