diff --git a/driver-jms/src/main/java/io/nosqlbench/driver/jms/JmsActivity.java b/driver-jms/src/main/java/io/nosqlbench/driver/jms/JmsActivity.java index e5dd92d9d..bbe58d376 100644 --- a/driver-jms/src/main/java/io/nosqlbench/driver/jms/JmsActivity.java +++ b/driver-jms/src/main/java/io/nosqlbench/driver/jms/JmsActivity.java @@ -35,6 +35,7 @@ import org.apache.commons.lang3.StringUtils; import javax.jms.Destination; import javax.jms.JMSContext; +import javax.jms.JMSException; import java.util.concurrent.ConcurrentHashMap; @@ -105,8 +106,13 @@ public class JmsActivity extends SimpleActivity { } PulsarConnectionFactory factory; - factory = new PulsarConnectionFactory(jmsConnInfo.getJmsConnConfig()); - this.jmsContext = factory.createContext(); + try { + factory = new PulsarConnectionFactory(jmsConnInfo.getJmsConnConfig()); + this.jmsContext = factory.createContext(); + } catch (JMSException e) { + throw new RuntimeException( + "Unable to initialize JMS connection factory (driver type: " + jmsProviderType + ")!"); + } bindTimer = ActivityMetrics.timer(activityDef, "bind"); executeTimer = ActivityMetrics.timer(activityDef, "execute"); diff --git a/mvn-defaults/pom.xml b/mvn-defaults/pom.xml index 9814039cf..b81fc501c 100644 --- a/mvn-defaults/pom.xml +++ b/mvn-defaults/pom.xml @@ -29,6 +29,7 @@ 1.2.0 + 4.9.3 1.21 1.15 1.9.0 @@ -315,7 +316,7 @@ org.antlr antlr4-runtime - 4.10.1 + ${antlr4.version} diff --git a/virtdata-lang/pom.xml b/virtdata-lang/pom.xml index 1d572179a..2ad8448ec 100644 --- a/virtdata-lang/pom.xml +++ b/virtdata-lang/pom.xml @@ -1,19 +1,3 @@ - - 4.0.0 @@ -34,7 +18,7 @@ org.antlr antlr4-runtime - 4.10.1 + @@ -43,7 +27,7 @@ org.antlr antlr4-maven-plugin - 4.10.1 + 4.9.2 src/main/java/io/nosqlbench/virtdata/lang/grammars diff --git a/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtData.interp b/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtData.interp new file mode 100644 index 000000000..695ada8d1 --- /dev/null +++ b/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtData.interp @@ -0,0 +1,66 @@ +token literal names: +null +';' +'(' +',' +')' +'$' +';;' +null +null +null +null +null +'compose' +'->' +'=' +null +null +null +null +null + +token symbolic names: +null +null +null +null +null +null +null +LONG +DOUBLE +INTEGER +FLOAT +NEWLINE +COMPOSE +TYPEARROW +ASSIGN +SSTRING_LITERAL +DSTRING_LITERAL +ID +IDPART +WS + +rule names: +virtdataRecipe +virtdataFlow +expression +virtdataCall +lvalue +inputType +className +outputType +arg +ref +value +stringValue +longValue +doubleValue +integerValue +floatValue +specend + + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 21, 139, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 3, 2, 3, 2, 3, 2, 5, 2, 40, 10, 2, 7, 2, 42, 10, 2, 12, 2, 14, 2, 45, 11, 2, 3, 2, 3, 2, 3, 3, 5, 3, 50, 10, 3, 3, 3, 3, 3, 3, 3, 5, 3, 55, 10, 3, 7, 3, 57, 10, 3, 12, 3, 14, 3, 60, 11, 3, 3, 4, 3, 4, 3, 4, 5, 4, 65, 10, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 5, 5, 72, 10, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 7, 5, 79, 10, 5, 12, 5, 14, 5, 82, 11, 5, 5, 5, 84, 10, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 90, 10, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 5, 10, 103, 10, 10, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 5, 12, 113, 10, 12, 3, 13, 3, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 16, 3, 16, 3, 17, 3, 17, 3, 18, 3, 18, 6, 18, 127, 10, 18, 13, 18, 14, 18, 128, 3, 18, 3, 18, 6, 18, 133, 10, 18, 13, 18, 14, 18, 134, 5, 18, 137, 10, 18, 3, 18, 2, 2, 19, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 2, 3, 3, 2, 17, 18, 2, 141, 2, 36, 3, 2, 2, 2, 4, 49, 3, 2, 2, 2, 6, 64, 3, 2, 2, 2, 8, 71, 3, 2, 2, 2, 10, 91, 3, 2, 2, 2, 12, 93, 3, 2, 2, 2, 14, 95, 3, 2, 2, 2, 16, 97, 3, 2, 2, 2, 18, 102, 3, 2, 2, 2, 20, 104, 3, 2, 2, 2, 22, 112, 3, 2, 2, 2, 24, 114, 3, 2, 2, 2, 26, 116, 3, 2, 2, 2, 28, 118, 3, 2, 2, 2, 30, 120, 3, 2, 2, 2, 32, 122, 3, 2, 2, 2, 34, 136, 3, 2, 2, 2, 36, 43, 5, 4, 3, 2, 37, 39, 5, 34, 18, 2, 38, 40, 5, 4, 3, 2, 39, 38, 3, 2, 2, 2, 39, 40, 3, 2, 2, 2, 40, 42, 3, 2, 2, 2, 41, 37, 3, 2, 2, 2, 42, 45, 3, 2, 2, 2, 43, 41, 3, 2, 2, 2, 43, 44, 3, 2, 2, 2, 44, 46, 3, 2, 2, 2, 45, 43, 3, 2, 2, 2, 46, 47, 7, 2, 2, 3, 47, 3, 3, 2, 2, 2, 48, 50, 7, 14, 2, 2, 49, 48, 3, 2, 2, 2, 49, 50, 3, 2, 2, 2, 50, 51, 3, 2, 2, 2, 51, 58, 5, 6, 4, 2, 52, 54, 7, 3, 2, 2, 53, 55, 5, 6, 4, 2, 54, 53, 3, 2, 2, 2, 54, 55, 3, 2, 2, 2, 55, 57, 3, 2, 2, 2, 56, 52, 3, 2, 2, 2, 57, 60, 3, 2, 2, 2, 58, 56, 3, 2, 2, 2, 58, 59, 3, 2, 2, 2, 59, 5, 3, 2, 2, 2, 60, 58, 3, 2, 2, 2, 61, 62, 5, 10, 6, 2, 62, 63, 7, 16, 2, 2, 63, 65, 3, 2, 2, 2, 64, 61, 3, 2, 2, 2, 64, 65, 3, 2, 2, 2, 65, 66, 3, 2, 2, 2, 66, 67, 5, 8, 5, 2, 67, 7, 3, 2, 2, 2, 68, 69, 5, 12, 7, 2, 69, 70, 7, 15, 2, 2, 70, 72, 3, 2, 2, 2, 71, 68, 3, 2, 2, 2, 71, 72, 3, 2, 2, 2, 72, 73, 3, 2, 2, 2, 73, 74, 5, 14, 8, 2, 74, 83, 7, 4, 2, 2, 75, 80, 5, 18, 10, 2, 76, 77, 7, 5, 2, 2, 77, 79, 5, 18, 10, 2, 78, 76, 3, 2, 2, 2, 79, 82, 3, 2, 2, 2, 80, 78, 3, 2, 2, 2, 80, 81, 3, 2, 2, 2, 81, 84, 3, 2, 2, 2, 82, 80, 3, 2, 2, 2, 83, 75, 3, 2, 2, 2, 83, 84, 3, 2, 2, 2, 84, 85, 3, 2, 2, 2, 85, 86, 7, 6, 2, 2, 86, 89, 3, 2, 2, 2, 87, 88, 7, 15, 2, 2, 88, 90, 5, 16, 9, 2, 89, 87, 3, 2, 2, 2, 89, 90, 3, 2, 2, 2, 90, 9, 3, 2, 2, 2, 91, 92, 7, 19, 2, 2, 92, 11, 3, 2, 2, 2, 93, 94, 7, 19, 2, 2, 94, 13, 3, 2, 2, 2, 95, 96, 7, 19, 2, 2, 96, 15, 3, 2, 2, 2, 97, 98, 7, 19, 2, 2, 98, 17, 3, 2, 2, 2, 99, 103, 5, 22, 12, 2, 100, 103, 5, 8, 5, 2, 101, 103, 5, 20, 11, 2, 102, 99, 3, 2, 2, 2, 102, 100, 3, 2, 2, 2, 102, 101, 3, 2, 2, 2, 103, 19, 3, 2, 2, 2, 104, 105, 7, 7, 2, 2, 105, 106, 7, 19, 2, 2, 106, 21, 3, 2, 2, 2, 107, 113, 5, 32, 17, 2, 108, 113, 5, 28, 15, 2, 109, 113, 5, 30, 16, 2, 110, 113, 5, 26, 14, 2, 111, 113, 5, 24, 13, 2, 112, 107, 3, 2, 2, 2, 112, 108, 3, 2, 2, 2, 112, 109, 3, 2, 2, 2, 112, 110, 3, 2, 2, 2, 112, 111, 3, 2, 2, 2, 113, 23, 3, 2, 2, 2, 114, 115, 9, 2, 2, 2, 115, 25, 3, 2, 2, 2, 116, 117, 7, 9, 2, 2, 117, 27, 3, 2, 2, 2, 118, 119, 7, 10, 2, 2, 119, 29, 3, 2, 2, 2, 120, 121, 7, 11, 2, 2, 121, 31, 3, 2, 2, 2, 122, 123, 7, 12, 2, 2, 123, 33, 3, 2, 2, 2, 124, 126, 7, 8, 2, 2, 125, 127, 7, 13, 2, 2, 126, 125, 3, 2, 2, 2, 127, 128, 3, 2, 2, 2, 128, 126, 3, 2, 2, 2, 128, 129, 3, 2, 2, 2, 129, 137, 3, 2, 2, 2, 130, 137, 7, 8, 2, 2, 131, 133, 7, 13, 2, 2, 132, 131, 3, 2, 2, 2, 133, 134, 3, 2, 2, 2, 134, 132, 3, 2, 2, 2, 134, 135, 3, 2, 2, 2, 135, 137, 3, 2, 2, 2, 136, 124, 3, 2, 2, 2, 136, 130, 3, 2, 2, 2, 136, 132, 3, 2, 2, 2, 137, 35, 3, 2, 2, 2, 17, 39, 43, 49, 54, 58, 64, 71, 80, 83, 89, 102, 112, 128, 134, 136] \ No newline at end of file diff --git a/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtData.tokens b/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtData.tokens new file mode 100644 index 000000000..5dbe33081 --- /dev/null +++ b/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtData.tokens @@ -0,0 +1,28 @@ +T__0=1 +T__1=2 +T__2=3 +T__3=4 +T__4=5 +T__5=6 +LONG=7 +DOUBLE=8 +INTEGER=9 +FLOAT=10 +NEWLINE=11 +COMPOSE=12 +TYPEARROW=13 +ASSIGN=14 +SSTRING_LITERAL=15 +DSTRING_LITERAL=16 +ID=17 +IDPART=18 +WS=19 +';'=1 +'('=2 +','=3 +')'=4 +'$'=5 +';;'=6 +'compose'=12 +'->'=13 +'='=14 diff --git a/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtDataBaseListener.java b/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtDataBaseListener.java new file mode 100644 index 000000000..66b7cf07f --- /dev/null +++ b/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtDataBaseListener.java @@ -0,0 +1,259 @@ +/* + * Copyright (c) 2022 nosqlbench + * + * Licensed 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. + */ + +// Generated from VirtData.g4 by ANTLR 4.7.1 +package io.nosqlbench.virtdata.lang.lang.generated; + +import org.antlr.v4.runtime.ParserRuleContext; +import org.antlr.v4.runtime.tree.ErrorNode; +import org.antlr.v4.runtime.tree.TerminalNode; + +/** + * This class provides an empty implementation of {@link VirtDataListener}, + * which can be extended to create a listener which only needs to handle a subset + * of the available methods. + */ +public class VirtDataBaseListener implements VirtDataListener { + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVirtdataRecipe(VirtDataParser.VirtdataRecipeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVirtdataRecipe(VirtDataParser.VirtdataRecipeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVirtdataFlow(VirtDataParser.VirtdataFlowContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVirtdataFlow(VirtDataParser.VirtdataFlowContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExpression(VirtDataParser.ExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExpression(VirtDataParser.ExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVirtdataCall(VirtDataParser.VirtdataCallContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVirtdataCall(VirtDataParser.VirtdataCallContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLvalue(VirtDataParser.LvalueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLvalue(VirtDataParser.LvalueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInputType(VirtDataParser.InputTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInputType(VirtDataParser.InputTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFuncName(VirtDataParser.FuncNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFuncName(VirtDataParser.FuncNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOutputType(VirtDataParser.OutputTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOutputType(VirtDataParser.OutputTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArg(VirtDataParser.ArgContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArg(VirtDataParser.ArgContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRef(VirtDataParser.RefContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRef(VirtDataParser.RefContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterValue(VirtDataParser.ValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitValue(VirtDataParser.ValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStringValue(VirtDataParser.StringValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStringValue(VirtDataParser.StringValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLongValue(VirtDataParser.LongValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLongValue(VirtDataParser.LongValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDoubleValue(VirtDataParser.DoubleValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDoubleValue(VirtDataParser.DoubleValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIntegerValue(VirtDataParser.IntegerValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIntegerValue(VirtDataParser.IntegerValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFloatValue(VirtDataParser.FloatValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFloatValue(VirtDataParser.FloatValueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSpecend(VirtDataParser.SpecendContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSpecend(VirtDataParser.SpecendContext ctx) { } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void visitErrorNode(ErrorNode node) { } +} diff --git a/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtDataLexer.interp b/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtDataLexer.interp new file mode 100644 index 000000000..e4050a732 --- /dev/null +++ b/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtDataLexer.interp @@ -0,0 +1,76 @@ +token literal names: +null +';' +'(' +',' +')' +'$' +';;' +null +null +null +null +null +'compose' +'->' +'=' +null +null +null +null +null + +token symbolic names: +null +null +null +null +null +null +null +LONG +DOUBLE +INTEGER +FLOAT +NEWLINE +COMPOSE +TYPEARROW +ASSIGN +SSTRING_LITERAL +DSTRING_LITERAL +ID +IDPART +WS + +rule names: +T__0 +T__1 +T__2 +T__3 +T__4 +T__5 +LONG +DOUBLE +INTEGER +FLOAT +INT +EXP +NEWLINE +COMPOSE +TYPEARROW +ASSIGN +SSTRING_LITERAL +DSTRING_LITERAL +ID +IDPART +WS + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 21, 202, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 3, 2, 3, 2, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 8, 5, 8, 60, 10, 8, 3, 8, 3, 8, 3, 8, 3, 9, 5, 9, 66, 10, 9, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 72, 10, 9, 3, 9, 5, 9, 75, 10, 9, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 81, 10, 9, 3, 9, 5, 9, 84, 10, 9, 3, 9, 3, 9, 3, 10, 5, 10, 89, 10, 10, 3, 10, 3, 10, 3, 11, 5, 11, 94, 10, 11, 3, 11, 3, 11, 3, 11, 3, 11, 5, 11, 100, 10, 11, 3, 11, 5, 11, 103, 10, 11, 3, 11, 3, 11, 3, 11, 3, 11, 5, 11, 109, 10, 11, 3, 11, 5, 11, 112, 10, 11, 3, 12, 3, 12, 3, 12, 7, 12, 117, 10, 12, 12, 12, 14, 12, 120, 11, 12, 5, 12, 122, 10, 12, 3, 13, 3, 13, 5, 13, 126, 10, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 5, 14, 133, 10, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 7, 18, 152, 10, 18, 12, 18, 14, 18, 155, 11, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 7, 19, 163, 10, 19, 12, 19, 14, 19, 166, 11, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 7, 20, 173, 10, 20, 12, 20, 14, 20, 176, 11, 20, 3, 21, 3, 21, 7, 21, 180, 10, 21, 12, 21, 14, 21, 183, 11, 21, 3, 21, 3, 21, 7, 21, 187, 10, 21, 12, 21, 14, 21, 190, 11, 21, 3, 21, 3, 21, 5, 21, 194, 10, 21, 3, 22, 6, 22, 197, 10, 22, 13, 22, 14, 22, 198, 3, 22, 3, 22, 2, 2, 23, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 2, 25, 2, 27, 13, 29, 14, 31, 15, 33, 16, 35, 17, 37, 18, 39, 19, 41, 20, 43, 21, 3, 2, 16, 4, 2, 78, 78, 110, 110, 4, 2, 70, 70, 102, 102, 3, 2, 51, 59, 3, 2, 50, 59, 4, 2, 71, 71, 103, 103, 4, 2, 45, 45, 47, 47, 4, 2, 12, 12, 15, 15, 6, 2, 12, 12, 15, 15, 41, 41, 94, 94, 4, 2, 41, 41, 94, 94, 6, 2, 12, 12, 15, 15, 36, 36, 94, 94, 4, 2, 36, 36, 94, 94, 4, 2, 67, 92, 99, 124, 6, 2, 50, 59, 67, 92, 97, 97, 99, 124, 5, 2, 11, 11, 14, 14, 34, 34, 2, 226, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 3, 45, 3, 2, 2, 2, 5, 47, 3, 2, 2, 2, 7, 49, 3, 2, 2, 2, 9, 51, 3, 2, 2, 2, 11, 53, 3, 2, 2, 2, 13, 55, 3, 2, 2, 2, 15, 59, 3, 2, 2, 2, 17, 83, 3, 2, 2, 2, 19, 88, 3, 2, 2, 2, 21, 111, 3, 2, 2, 2, 23, 121, 3, 2, 2, 2, 25, 123, 3, 2, 2, 2, 27, 132, 3, 2, 2, 2, 29, 134, 3, 2, 2, 2, 31, 142, 3, 2, 2, 2, 33, 145, 3, 2, 2, 2, 35, 147, 3, 2, 2, 2, 37, 158, 3, 2, 2, 2, 39, 169, 3, 2, 2, 2, 41, 193, 3, 2, 2, 2, 43, 196, 3, 2, 2, 2, 45, 46, 7, 61, 2, 2, 46, 4, 3, 2, 2, 2, 47, 48, 7, 42, 2, 2, 48, 6, 3, 2, 2, 2, 49, 50, 7, 46, 2, 2, 50, 8, 3, 2, 2, 2, 51, 52, 7, 43, 2, 2, 52, 10, 3, 2, 2, 2, 53, 54, 7, 38, 2, 2, 54, 12, 3, 2, 2, 2, 55, 56, 7, 61, 2, 2, 56, 57, 7, 61, 2, 2, 57, 14, 3, 2, 2, 2, 58, 60, 7, 47, 2, 2, 59, 58, 3, 2, 2, 2, 59, 60, 3, 2, 2, 2, 60, 61, 3, 2, 2, 2, 61, 62, 5, 23, 12, 2, 62, 63, 9, 2, 2, 2, 63, 16, 3, 2, 2, 2, 64, 66, 7, 47, 2, 2, 65, 64, 3, 2, 2, 2, 65, 66, 3, 2, 2, 2, 66, 67, 3, 2, 2, 2, 67, 68, 5, 23, 12, 2, 68, 69, 7, 48, 2, 2, 69, 71, 5, 23, 12, 2, 70, 72, 5, 25, 13, 2, 71, 70, 3, 2, 2, 2, 71, 72, 3, 2, 2, 2, 72, 84, 3, 2, 2, 2, 73, 75, 7, 47, 2, 2, 74, 73, 3, 2, 2, 2, 74, 75, 3, 2, 2, 2, 75, 76, 3, 2, 2, 2, 76, 77, 5, 23, 12, 2, 77, 78, 5, 25, 13, 2, 78, 84, 3, 2, 2, 2, 79, 81, 7, 47, 2, 2, 80, 79, 3, 2, 2, 2, 80, 81, 3, 2, 2, 2, 81, 82, 3, 2, 2, 2, 82, 84, 5, 23, 12, 2, 83, 65, 3, 2, 2, 2, 83, 74, 3, 2, 2, 2, 83, 80, 3, 2, 2, 2, 84, 85, 3, 2, 2, 2, 85, 86, 9, 3, 2, 2, 86, 18, 3, 2, 2, 2, 87, 89, 7, 47, 2, 2, 88, 87, 3, 2, 2, 2, 88, 89, 3, 2, 2, 2, 89, 90, 3, 2, 2, 2, 90, 91, 5, 23, 12, 2, 91, 20, 3, 2, 2, 2, 92, 94, 7, 47, 2, 2, 93, 92, 3, 2, 2, 2, 93, 94, 3, 2, 2, 2, 94, 95, 3, 2, 2, 2, 95, 96, 5, 23, 12, 2, 96, 97, 7, 48, 2, 2, 97, 99, 5, 23, 12, 2, 98, 100, 5, 25, 13, 2, 99, 98, 3, 2, 2, 2, 99, 100, 3, 2, 2, 2, 100, 112, 3, 2, 2, 2, 101, 103, 7, 47, 2, 2, 102, 101, 3, 2, 2, 2, 102, 103, 3, 2, 2, 2, 103, 104, 3, 2, 2, 2, 104, 105, 5, 23, 12, 2, 105, 106, 5, 25, 13, 2, 106, 112, 3, 2, 2, 2, 107, 109, 7, 47, 2, 2, 108, 107, 3, 2, 2, 2, 108, 109, 3, 2, 2, 2, 109, 110, 3, 2, 2, 2, 110, 112, 5, 23, 12, 2, 111, 93, 3, 2, 2, 2, 111, 102, 3, 2, 2, 2, 111, 108, 3, 2, 2, 2, 112, 22, 3, 2, 2, 2, 113, 122, 7, 50, 2, 2, 114, 118, 9, 4, 2, 2, 115, 117, 9, 5, 2, 2, 116, 115, 3, 2, 2, 2, 117, 120, 3, 2, 2, 2, 118, 116, 3, 2, 2, 2, 118, 119, 3, 2, 2, 2, 119, 122, 3, 2, 2, 2, 120, 118, 3, 2, 2, 2, 121, 113, 3, 2, 2, 2, 121, 114, 3, 2, 2, 2, 122, 24, 3, 2, 2, 2, 123, 125, 9, 6, 2, 2, 124, 126, 9, 7, 2, 2, 125, 124, 3, 2, 2, 2, 125, 126, 3, 2, 2, 2, 126, 127, 3, 2, 2, 2, 127, 128, 5, 23, 12, 2, 128, 26, 3, 2, 2, 2, 129, 130, 7, 15, 2, 2, 130, 133, 7, 12, 2, 2, 131, 133, 9, 8, 2, 2, 132, 129, 3, 2, 2, 2, 132, 131, 3, 2, 2, 2, 133, 28, 3, 2, 2, 2, 134, 135, 7, 101, 2, 2, 135, 136, 7, 113, 2, 2, 136, 137, 7, 111, 2, 2, 137, 138, 7, 114, 2, 2, 138, 139, 7, 113, 2, 2, 139, 140, 7, 117, 2, 2, 140, 141, 7, 103, 2, 2, 141, 30, 3, 2, 2, 2, 142, 143, 7, 47, 2, 2, 143, 144, 7, 64, 2, 2, 144, 32, 3, 2, 2, 2, 145, 146, 7, 63, 2, 2, 146, 34, 3, 2, 2, 2, 147, 153, 7, 41, 2, 2, 148, 152, 10, 9, 2, 2, 149, 150, 7, 94, 2, 2, 150, 152, 9, 10, 2, 2, 151, 148, 3, 2, 2, 2, 151, 149, 3, 2, 2, 2, 152, 155, 3, 2, 2, 2, 153, 151, 3, 2, 2, 2, 153, 154, 3, 2, 2, 2, 154, 156, 3, 2, 2, 2, 155, 153, 3, 2, 2, 2, 156, 157, 7, 41, 2, 2, 157, 36, 3, 2, 2, 2, 158, 164, 7, 36, 2, 2, 159, 163, 10, 11, 2, 2, 160, 161, 7, 94, 2, 2, 161, 163, 9, 12, 2, 2, 162, 159, 3, 2, 2, 2, 162, 160, 3, 2, 2, 2, 163, 166, 3, 2, 2, 2, 164, 162, 3, 2, 2, 2, 164, 165, 3, 2, 2, 2, 165, 167, 3, 2, 2, 2, 166, 164, 3, 2, 2, 2, 167, 168, 7, 36, 2, 2, 168, 38, 3, 2, 2, 2, 169, 174, 5, 41, 21, 2, 170, 171, 7, 48, 2, 2, 171, 173, 5, 41, 21, 2, 172, 170, 3, 2, 2, 2, 173, 176, 3, 2, 2, 2, 174, 172, 3, 2, 2, 2, 174, 175, 3, 2, 2, 2, 175, 40, 3, 2, 2, 2, 176, 174, 3, 2, 2, 2, 177, 181, 9, 13, 2, 2, 178, 180, 9, 14, 2, 2, 179, 178, 3, 2, 2, 2, 180, 183, 3, 2, 2, 2, 181, 179, 3, 2, 2, 2, 181, 182, 3, 2, 2, 2, 182, 194, 3, 2, 2, 2, 183, 181, 3, 2, 2, 2, 184, 188, 9, 13, 2, 2, 185, 187, 9, 14, 2, 2, 186, 185, 3, 2, 2, 2, 187, 190, 3, 2, 2, 2, 188, 186, 3, 2, 2, 2, 188, 189, 3, 2, 2, 2, 189, 191, 3, 2, 2, 2, 190, 188, 3, 2, 2, 2, 191, 192, 7, 47, 2, 2, 192, 194, 9, 14, 2, 2, 193, 177, 3, 2, 2, 2, 193, 184, 3, 2, 2, 2, 194, 42, 3, 2, 2, 2, 195, 197, 9, 15, 2, 2, 196, 195, 3, 2, 2, 2, 197, 198, 3, 2, 2, 2, 198, 196, 3, 2, 2, 2, 198, 199, 3, 2, 2, 2, 199, 200, 3, 2, 2, 2, 200, 201, 8, 22, 2, 2, 201, 44, 3, 2, 2, 2, 28, 2, 59, 65, 71, 74, 80, 83, 88, 93, 99, 102, 108, 111, 118, 121, 125, 132, 151, 153, 162, 164, 174, 181, 188, 193, 198, 3, 2, 3, 2] \ No newline at end of file diff --git a/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtDataLexer.java b/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtDataLexer.java new file mode 100644 index 000000000..07b15feb0 --- /dev/null +++ b/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtDataLexer.java @@ -0,0 +1,192 @@ +/* + * Copyright (c) 2022 nosqlbench + * + * Licensed 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. + */ + +// Generated from VirtData.g4 by ANTLR 4.7.1 +package io.nosqlbench.virtdata.lang.lang.generated; +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class VirtDataLexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.7.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, LONG=7, DOUBLE=8, INTEGER=9, + FLOAT=10, NEWLINE=11, COMPOSE=12, TYPEARROW=13, ASSIGN=14, SSTRING_LITERAL=15, + DSTRING_LITERAL=16, ID=17, IDPART=18, WS=19; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + public static final String[] ruleNames = { + "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "LONG", "DOUBLE", "INTEGER", + "FLOAT", "INT", "EXP", "NEWLINE", "COMPOSE", "TYPEARROW", "ASSIGN", "SSTRING_LITERAL", + "DSTRING_LITERAL", "ID", "IDPART", "WS" + }; + + private static final String[] _LITERAL_NAMES = { + null, "';'", "'('", "','", "')'", "'$'", "';;'", null, null, null, null, + null, "'compose'", "'->'", "'='" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, null, null, null, null, null, null, "LONG", "DOUBLE", "INTEGER", + "FLOAT", "NEWLINE", "COMPOSE", "TYPEARROW", "ASSIGN", "SSTRING_LITERAL", + "DSTRING_LITERAL", "ID", "IDPART", "WS" + }; + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + public VirtDataLexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @Override + public String getGrammarFileName() { return "VirtData.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public String[] getChannelNames() { return channelNames; } + + @Override + public String[] getModeNames() { return modeNames; } + + @Override + public ATN getATN() { return _ATN; } + + public static final String _serializedATN = + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\25\u00ca\b\1\4\2"+ + "\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4"+ + "\13\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22"+ + "\t\22\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\3\2\3\2\3\3\3\3\3\4\3\4"+ + "\3\5\3\5\3\6\3\6\3\7\3\7\3\7\3\b\5\b<\n\b\3\b\3\b\3\b\3\t\5\tB\n\t\3\t"+ + "\3\t\3\t\3\t\5\tH\n\t\3\t\5\tK\n\t\3\t\3\t\3\t\3\t\5\tQ\n\t\3\t\5\tT\n"+ + "\t\3\t\3\t\3\n\5\nY\n\n\3\n\3\n\3\13\5\13^\n\13\3\13\3\13\3\13\3\13\5"+ + "\13d\n\13\3\13\5\13g\n\13\3\13\3\13\3\13\3\13\5\13m\n\13\3\13\5\13p\n"+ + "\13\3\f\3\f\3\f\7\fu\n\f\f\f\16\fx\13\f\5\fz\n\f\3\r\3\r\5\r~\n\r\3\r"+ + "\3\r\3\16\3\16\3\16\5\16\u0085\n\16\3\17\3\17\3\17\3\17\3\17\3\17\3\17"+ + "\3\17\3\20\3\20\3\20\3\21\3\21\3\22\3\22\3\22\3\22\7\22\u0098\n\22\f\22"+ + "\16\22\u009b\13\22\3\22\3\22\3\23\3\23\3\23\3\23\7\23\u00a3\n\23\f\23"+ + "\16\23\u00a6\13\23\3\23\3\23\3\24\3\24\3\24\7\24\u00ad\n\24\f\24\16\24"+ + "\u00b0\13\24\3\25\3\25\7\25\u00b4\n\25\f\25\16\25\u00b7\13\25\3\25\3\25"+ + "\7\25\u00bb\n\25\f\25\16\25\u00be\13\25\3\25\3\25\5\25\u00c2\n\25\3\26"+ + "\6\26\u00c5\n\26\r\26\16\26\u00c6\3\26\3\26\2\2\27\3\3\5\4\7\5\t\6\13"+ + "\7\r\b\17\t\21\n\23\13\25\f\27\2\31\2\33\r\35\16\37\17!\20#\21%\22\'\23"+ + ")\24+\25\3\2\20\4\2NNnn\4\2FFff\3\2\63;\3\2\62;\4\2GGgg\4\2--//\4\2\f"+ + "\f\17\17\6\2\f\f\17\17))^^\4\2))^^\6\2\f\f\17\17$$^^\4\2$$^^\4\2C\\c|"+ + "\6\2\62;C\\aac|\5\2\13\13\16\16\"\"\2\u00e2\2\3\3\2\2\2\2\5\3\2\2\2\2"+ + "\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2"+ + "\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2"+ + "\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\3"+ + "-\3\2\2\2\5/\3\2\2\2\7\61\3\2\2\2\t\63\3\2\2\2\13\65\3\2\2\2\r\67\3\2"+ + "\2\2\17;\3\2\2\2\21S\3\2\2\2\23X\3\2\2\2\25o\3\2\2\2\27y\3\2\2\2\31{\3"+ + "\2\2\2\33\u0084\3\2\2\2\35\u0086\3\2\2\2\37\u008e\3\2\2\2!\u0091\3\2\2"+ + "\2#\u0093\3\2\2\2%\u009e\3\2\2\2\'\u00a9\3\2\2\2)\u00c1\3\2\2\2+\u00c4"+ + "\3\2\2\2-.\7=\2\2.\4\3\2\2\2/\60\7*\2\2\60\6\3\2\2\2\61\62\7.\2\2\62\b"+ + "\3\2\2\2\63\64\7+\2\2\64\n\3\2\2\2\65\66\7&\2\2\66\f\3\2\2\2\678\7=\2"+ + "\289\7=\2\29\16\3\2\2\2:<\7/\2\2;:\3\2\2\2;<\3\2\2\2<=\3\2\2\2=>\5\27"+ + "\f\2>?\t\2\2\2?\20\3\2\2\2@B\7/\2\2A@\3\2\2\2AB\3\2\2\2BC\3\2\2\2CD\5"+ + "\27\f\2DE\7\60\2\2EG\5\27\f\2FH\5\31\r\2GF\3\2\2\2GH\3\2\2\2HT\3\2\2\2"+ + "IK\7/\2\2JI\3\2\2\2JK\3\2\2\2KL\3\2\2\2LM\5\27\f\2MN\5\31\r\2NT\3\2\2"+ + "\2OQ\7/\2\2PO\3\2\2\2PQ\3\2\2\2QR\3\2\2\2RT\5\27\f\2SA\3\2\2\2SJ\3\2\2"+ + "\2SP\3\2\2\2TU\3\2\2\2UV\t\3\2\2V\22\3\2\2\2WY\7/\2\2XW\3\2\2\2XY\3\2"+ + "\2\2YZ\3\2\2\2Z[\5\27\f\2[\24\3\2\2\2\\^\7/\2\2]\\\3\2\2\2]^\3\2\2\2^"+ + "_\3\2\2\2_`\5\27\f\2`a\7\60\2\2ac\5\27\f\2bd\5\31\r\2cb\3\2\2\2cd\3\2"+ + "\2\2dp\3\2\2\2eg\7/\2\2fe\3\2\2\2fg\3\2\2\2gh\3\2\2\2hi\5\27\f\2ij\5\31"+ + "\r\2jp\3\2\2\2km\7/\2\2lk\3\2\2\2lm\3\2\2\2mn\3\2\2\2np\5\27\f\2o]\3\2"+ + "\2\2of\3\2\2\2ol\3\2\2\2p\26\3\2\2\2qz\7\62\2\2rv\t\4\2\2su\t\5\2\2ts"+ + "\3\2\2\2ux\3\2\2\2vt\3\2\2\2vw\3\2\2\2wz\3\2\2\2xv\3\2\2\2yq\3\2\2\2y"+ + "r\3\2\2\2z\30\3\2\2\2{}\t\6\2\2|~\t\7\2\2}|\3\2\2\2}~\3\2\2\2~\177\3\2"+ + "\2\2\177\u0080\5\27\f\2\u0080\32\3\2\2\2\u0081\u0082\7\17\2\2\u0082\u0085"+ + "\7\f\2\2\u0083\u0085\t\b\2\2\u0084\u0081\3\2\2\2\u0084\u0083\3\2\2\2\u0085"+ + "\34\3\2\2\2\u0086\u0087\7e\2\2\u0087\u0088\7q\2\2\u0088\u0089\7o\2\2\u0089"+ + "\u008a\7r\2\2\u008a\u008b\7q\2\2\u008b\u008c\7u\2\2\u008c\u008d\7g\2\2"+ + "\u008d\36\3\2\2\2\u008e\u008f\7/\2\2\u008f\u0090\7@\2\2\u0090 \3\2\2\2"+ + "\u0091\u0092\7?\2\2\u0092\"\3\2\2\2\u0093\u0099\7)\2\2\u0094\u0098\n\t"+ + "\2\2\u0095\u0096\7^\2\2\u0096\u0098\t\n\2\2\u0097\u0094\3\2\2\2\u0097"+ + "\u0095\3\2\2\2\u0098\u009b\3\2\2\2\u0099\u0097\3\2\2\2\u0099\u009a\3\2"+ + "\2\2\u009a\u009c\3\2\2\2\u009b\u0099\3\2\2\2\u009c\u009d\7)\2\2\u009d"+ + "$\3\2\2\2\u009e\u00a4\7$\2\2\u009f\u00a3\n\13\2\2\u00a0\u00a1\7^\2\2\u00a1"+ + "\u00a3\t\f\2\2\u00a2\u009f\3\2\2\2\u00a2\u00a0\3\2\2\2\u00a3\u00a6\3\2"+ + "\2\2\u00a4\u00a2\3\2\2\2\u00a4\u00a5\3\2\2\2\u00a5\u00a7\3\2\2\2\u00a6"+ + "\u00a4\3\2\2\2\u00a7\u00a8\7$\2\2\u00a8&\3\2\2\2\u00a9\u00ae\5)\25\2\u00aa"+ + "\u00ab\7\60\2\2\u00ab\u00ad\5)\25\2\u00ac\u00aa\3\2\2\2\u00ad\u00b0\3"+ + "\2\2\2\u00ae\u00ac\3\2\2\2\u00ae\u00af\3\2\2\2\u00af(\3\2\2\2\u00b0\u00ae"+ + "\3\2\2\2\u00b1\u00b5\t\r\2\2\u00b2\u00b4\t\16\2\2\u00b3\u00b2\3\2\2\2"+ + "\u00b4\u00b7\3\2\2\2\u00b5\u00b3\3\2\2\2\u00b5\u00b6\3\2\2\2\u00b6\u00c2"+ + "\3\2\2\2\u00b7\u00b5\3\2\2\2\u00b8\u00bc\t\r\2\2\u00b9\u00bb\t\16\2\2"+ + "\u00ba\u00b9\3\2\2\2\u00bb\u00be\3\2\2\2\u00bc\u00ba\3\2\2\2\u00bc\u00bd"+ + "\3\2\2\2\u00bd\u00bf\3\2\2\2\u00be\u00bc\3\2\2\2\u00bf\u00c0\7/\2\2\u00c0"+ + "\u00c2\t\16\2\2\u00c1\u00b1\3\2\2\2\u00c1\u00b8\3\2\2\2\u00c2*\3\2\2\2"+ + "\u00c3\u00c5\t\17\2\2\u00c4\u00c3\3\2\2\2\u00c5\u00c6\3\2\2\2\u00c6\u00c4"+ + "\3\2\2\2\u00c6\u00c7\3\2\2\2\u00c7\u00c8\3\2\2\2\u00c8\u00c9\b\26\2\2"+ + "\u00c9,\3\2\2\2\34\2;AGJPSX]cflovy}\u0084\u0097\u0099\u00a2\u00a4\u00ae"+ + "\u00b5\u00bc\u00c1\u00c6\3\2\3\2"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} diff --git a/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtDataLexer.tokens b/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtDataLexer.tokens new file mode 100644 index 000000000..5dbe33081 --- /dev/null +++ b/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtDataLexer.tokens @@ -0,0 +1,28 @@ +T__0=1 +T__1=2 +T__2=3 +T__3=4 +T__4=5 +T__5=6 +LONG=7 +DOUBLE=8 +INTEGER=9 +FLOAT=10 +NEWLINE=11 +COMPOSE=12 +TYPEARROW=13 +ASSIGN=14 +SSTRING_LITERAL=15 +DSTRING_LITERAL=16 +ID=17 +IDPART=18 +WS=19 +';'=1 +'('=2 +','=3 +')'=4 +'$'=5 +';;'=6 +'compose'=12 +'->'=13 +'='=14 diff --git a/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtDataListener.java b/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtDataListener.java new file mode 100644 index 000000000..cd1415d69 --- /dev/null +++ b/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtDataListener.java @@ -0,0 +1,196 @@ +/* + * Copyright (c) 2022 nosqlbench + * + * Licensed 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. + */ + +// Generated from VirtData.g4 by ANTLR 4.7.1 +package io.nosqlbench.virtdata.lang.lang.generated; +import org.antlr.v4.runtime.tree.ParseTreeListener; + +/** + * This interface defines a complete listener for a parse tree produced by + * {@link VirtDataParser}. + */ +public interface VirtDataListener extends ParseTreeListener { + /** + * Enter a parse tree produced by {@link VirtDataParser#virtdataRecipe}. + * @param ctx the parse tree + */ + void enterVirtdataRecipe(VirtDataParser.VirtdataRecipeContext ctx); + /** + * Exit a parse tree produced by {@link VirtDataParser#virtdataRecipe}. + * @param ctx the parse tree + */ + void exitVirtdataRecipe(VirtDataParser.VirtdataRecipeContext ctx); + /** + * Enter a parse tree produced by {@link VirtDataParser#virtdataFlow}. + * @param ctx the parse tree + */ + void enterVirtdataFlow(VirtDataParser.VirtdataFlowContext ctx); + /** + * Exit a parse tree produced by {@link VirtDataParser#virtdataFlow}. + * @param ctx the parse tree + */ + void exitVirtdataFlow(VirtDataParser.VirtdataFlowContext ctx); + /** + * Enter a parse tree produced by {@link VirtDataParser#expression}. + * @param ctx the parse tree + */ + void enterExpression(VirtDataParser.ExpressionContext ctx); + /** + * Exit a parse tree produced by {@link VirtDataParser#expression}. + * @param ctx the parse tree + */ + void exitExpression(VirtDataParser.ExpressionContext ctx); + /** + * Enter a parse tree produced by {@link VirtDataParser#virtdataCall}. + * @param ctx the parse tree + */ + void enterVirtdataCall(VirtDataParser.VirtdataCallContext ctx); + /** + * Exit a parse tree produced by {@link VirtDataParser#virtdataCall}. + * @param ctx the parse tree + */ + void exitVirtdataCall(VirtDataParser.VirtdataCallContext ctx); + /** + * Enter a parse tree produced by {@link VirtDataParser#lvalue}. + * @param ctx the parse tree + */ + void enterLvalue(VirtDataParser.LvalueContext ctx); + /** + * Exit a parse tree produced by {@link VirtDataParser#lvalue}. + * @param ctx the parse tree + */ + void exitLvalue(VirtDataParser.LvalueContext ctx); + /** + * Enter a parse tree produced by {@link VirtDataParser#inputType}. + * @param ctx the parse tree + */ + void enterInputType(VirtDataParser.InputTypeContext ctx); + /** + * Exit a parse tree produced by {@link VirtDataParser#inputType}. + * @param ctx the parse tree + */ + void exitInputType(VirtDataParser.InputTypeContext ctx); + /** + * Enter a parse tree produced by {@link VirtDataParser#funcName}. + * @param ctx the parse tree + */ + void enterFuncName(VirtDataParser.FuncNameContext ctx); + /** + * Exit a parse tree produced by {@link VirtDataParser#funcName}. + * @param ctx the parse tree + */ + void exitFuncName(VirtDataParser.FuncNameContext ctx); + /** + * Enter a parse tree produced by {@link VirtDataParser#outputType}. + * @param ctx the parse tree + */ + void enterOutputType(VirtDataParser.OutputTypeContext ctx); + /** + * Exit a parse tree produced by {@link VirtDataParser#outputType}. + * @param ctx the parse tree + */ + void exitOutputType(VirtDataParser.OutputTypeContext ctx); + /** + * Enter a parse tree produced by {@link VirtDataParser#arg}. + * @param ctx the parse tree + */ + void enterArg(VirtDataParser.ArgContext ctx); + /** + * Exit a parse tree produced by {@link VirtDataParser#arg}. + * @param ctx the parse tree + */ + void exitArg(VirtDataParser.ArgContext ctx); + /** + * Enter a parse tree produced by {@link VirtDataParser#ref}. + * @param ctx the parse tree + */ + void enterRef(VirtDataParser.RefContext ctx); + /** + * Exit a parse tree produced by {@link VirtDataParser#ref}. + * @param ctx the parse tree + */ + void exitRef(VirtDataParser.RefContext ctx); + /** + * Enter a parse tree produced by {@link VirtDataParser#value}. + * @param ctx the parse tree + */ + void enterValue(VirtDataParser.ValueContext ctx); + /** + * Exit a parse tree produced by {@link VirtDataParser#value}. + * @param ctx the parse tree + */ + void exitValue(VirtDataParser.ValueContext ctx); + /** + * Enter a parse tree produced by {@link VirtDataParser#stringValue}. + * @param ctx the parse tree + */ + void enterStringValue(VirtDataParser.StringValueContext ctx); + /** + * Exit a parse tree produced by {@link VirtDataParser#stringValue}. + * @param ctx the parse tree + */ + void exitStringValue(VirtDataParser.StringValueContext ctx); + /** + * Enter a parse tree produced by {@link VirtDataParser#longValue}. + * @param ctx the parse tree + */ + void enterLongValue(VirtDataParser.LongValueContext ctx); + /** + * Exit a parse tree produced by {@link VirtDataParser#longValue}. + * @param ctx the parse tree + */ + void exitLongValue(VirtDataParser.LongValueContext ctx); + /** + * Enter a parse tree produced by {@link VirtDataParser#doubleValue}. + * @param ctx the parse tree + */ + void enterDoubleValue(VirtDataParser.DoubleValueContext ctx); + /** + * Exit a parse tree produced by {@link VirtDataParser#doubleValue}. + * @param ctx the parse tree + */ + void exitDoubleValue(VirtDataParser.DoubleValueContext ctx); + /** + * Enter a parse tree produced by {@link VirtDataParser#integerValue}. + * @param ctx the parse tree + */ + void enterIntegerValue(VirtDataParser.IntegerValueContext ctx); + /** + * Exit a parse tree produced by {@link VirtDataParser#integerValue}. + * @param ctx the parse tree + */ + void exitIntegerValue(VirtDataParser.IntegerValueContext ctx); + /** + * Enter a parse tree produced by {@link VirtDataParser#floatValue}. + * @param ctx the parse tree + */ + void enterFloatValue(VirtDataParser.FloatValueContext ctx); + /** + * Exit a parse tree produced by {@link VirtDataParser#floatValue}. + * @param ctx the parse tree + */ + void exitFloatValue(VirtDataParser.FloatValueContext ctx); + /** + * Enter a parse tree produced by {@link VirtDataParser#specend}. + * @param ctx the parse tree + */ + void enterSpecend(VirtDataParser.SpecendContext ctx); + /** + * Exit a parse tree produced by {@link VirtDataParser#specend}. + * @param ctx the parse tree + */ + void exitSpecend(VirtDataParser.SpecendContext ctx); +} diff --git a/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtDataParser.java b/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtDataParser.java new file mode 100644 index 000000000..be38f0fa4 --- /dev/null +++ b/virtdata-lang/src/main/java/io/nosqlbench/virtdata/lang/lang/generated/VirtDataParser.java @@ -0,0 +1,1114 @@ +/* + * Copyright (c) 2022 nosqlbench + * + * Licensed 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. + */ + +// Generated from VirtData.g4 by ANTLR 4.7.1 +package io.nosqlbench.virtdata.lang.lang.generated; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.tree.*; +import java.util.List; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class VirtDataParser extends Parser { + static { RuntimeMetaData.checkVersion("4.7.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, LONG=7, DOUBLE=8, INTEGER=9, + FLOAT=10, NEWLINE=11, COMPOSE=12, TYPEARROW=13, ASSIGN=14, SSTRING_LITERAL=15, + DSTRING_LITERAL=16, ID=17, IDPART=18, WS=19; + public static final int + RULE_virtdataRecipe = 0, RULE_virtdataFlow = 1, RULE_expression = 2, RULE_virtdataCall = 3, + RULE_lvalue = 4, RULE_inputType = 5, RULE_funcName = 6, RULE_outputType = 7, + RULE_arg = 8, RULE_ref = 9, RULE_value = 10, RULE_stringValue = 11, RULE_longValue = 12, + RULE_doubleValue = 13, RULE_integerValue = 14, RULE_floatValue = 15, RULE_specend = 16; + public static final String[] ruleNames = { + "virtdataRecipe", "virtdataFlow", "expression", "virtdataCall", "lvalue", + "inputType", "funcName", "outputType", "arg", "ref", "value", "stringValue", + "longValue", "doubleValue", "integerValue", "floatValue", "specend" + }; + + private static final String[] _LITERAL_NAMES = { + null, "';'", "'('", "','", "')'", "'$'", "';;'", null, null, null, null, + null, "'compose'", "'->'", "'='" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, null, null, null, null, null, null, "LONG", "DOUBLE", "INTEGER", + "FLOAT", "NEWLINE", "COMPOSE", "TYPEARROW", "ASSIGN", "SSTRING_LITERAL", + "DSTRING_LITERAL", "ID", "IDPART", "WS" + }; + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + @Override + public String getGrammarFileName() { return "VirtData.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public ATN getATN() { return _ATN; } + + public VirtDataParser(TokenStream input) { + super(input); + _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + public static class VirtdataRecipeContext extends ParserRuleContext { + public List virtdataFlow() { + return getRuleContexts(VirtdataFlowContext.class); + } + public VirtdataFlowContext virtdataFlow(int i) { + return getRuleContext(VirtdataFlowContext.class,i); + } + public TerminalNode EOF() { return getToken(VirtDataParser.EOF, 0); } + public List specend() { + return getRuleContexts(SpecendContext.class); + } + public SpecendContext specend(int i) { + return getRuleContext(SpecendContext.class,i); + } + public VirtdataRecipeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_virtdataRecipe; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).enterVirtdataRecipe(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).exitVirtdataRecipe(this); + } + } + + public final VirtdataRecipeContext virtdataRecipe() throws RecognitionException { + VirtdataRecipeContext _localctx = new VirtdataRecipeContext(_ctx, getState()); + enterRule(_localctx, 0, RULE_virtdataRecipe); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(34); + virtdataFlow(); + setState(41); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__5 || _la==NEWLINE) { + { + { + setState(35); + specend(); + setState(37); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMPOSE || _la==ID) { + { + setState(36); + virtdataFlow(); + } + } + + } + } + setState(43); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(44); + match(EOF); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class VirtdataFlowContext extends ParserRuleContext { + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode COMPOSE() { return getToken(VirtDataParser.COMPOSE, 0); } + public VirtdataFlowContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_virtdataFlow; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).enterVirtdataFlow(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).exitVirtdataFlow(this); + } + } + + public final VirtdataFlowContext virtdataFlow() throws RecognitionException { + VirtdataFlowContext _localctx = new VirtdataFlowContext(_ctx, getState()); + enterRule(_localctx, 2, RULE_virtdataFlow); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(47); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMPOSE) { + { + setState(46); + match(COMPOSE); + } + } + + setState(49); + expression(); + setState(56); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__0) { + { + { + setState(50); + match(T__0); + setState(52); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ID) { + { + setState(51); + expression(); + } + } + + } + } + setState(58); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ExpressionContext extends ParserRuleContext { + public VirtdataCallContext virtdataCall() { + return getRuleContext(VirtdataCallContext.class,0); + } + public LvalueContext lvalue() { + return getRuleContext(LvalueContext.class,0); + } + public TerminalNode ASSIGN() { return getToken(VirtDataParser.ASSIGN, 0); } + public ExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).enterExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).exitExpression(this); + } + } + + public final ExpressionContext expression() throws RecognitionException { + ExpressionContext _localctx = new ExpressionContext(_ctx, getState()); + enterRule(_localctx, 4, RULE_expression); + try { + enterOuterAlt(_localctx, 1); + { + setState(62); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,5,_ctx) ) { + case 1: + { + setState(59); + lvalue(); + setState(60); + match(ASSIGN); + } + break; + } + setState(64); + virtdataCall(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class VirtdataCallContext extends ParserRuleContext { + public FuncNameContext funcName() { + return getRuleContext(FuncNameContext.class,0); + } + public InputTypeContext inputType() { + return getRuleContext(InputTypeContext.class,0); + } + public List TYPEARROW() { return getTokens(VirtDataParser.TYPEARROW); } + public TerminalNode TYPEARROW(int i) { + return getToken(VirtDataParser.TYPEARROW, i); + } + public OutputTypeContext outputType() { + return getRuleContext(OutputTypeContext.class,0); + } + public List arg() { + return getRuleContexts(ArgContext.class); + } + public ArgContext arg(int i) { + return getRuleContext(ArgContext.class,i); + } + public VirtdataCallContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_virtdataCall; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).enterVirtdataCall(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).exitVirtdataCall(this); + } + } + + public final VirtdataCallContext virtdataCall() throws RecognitionException { + VirtdataCallContext _localctx = new VirtdataCallContext(_ctx, getState()); + enterRule(_localctx, 6, RULE_virtdataCall); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(69); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) { + case 1: + { + setState(66); + inputType(); + setState(67); + match(TYPEARROW); + } + break; + } + { + setState(71); + funcName(); + setState(72); + match(T__1); + setState(81); + _errHandler.sync(this); + _la = _input.LA(1); + if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__4) | (1L << LONG) | (1L << DOUBLE) | (1L << INTEGER) | (1L << FLOAT) | (1L << SSTRING_LITERAL) | (1L << DSTRING_LITERAL) | (1L << ID))) != 0)) { + { + setState(73); + arg(); + setState(78); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==T__2) { + { + { + setState(74); + match(T__2); + setState(75); + arg(); + } + } + setState(80); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + + setState(83); + match(T__3); + } + setState(87); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TYPEARROW) { + { + setState(85); + match(TYPEARROW); + setState(86); + outputType(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LvalueContext extends ParserRuleContext { + public TerminalNode ID() { return getToken(VirtDataParser.ID, 0); } + public LvalueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_lvalue; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).enterLvalue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).exitLvalue(this); + } + } + + public final LvalueContext lvalue() throws RecognitionException { + LvalueContext _localctx = new LvalueContext(_ctx, getState()); + enterRule(_localctx, 8, RULE_lvalue); + try { + enterOuterAlt(_localctx, 1); + { + setState(89); + match(ID); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class InputTypeContext extends ParserRuleContext { + public TerminalNode ID() { return getToken(VirtDataParser.ID, 0); } + public InputTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_inputType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).enterInputType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).exitInputType(this); + } + } + + public final InputTypeContext inputType() throws RecognitionException { + InputTypeContext _localctx = new InputTypeContext(_ctx, getState()); + enterRule(_localctx, 10, RULE_inputType); + try { + enterOuterAlt(_localctx, 1); + { + setState(91); + match(ID); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class FuncNameContext extends ParserRuleContext { + public TerminalNode ID() { return getToken(VirtDataParser.ID, 0); } + public FuncNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_funcName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).enterFuncName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).exitFuncName(this); + } + } + + public final FuncNameContext funcName() throws RecognitionException { + FuncNameContext _localctx = new FuncNameContext(_ctx, getState()); + enterRule(_localctx, 12, RULE_funcName); + try { + enterOuterAlt(_localctx, 1); + { + setState(93); + match(ID); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class OutputTypeContext extends ParserRuleContext { + public TerminalNode ID() { return getToken(VirtDataParser.ID, 0); } + public OutputTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_outputType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).enterOutputType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).exitOutputType(this); + } + } + + public final OutputTypeContext outputType() throws RecognitionException { + OutputTypeContext _localctx = new OutputTypeContext(_ctx, getState()); + enterRule(_localctx, 14, RULE_outputType); + try { + enterOuterAlt(_localctx, 1); + { + setState(95); + match(ID); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ArgContext extends ParserRuleContext { + public ValueContext value() { + return getRuleContext(ValueContext.class,0); + } + public VirtdataCallContext virtdataCall() { + return getRuleContext(VirtdataCallContext.class,0); + } + public RefContext ref() { + return getRuleContext(RefContext.class,0); + } + public ArgContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arg; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).enterArg(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).exitArg(this); + } + } + + public final ArgContext arg() throws RecognitionException { + ArgContext _localctx = new ArgContext(_ctx, getState()); + enterRule(_localctx, 16, RULE_arg); + try { + enterOuterAlt(_localctx, 1); + { + setState(100); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LONG: + case DOUBLE: + case INTEGER: + case FLOAT: + case SSTRING_LITERAL: + case DSTRING_LITERAL: + { + setState(97); + value(); + } + break; + case ID: + { + setState(98); + virtdataCall(); + } + break; + case T__4: + { + setState(99); + ref(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class RefContext extends ParserRuleContext { + public TerminalNode ID() { return getToken(VirtDataParser.ID, 0); } + public RefContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_ref; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).enterRef(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).exitRef(this); + } + } + + public final RefContext ref() throws RecognitionException { + RefContext _localctx = new RefContext(_ctx, getState()); + enterRule(_localctx, 18, RULE_ref); + try { + enterOuterAlt(_localctx, 1); + { + { + setState(102); + match(T__4); + setState(103); + match(ID); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class ValueContext extends ParserRuleContext { + public FloatValueContext floatValue() { + return getRuleContext(FloatValueContext.class,0); + } + public DoubleValueContext doubleValue() { + return getRuleContext(DoubleValueContext.class,0); + } + public IntegerValueContext integerValue() { + return getRuleContext(IntegerValueContext.class,0); + } + public LongValueContext longValue() { + return getRuleContext(LongValueContext.class,0); + } + public StringValueContext stringValue() { + return getRuleContext(StringValueContext.class,0); + } + public ValueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_value; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).enterValue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).exitValue(this); + } + } + + public final ValueContext value() throws RecognitionException { + ValueContext _localctx = new ValueContext(_ctx, getState()); + enterRule(_localctx, 20, RULE_value); + try { + enterOuterAlt(_localctx, 1); + { + setState(110); + _errHandler.sync(this); + switch (_input.LA(1)) { + case FLOAT: + { + setState(105); + floatValue(); + } + break; + case DOUBLE: + { + setState(106); + doubleValue(); + } + break; + case INTEGER: + { + setState(107); + integerValue(); + } + break; + case LONG: + { + setState(108); + longValue(); + } + break; + case SSTRING_LITERAL: + case DSTRING_LITERAL: + { + setState(109); + stringValue(); + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class StringValueContext extends ParserRuleContext { + public TerminalNode SSTRING_LITERAL() { return getToken(VirtDataParser.SSTRING_LITERAL, 0); } + public TerminalNode DSTRING_LITERAL() { return getToken(VirtDataParser.DSTRING_LITERAL, 0); } + public StringValueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_stringValue; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).enterStringValue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).exitStringValue(this); + } + } + + public final StringValueContext stringValue() throws RecognitionException { + StringValueContext _localctx = new StringValueContext(_ctx, getState()); + enterRule(_localctx, 22, RULE_stringValue); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(112); + _la = _input.LA(1); + if ( !(_la==SSTRING_LITERAL || _la==DSTRING_LITERAL) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LongValueContext extends ParserRuleContext { + public TerminalNode LONG() { return getToken(VirtDataParser.LONG, 0); } + public LongValueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_longValue; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).enterLongValue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).exitLongValue(this); + } + } + + public final LongValueContext longValue() throws RecognitionException { + LongValueContext _localctx = new LongValueContext(_ctx, getState()); + enterRule(_localctx, 24, RULE_longValue); + try { + enterOuterAlt(_localctx, 1); + { + setState(114); + match(LONG); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class DoubleValueContext extends ParserRuleContext { + public TerminalNode DOUBLE() { return getToken(VirtDataParser.DOUBLE, 0); } + public DoubleValueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_doubleValue; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).enterDoubleValue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).exitDoubleValue(this); + } + } + + public final DoubleValueContext doubleValue() throws RecognitionException { + DoubleValueContext _localctx = new DoubleValueContext(_ctx, getState()); + enterRule(_localctx, 26, RULE_doubleValue); + try { + enterOuterAlt(_localctx, 1); + { + setState(116); + match(DOUBLE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class IntegerValueContext extends ParserRuleContext { + public TerminalNode INTEGER() { return getToken(VirtDataParser.INTEGER, 0); } + public IntegerValueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_integerValue; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).enterIntegerValue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).exitIntegerValue(this); + } + } + + public final IntegerValueContext integerValue() throws RecognitionException { + IntegerValueContext _localctx = new IntegerValueContext(_ctx, getState()); + enterRule(_localctx, 28, RULE_integerValue); + try { + enterOuterAlt(_localctx, 1); + { + setState(118); + match(INTEGER); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class FloatValueContext extends ParserRuleContext { + public TerminalNode FLOAT() { return getToken(VirtDataParser.FLOAT, 0); } + public FloatValueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_floatValue; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).enterFloatValue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).exitFloatValue(this); + } + } + + public final FloatValueContext floatValue() throws RecognitionException { + FloatValueContext _localctx = new FloatValueContext(_ctx, getState()); + enterRule(_localctx, 30, RULE_floatValue); + try { + enterOuterAlt(_localctx, 1); + { + setState(120); + match(FLOAT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class SpecendContext extends ParserRuleContext { + public List NEWLINE() { return getTokens(VirtDataParser.NEWLINE); } + public TerminalNode NEWLINE(int i) { + return getToken(VirtDataParser.NEWLINE, i); + } + public SpecendContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_specend; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).enterSpecend(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof VirtDataListener ) ((VirtDataListener)listener).exitSpecend(this); + } + } + + public final SpecendContext specend() throws RecognitionException { + SpecendContext _localctx = new SpecendContext(_ctx, getState()); + enterRule(_localctx, 32, RULE_specend); + try { + int _alt; + setState(134); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,14,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + { + setState(122); + match(T__5); + setState(124); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(123); + match(NEWLINE); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(126); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,12,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + } + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(128); + match(T__5); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(130); + _errHandler.sync(this); + _alt = 1; + do { + switch (_alt) { + case 1: + { + { + setState(129); + match(NEWLINE); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(132); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,13,_ctx); + } while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static final String _serializedATN = + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\25\u008b\4\2\t\2"+ + "\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+ + "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ + "\3\2\3\2\3\2\5\2(\n\2\7\2*\n\2\f\2\16\2-\13\2\3\2\3\2\3\3\5\3\62\n\3\3"+ + "\3\3\3\3\3\5\3\67\n\3\7\39\n\3\f\3\16\3<\13\3\3\4\3\4\3\4\5\4A\n\4\3\4"+ + "\3\4\3\5\3\5\3\5\5\5H\n\5\3\5\3\5\3\5\3\5\3\5\7\5O\n\5\f\5\16\5R\13\5"+ + "\5\5T\n\5\3\5\3\5\3\5\3\5\5\5Z\n\5\3\6\3\6\3\7\3\7\3\b\3\b\3\t\3\t\3\n"+ + "\3\n\3\n\5\ng\n\n\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\5\fq\n\f\3\r\3\r"+ + "\3\16\3\16\3\17\3\17\3\20\3\20\3\21\3\21\3\22\3\22\6\22\177\n\22\r\22"+ + "\16\22\u0080\3\22\3\22\6\22\u0085\n\22\r\22\16\22\u0086\5\22\u0089\n\22"+ + "\3\22\2\2\23\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"\2\3\3\2\21\22\2"+ + "\u008d\2$\3\2\2\2\4\61\3\2\2\2\6@\3\2\2\2\bG\3\2\2\2\n[\3\2\2\2\f]\3\2"+ + "\2\2\16_\3\2\2\2\20a\3\2\2\2\22f\3\2\2\2\24h\3\2\2\2\26p\3\2\2\2\30r\3"+ + "\2\2\2\32t\3\2\2\2\34v\3\2\2\2\36x\3\2\2\2 z\3\2\2\2\"\u0088\3\2\2\2$"+ + "+\5\4\3\2%\'\5\"\22\2&(\5\4\3\2\'&\3\2\2\2\'(\3\2\2\2(*\3\2\2\2)%\3\2"+ + "\2\2*-\3\2\2\2+)\3\2\2\2+,\3\2\2\2,.\3\2\2\2-+\3\2\2\2./\7\2\2\3/\3\3"+ + "\2\2\2\60\62\7\16\2\2\61\60\3\2\2\2\61\62\3\2\2\2\62\63\3\2\2\2\63:\5"+ + "\6\4\2\64\66\7\3\2\2\65\67\5\6\4\2\66\65\3\2\2\2\66\67\3\2\2\2\679\3\2"+ + "\2\28\64\3\2\2\29<\3\2\2\2:8\3\2\2\2:;\3\2\2\2;\5\3\2\2\2<:\3\2\2\2=>"+ + "\5\n\6\2>?\7\20\2\2?A\3\2\2\2@=\3\2\2\2@A\3\2\2\2AB\3\2\2\2BC\5\b\5\2"+ + "C\7\3\2\2\2DE\5\f\7\2EF\7\17\2\2FH\3\2\2\2GD\3\2\2\2GH\3\2\2\2HI\3\2\2"+ + "\2IJ\5\16\b\2JS\7\4\2\2KP\5\22\n\2LM\7\5\2\2MO\5\22\n\2NL\3\2\2\2OR\3"+ + "\2\2\2PN\3\2\2\2PQ\3\2\2\2QT\3\2\2\2RP\3\2\2\2SK\3\2\2\2ST\3\2\2\2TU\3"+ + "\2\2\2UV\7\6\2\2VY\3\2\2\2WX\7\17\2\2XZ\5\20\t\2YW\3\2\2\2YZ\3\2\2\2Z"+ + "\t\3\2\2\2[\\\7\23\2\2\\\13\3\2\2\2]^\7\23\2\2^\r\3\2\2\2_`\7\23\2\2`"+ + "\17\3\2\2\2ab\7\23\2\2b\21\3\2\2\2cg\5\26\f\2dg\5\b\5\2eg\5\24\13\2fc"+ + "\3\2\2\2fd\3\2\2\2fe\3\2\2\2g\23\3\2\2\2hi\7\7\2\2ij\7\23\2\2j\25\3\2"+ + "\2\2kq\5 \21\2lq\5\34\17\2mq\5\36\20\2nq\5\32\16\2oq\5\30\r\2pk\3\2\2"+ + "\2pl\3\2\2\2pm\3\2\2\2pn\3\2\2\2po\3\2\2\2q\27\3\2\2\2rs\t\2\2\2s\31\3"+ + "\2\2\2tu\7\t\2\2u\33\3\2\2\2vw\7\n\2\2w\35\3\2\2\2xy\7\13\2\2y\37\3\2"+ + "\2\2z{\7\f\2\2{!\3\2\2\2|~\7\b\2\2}\177\7\r\2\2~}\3\2\2\2\177\u0080\3"+ + "\2\2\2\u0080~\3\2\2\2\u0080\u0081\3\2\2\2\u0081\u0089\3\2\2\2\u0082\u0089"+ + "\7\b\2\2\u0083\u0085\7\r\2\2\u0084\u0083\3\2\2\2\u0085\u0086\3\2\2\2\u0086"+ + "\u0084\3\2\2\2\u0086\u0087\3\2\2\2\u0087\u0089\3\2\2\2\u0088|\3\2\2\2"+ + "\u0088\u0082\3\2\2\2\u0088\u0084\3\2\2\2\u0089#\3\2\2\2\21\'+\61\66:@"+ + "GPSYfp\u0080\u0086\u0088"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +}