diff --git a/tools/tck-api/pom.xml b/tools/tck-api/pom.xml index 3bcb50ad88..73f53c1a7e 100644 --- a/tools/tck-api/pom.xml +++ b/tools/tck-api/pom.xml @@ -66,6 +66,27 @@ + + org.antlr + antlr4-maven-plugin + 4.7 + + + + antlr4 + + + + + ${basedir}/src/main/resources/ + ${basedir}/src/main/java/org/opencypher/tools/tck/parsing/generated + true + + -package + org.opencypher.tools.tck.parsing.generated + + + diff --git a/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResults.tokens b/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResults.tokens index 9ee8cf620f..ccb4e7a973 100644 --- a/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResults.tokens +++ b/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResults.tokens @@ -14,20 +14,21 @@ T__12=13 T__13=14 T__14=15 T__15=16 -INTEGER_LITERAL=17 -DECIMAL_LITERAL=18 -DIGIT=19 -NONZERODIGIT=20 -INFINITY=21 -FLOAT_LITERAL=22 -FLOAT_REPR=23 -EXPONENTPART=24 -SYMBOLIC_NAME=25 -WS=26 -IDENTIFIER=27 -STRING_LITERAL=28 -STRING_BODY=29 -ESCAPED_APOSTROPHE=30 +T__16=17 +INTEGER_LITERAL=18 +DECIMAL_LITERAL=19 +DIGIT=20 +NONZERODIGIT=21 +INFINITY=22 +FLOAT_LITERAL=23 +FLOAT_REPR=24 +EXPONENTPART=25 +SYMBOLIC_NAME=26 +WS=27 +IDENTIFIER=28 +STRING_LITERAL=29 +STRING_BODY=30 +ESCAPED_APOSTROPHE=31 '('=1 ')'=2 '['=3 @@ -43,6 +44,7 @@ ESCAPED_APOSTROPHE=30 ', '=13 '{'=14 '}'=15 -':'=16 -' '=26 -'\\\''=30 +'`'=16 +':'=17 +' '=27 +'\\\''=31 diff --git a/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsBaseListener.java b/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsBaseListener.java index e40ddfdc56..c647a8a647 100644 --- a/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsBaseListener.java +++ b/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsBaseListener.java @@ -25,7 +25,8 @@ * described as "implementation extensions to Cypher" or as "proposed changes to * Cypher that are not yet approved by the openCypher community". */ -package org.opencypher.tools.tck.parsing.generated;// Generated from /Users/stutz/Documents/GitHub/openCypher/tools/tck/src/main/resources/FeatureResults.g4 by ANTLR 4.7 +// Generated from FeatureResults.g4 by ANTLR 4.7 +package org.opencypher.tools.tck.parsing.generated; import org.antlr.v4.runtime.ParserRuleContext; import org.antlr.v4.runtime.tree.ErrorNode; @@ -398,4 +399,4 @@ public class FeatureResultsBaseListener implements FeatureResultsListener { *

The default implementation does nothing.

*/ @Override public void visitErrorNode(ErrorNode node) { } -} +} \ No newline at end of file diff --git a/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsBaseVisitor.java b/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsBaseVisitor.java index 02bae9dc7a..1ccdc71ede 100644 --- a/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsBaseVisitor.java +++ b/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsBaseVisitor.java @@ -25,7 +25,8 @@ * described as "implementation extensions to Cypher" or as "proposed changes to * Cypher that are not yet approved by the openCypher community". */ -package org.opencypher.tools.tck.parsing.generated;// Generated from /Users/stutz/Documents/GitHub/openCypher/tools/tck/src/main/resources/FeatureResults.g4 by ANTLR 4.7 +// Generated from FeatureResults.g4 by ANTLR 4.7 +package org.opencypher.tools.tck.parsing.generated; import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor; /** @@ -233,4 +234,4 @@ public class FeatureResultsBaseVisitor extends AbstractParseTreeVisitor im * {@link #visitChildren} on {@code ctx}.

*/ @Override public T visitString(FeatureResultsParser.StringContext ctx) { return visitChildren(ctx); } -} +} \ No newline at end of file diff --git a/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsLexer.java b/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsLexer.java index a8488abb09..e6aae4096b 100644 --- a/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsLexer.java +++ b/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsLexer.java @@ -25,7 +25,8 @@ * described as "implementation extensions to Cypher" or as "proposed changes to * Cypher that are not yet approved by the openCypher community". */ -package org.opencypher.tools.tck.parsing.generated;// Generated from /Users/stutz/Documents/GitHub/openCypher/tools/tck/src/main/resources/FeatureResults.g4 by ANTLR 4.7 +// Generated from FeatureResults.g4 by ANTLR 4.7 +package org.opencypher.tools.tck.parsing.generated; import org.antlr.v4.runtime.Lexer; import org.antlr.v4.runtime.CharStream; import org.antlr.v4.runtime.Token; @@ -43,11 +44,11 @@ public class FeatureResultsLexer extends Lexer { 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, T__6=7, T__7=8, T__8=9, - T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, INTEGER_LITERAL=17, - DECIMAL_LITERAL=18, DIGIT=19, NONZERODIGIT=20, INFINITY=21, FLOAT_LITERAL=22, - FLOAT_REPR=23, EXPONENTPART=24, SYMBOLIC_NAME=25, WS=26, IDENTIFIER=27, - STRING_LITERAL=28, STRING_BODY=29, ESCAPED_APOSTROPHE=30; + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, + T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17, + INTEGER_LITERAL=18, DECIMAL_LITERAL=19, DIGIT=20, NONZERODIGIT=21, INFINITY=22, + FLOAT_LITERAL=23, FLOAT_REPR=24, EXPONENTPART=25, SYMBOLIC_NAME=26, WS=27, + IDENTIFIER=28, STRING_LITERAL=29, STRING_BODY=30, ESCAPED_APOSTROPHE=31; public static String[] channelNames = { "DEFAULT_TOKEN_CHANNEL", "HIDDEN" }; @@ -57,23 +58,24 @@ public class FeatureResultsLexer extends Lexer { }; public static final String[] ruleNames = { - "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", - "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "INTEGER_LITERAL", - "DECIMAL_LITERAL", "DIGIT", "NONZERODIGIT", "INFINITY", "FLOAT_LITERAL", - "FLOAT_REPR", "EXPONENTPART", "SYMBOLIC_NAME", "WS", "IDENTIFIER", "STRING_LITERAL", - "STRING_BODY", "ESCAPED_APOSTROPHE" + "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8", + "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16", + "INTEGER_LITERAL", "DECIMAL_LITERAL", "DIGIT", "NONZERODIGIT", "INFINITY", + "FLOAT_LITERAL", "FLOAT_REPR", "EXPONENTPART", "SYMBOLIC_NAME", "WS", + "IDENTIFIER", "STRING_LITERAL", "STRING_BODY", "ESCAPED_APOSTROPHE" }; private static final String[] _LITERAL_NAMES = { - null, "'('", "')'", "'['", "']'", "'<'", "'>'", "'-'", "'->'", "'<-'", - "'true'", "'false'", "'null'", "', '", "'{'", "'}'", "':'", null, null, - null, null, null, null, null, null, null, "' '", null, null, null, "'\\''" + null, "'('", "')'", "'['", "']'", "'<'", "'>'", "'-'", "'->'", "'<-'", + "'true'", "'false'", "'null'", "', '", "'{'", "'}'", "'`'", "':'", null, + null, null, null, null, null, null, null, null, "' '", null, null, null, + "'\\''" }; private static final String[] _SYMBOLIC_NAMES = { - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, "INTEGER_LITERAL", "DECIMAL_LITERAL", "DIGIT", - "NONZERODIGIT", "INFINITY", "FLOAT_LITERAL", "FLOAT_REPR", "EXPONENTPART", - "SYMBOLIC_NAME", "WS", "IDENTIFIER", "STRING_LITERAL", "STRING_BODY", + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, "INTEGER_LITERAL", "DECIMAL_LITERAL", + "DIGIT", "NONZERODIGIT", "INFINITY", "FLOAT_LITERAL", "FLOAT_REPR", "EXPONENTPART", + "SYMBOLIC_NAME", "WS", "IDENTIFIER", "STRING_LITERAL", "STRING_BODY", "ESCAPED_APOSTROPHE" }; public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); @@ -134,77 +136,78 @@ public FeatureResultsLexer(CharStream input) { public ATN getATN() { return _ATN; } public static final String _serializedATN = - "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2 \u00d3\b\1\4\2\t"+ + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2!\u00d7\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\4\27\t\27\4\30\t\30\4\31\t\31"+ - "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\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\b\3\b\3\t\3\t\3\t\3\n\3\n\3\n"+ - "\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f\3\r\3\r\3\r\3\r\3\r"+ - "\3\16\3\16\3\16\3\17\3\17\3\20\3\20\3\21\3\21\3\22\5\22n\n\22\3\22\3\22"+ - "\3\23\3\23\3\23\7\23u\n\23\f\23\16\23x\13\23\5\23z\n\23\3\24\3\24\5\24"+ - "~\n\24\3\25\3\25\3\26\5\26\u0083\n\26\3\26\3\26\3\26\3\26\3\27\5\27\u008a"+ - "\n\27\3\27\3\27\3\30\6\30\u008f\n\30\r\30\16\30\u0090\3\30\3\30\6\30\u0095"+ - "\n\30\r\30\16\30\u0096\3\30\5\30\u009a\n\30\3\30\3\30\6\30\u009e\n\30"+ - "\r\30\16\30\u009f\3\30\5\30\u00a3\n\30\3\30\3\30\3\30\3\30\6\30\u00a9"+ - "\n\30\r\30\16\30\u00aa\3\30\5\30\u00ae\n\30\5\30\u00b0\n\30\3\31\3\31"+ - "\5\31\u00b4\n\31\3\31\6\31\u00b7\n\31\r\31\16\31\u00b8\3\32\3\32\3\33"+ - "\3\33\3\34\6\34\u00c0\n\34\r\34\16\34\u00c1\3\35\3\35\7\35\u00c6\n\35"+ - "\f\35\16\35\u00c9\13\35\3\35\3\35\3\36\3\36\5\36\u00cf\n\36\3\37\3\37"+ - "\3\37\2\2 \3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33"+ - "\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65\34\67"+ - "\359\36;\37= \3\2\7\3\2\63;\4\2GGgg\4\2--//\7\2&&\62;C\\aac|\4\2\2(*\u0201"+ - "\2\u00e7\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\27"+ - "\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!\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"+ - "\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2"+ - "\2\2\2;\3\2\2\2\2=\3\2\2\2\3?\3\2\2\2\5A\3\2\2\2\7C\3\2\2\2\tE\3\2\2\2"+ - "\13G\3\2\2\2\rI\3\2\2\2\17K\3\2\2\2\21M\3\2\2\2\23P\3\2\2\2\25S\3\2\2"+ - "\2\27X\3\2\2\2\31^\3\2\2\2\33c\3\2\2\2\35f\3\2\2\2\37h\3\2\2\2!j\3\2\2"+ - "\2#m\3\2\2\2%y\3\2\2\2\'}\3\2\2\2)\177\3\2\2\2+\u0082\3\2\2\2-\u0089\3"+ - "\2\2\2/\u00af\3\2\2\2\61\u00b1\3\2\2\2\63\u00ba\3\2\2\2\65\u00bc\3\2\2"+ - "\2\67\u00bf\3\2\2\29\u00c3\3\2\2\2;\u00ce\3\2\2\2=\u00d0\3\2\2\2?@\7*"+ - "\2\2@\4\3\2\2\2AB\7+\2\2B\6\3\2\2\2CD\7]\2\2D\b\3\2\2\2EF\7_\2\2F\n\3"+ - "\2\2\2GH\7>\2\2H\f\3\2\2\2IJ\7@\2\2J\16\3\2\2\2KL\7/\2\2L\20\3\2\2\2M"+ - "N\7/\2\2NO\7@\2\2O\22\3\2\2\2PQ\7>\2\2QR\7/\2\2R\24\3\2\2\2ST\7v\2\2T"+ - "U\7t\2\2UV\7w\2\2VW\7g\2\2W\26\3\2\2\2XY\7h\2\2YZ\7c\2\2Z[\7n\2\2[\\\7"+ - "u\2\2\\]\7g\2\2]\30\3\2\2\2^_\7p\2\2_`\7w\2\2`a\7n\2\2ab\7n\2\2b\32\3"+ - "\2\2\2cd\7.\2\2de\7\"\2\2e\34\3\2\2\2fg\7}\2\2g\36\3\2\2\2hi\7\177\2\2"+ - "i \3\2\2\2jk\7<\2\2k\"\3\2\2\2ln\7/\2\2ml\3\2\2\2mn\3\2\2\2no\3\2\2\2"+ - "op\5%\23\2p$\3\2\2\2qz\7\62\2\2rv\5)\25\2su\5\'\24\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\2yr\3\2\2\2z&\3\2\2"+ - "\2{~\7\62\2\2|~\5)\25\2}{\3\2\2\2}|\3\2\2\2~(\3\2\2\2\177\u0080\t\2\2"+ - "\2\u0080*\3\2\2\2\u0081\u0083\7/\2\2\u0082\u0081\3\2\2\2\u0082\u0083\3"+ - "\2\2\2\u0083\u0084\3\2\2\2\u0084\u0085\7K\2\2\u0085\u0086\7p\2\2\u0086"+ - "\u0087\7h\2\2\u0087,\3\2\2\2\u0088\u008a\7/\2\2\u0089\u0088\3\2\2\2\u0089"+ - "\u008a\3\2\2\2\u008a\u008b\3\2\2\2\u008b\u008c\5/\30\2\u008c.\3\2\2\2"+ - "\u008d\u008f\5\'\24\2\u008e\u008d\3\2\2\2\u008f\u0090\3\2\2\2\u0090\u008e"+ - "\3\2\2\2\u0090\u0091\3\2\2\2\u0091\u0092\3\2\2\2\u0092\u0094\7\60\2\2"+ - "\u0093\u0095\5\'\24\2\u0094\u0093\3\2\2\2\u0095\u0096\3\2\2\2\u0096\u0094"+ - "\3\2\2\2\u0096\u0097\3\2\2\2\u0097\u0099\3\2\2\2\u0098\u009a\5\61\31\2"+ - "\u0099\u0098\3\2\2\2\u0099\u009a\3\2\2\2\u009a\u00b0\3\2\2\2\u009b\u009d"+ - "\7\60\2\2\u009c\u009e\5\'\24\2\u009d\u009c\3\2\2\2\u009e\u009f\3\2\2\2"+ - "\u009f\u009d\3\2\2\2\u009f\u00a0\3\2\2\2\u00a0\u00a2\3\2\2\2\u00a1\u00a3"+ - "\5\61\31\2\u00a2\u00a1\3\2\2\2\u00a2\u00a3\3\2\2\2\u00a3\u00b0\3\2\2\2"+ - "\u00a4\u00a5\5\'\24\2\u00a5\u00a6\5\61\31\2\u00a6\u00b0\3\2\2\2\u00a7"+ - "\u00a9\5\'\24\2\u00a8\u00a7\3\2\2\2\u00a9\u00aa\3\2\2\2\u00aa\u00a8\3"+ - "\2\2\2\u00aa\u00ab\3\2\2\2\u00ab\u00ad\3\2\2\2\u00ac\u00ae\5\61\31\2\u00ad"+ - "\u00ac\3\2\2\2\u00ad\u00ae\3\2\2\2\u00ae\u00b0\3\2\2\2\u00af\u008e\3\2"+ - "\2\2\u00af\u009b\3\2\2\2\u00af\u00a4\3\2\2\2\u00af\u00a8\3\2\2\2\u00b0"+ - "\60\3\2\2\2\u00b1\u00b3\t\3\2\2\u00b2\u00b4\t\4\2\2\u00b3\u00b2\3\2\2"+ - "\2\u00b3\u00b4\3\2\2\2\u00b4\u00b6\3\2\2\2\u00b5\u00b7\5\'\24\2\u00b6"+ - "\u00b5\3\2\2\2\u00b7\u00b8\3\2\2\2\u00b8\u00b6\3\2\2\2\u00b8\u00b9\3\2"+ - "\2\2\u00b9\62\3\2\2\2\u00ba\u00bb\5\67\34\2\u00bb\64\3\2\2\2\u00bc\u00bd"+ - "\7\"\2\2\u00bd\66\3\2\2\2\u00be\u00c0\t\5\2\2\u00bf\u00be\3\2\2\2\u00c0"+ - "\u00c1\3\2\2\2\u00c1\u00bf\3\2\2\2\u00c1\u00c2\3\2\2\2\u00c28\3\2\2\2"+ - "\u00c3\u00c7\7)\2\2\u00c4\u00c6\5;\36\2\u00c5\u00c4\3\2\2\2\u00c6\u00c9"+ - "\3\2\2\2\u00c7\u00c5\3\2\2\2\u00c7\u00c8\3\2\2\2\u00c8\u00ca\3\2\2\2\u00c9"+ - "\u00c7\3\2\2\2\u00ca\u00cb\7)\2\2\u00cb:\3\2\2\2\u00cc\u00cf\t\6\2\2\u00cd"+ - "\u00cf\5=\37\2\u00ce\u00cc\3\2\2\2\u00ce\u00cd\3\2\2\2\u00cf<\3\2\2\2"+ - "\u00d0\u00d1\7^\2\2\u00d1\u00d2\7)\2\2\u00d2>\3\2\2\2\26\2mvy}\u0082\u0089"+ - "\u0090\u0096\u0099\u009f\u00a2\u00aa\u00ad\u00af\u00b3\u00b8\u00c1\u00c7"+ - "\u00ce\2"; + "\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \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\b\3\b\3\t\3\t\3\t\3\n\3"+ + "\n\3\n\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f\3\r\3\r\3\r\3"+ + "\r\3\r\3\16\3\16\3\16\3\17\3\17\3\20\3\20\3\21\3\21\3\22\3\22\3\23\5\23"+ + "r\n\23\3\23\3\23\3\24\3\24\3\24\7\24y\n\24\f\24\16\24|\13\24\5\24~\n\24"+ + "\3\25\3\25\5\25\u0082\n\25\3\26\3\26\3\27\5\27\u0087\n\27\3\27\3\27\3"+ + "\27\3\27\3\30\5\30\u008e\n\30\3\30\3\30\3\31\6\31\u0093\n\31\r\31\16\31"+ + "\u0094\3\31\3\31\6\31\u0099\n\31\r\31\16\31\u009a\3\31\5\31\u009e\n\31"+ + "\3\31\3\31\6\31\u00a2\n\31\r\31\16\31\u00a3\3\31\5\31\u00a7\n\31\3\31"+ + "\3\31\3\31\3\31\6\31\u00ad\n\31\r\31\16\31\u00ae\3\31\5\31\u00b2\n\31"+ + "\5\31\u00b4\n\31\3\32\3\32\5\32\u00b8\n\32\3\32\6\32\u00bb\n\32\r\32\16"+ + "\32\u00bc\3\33\3\33\3\34\3\34\3\35\6\35\u00c4\n\35\r\35\16\35\u00c5\3"+ + "\36\3\36\7\36\u00ca\n\36\f\36\16\36\u00cd\13\36\3\36\3\36\3\37\3\37\5"+ + "\37\u00d3\n\37\3 \3 \3 \2\2!\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13"+ + "\25\f\27\r\31\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61"+ + "\32\63\33\65\34\67\359\36;\37= ?!\3\2\7\3\2\63;\4\2GGgg\4\2--//\7\2&&"+ + "\62;C\\aac|\4\2\2(*\u0201\2\u00eb\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\27\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!\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\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2"+ + "\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\3A\3\2\2"+ + "\2\5C\3\2\2\2\7E\3\2\2\2\tG\3\2\2\2\13I\3\2\2\2\rK\3\2\2\2\17M\3\2\2\2"+ + "\21O\3\2\2\2\23R\3\2\2\2\25U\3\2\2\2\27Z\3\2\2\2\31`\3\2\2\2\33e\3\2\2"+ + "\2\35h\3\2\2\2\37j\3\2\2\2!l\3\2\2\2#n\3\2\2\2%q\3\2\2\2\'}\3\2\2\2)\u0081"+ + "\3\2\2\2+\u0083\3\2\2\2-\u0086\3\2\2\2/\u008d\3\2\2\2\61\u00b3\3\2\2\2"+ + "\63\u00b5\3\2\2\2\65\u00be\3\2\2\2\67\u00c0\3\2\2\29\u00c3\3\2\2\2;\u00c7"+ + "\3\2\2\2=\u00d2\3\2\2\2?\u00d4\3\2\2\2AB\7*\2\2B\4\3\2\2\2CD\7+\2\2D\6"+ + "\3\2\2\2EF\7]\2\2F\b\3\2\2\2GH\7_\2\2H\n\3\2\2\2IJ\7>\2\2J\f\3\2\2\2K"+ + "L\7@\2\2L\16\3\2\2\2MN\7/\2\2N\20\3\2\2\2OP\7/\2\2PQ\7@\2\2Q\22\3\2\2"+ + "\2RS\7>\2\2ST\7/\2\2T\24\3\2\2\2UV\7v\2\2VW\7t\2\2WX\7w\2\2XY\7g\2\2Y"+ + "\26\3\2\2\2Z[\7h\2\2[\\\7c\2\2\\]\7n\2\2]^\7u\2\2^_\7g\2\2_\30\3\2\2\2"+ + "`a\7p\2\2ab\7w\2\2bc\7n\2\2cd\7n\2\2d\32\3\2\2\2ef\7.\2\2fg\7\"\2\2g\34"+ + "\3\2\2\2hi\7}\2\2i\36\3\2\2\2jk\7\177\2\2k \3\2\2\2lm\7b\2\2m\"\3\2\2"+ + "\2no\7<\2\2o$\3\2\2\2pr\7/\2\2qp\3\2\2\2qr\3\2\2\2rs\3\2\2\2st\5\'\24"+ + "\2t&\3\2\2\2u~\7\62\2\2vz\5+\26\2wy\5)\25\2xw\3\2\2\2y|\3\2\2\2zx\3\2"+ + "\2\2z{\3\2\2\2{~\3\2\2\2|z\3\2\2\2}u\3\2\2\2}v\3\2\2\2~(\3\2\2\2\177\u0082"+ + "\7\62\2\2\u0080\u0082\5+\26\2\u0081\177\3\2\2\2\u0081\u0080\3\2\2\2\u0082"+ + "*\3\2\2\2\u0083\u0084\t\2\2\2\u0084,\3\2\2\2\u0085\u0087\7/\2\2\u0086"+ + "\u0085\3\2\2\2\u0086\u0087\3\2\2\2\u0087\u0088\3\2\2\2\u0088\u0089\7K"+ + "\2\2\u0089\u008a\7p\2\2\u008a\u008b\7h\2\2\u008b.\3\2\2\2\u008c\u008e"+ + "\7/\2\2\u008d\u008c\3\2\2\2\u008d\u008e\3\2\2\2\u008e\u008f\3\2\2\2\u008f"+ + "\u0090\5\61\31\2\u0090\60\3\2\2\2\u0091\u0093\5)\25\2\u0092\u0091\3\2"+ + "\2\2\u0093\u0094\3\2\2\2\u0094\u0092\3\2\2\2\u0094\u0095\3\2\2\2\u0095"+ + "\u0096\3\2\2\2\u0096\u0098\7\60\2\2\u0097\u0099\5)\25\2\u0098\u0097\3"+ + "\2\2\2\u0099\u009a\3\2\2\2\u009a\u0098\3\2\2\2\u009a\u009b\3\2\2\2\u009b"+ + "\u009d\3\2\2\2\u009c\u009e\5\63\32\2\u009d\u009c\3\2\2\2\u009d\u009e\3"+ + "\2\2\2\u009e\u00b4\3\2\2\2\u009f\u00a1\7\60\2\2\u00a0\u00a2\5)\25\2\u00a1"+ + "\u00a0\3\2\2\2\u00a2\u00a3\3\2\2\2\u00a3\u00a1\3\2\2\2\u00a3\u00a4\3\2"+ + "\2\2\u00a4\u00a6\3\2\2\2\u00a5\u00a7\5\63\32\2\u00a6\u00a5\3\2\2\2\u00a6"+ + "\u00a7\3\2\2\2\u00a7\u00b4\3\2\2\2\u00a8\u00a9\5)\25\2\u00a9\u00aa\5\63"+ + "\32\2\u00aa\u00b4\3\2\2\2\u00ab\u00ad\5)\25\2\u00ac\u00ab\3\2\2\2\u00ad"+ + "\u00ae\3\2\2\2\u00ae\u00ac\3\2\2\2\u00ae\u00af\3\2\2\2\u00af\u00b1\3\2"+ + "\2\2\u00b0\u00b2\5\63\32\2\u00b1\u00b0\3\2\2\2\u00b1\u00b2\3\2\2\2\u00b2"+ + "\u00b4\3\2\2\2\u00b3\u0092\3\2\2\2\u00b3\u009f\3\2\2\2\u00b3\u00a8\3\2"+ + "\2\2\u00b3\u00ac\3\2\2\2\u00b4\62\3\2\2\2\u00b5\u00b7\t\3\2\2\u00b6\u00b8"+ + "\t\4\2\2\u00b7\u00b6\3\2\2\2\u00b7\u00b8\3\2\2\2\u00b8\u00ba\3\2\2\2\u00b9"+ + "\u00bb\5)\25\2\u00ba\u00b9\3\2\2\2\u00bb\u00bc\3\2\2\2\u00bc\u00ba\3\2"+ + "\2\2\u00bc\u00bd\3\2\2\2\u00bd\64\3\2\2\2\u00be\u00bf\59\35\2\u00bf\66"+ + "\3\2\2\2\u00c0\u00c1\7\"\2\2\u00c18\3\2\2\2\u00c2\u00c4\t\5\2\2\u00c3"+ + "\u00c2\3\2\2\2\u00c4\u00c5\3\2\2\2\u00c5\u00c3\3\2\2\2\u00c5\u00c6\3\2"+ + "\2\2\u00c6:\3\2\2\2\u00c7\u00cb\7)\2\2\u00c8\u00ca\5=\37\2\u00c9\u00c8"+ + "\3\2\2\2\u00ca\u00cd\3\2\2\2\u00cb\u00c9\3\2\2\2\u00cb\u00cc\3\2\2\2\u00cc"+ + "\u00ce\3\2\2\2\u00cd\u00cb\3\2\2\2\u00ce\u00cf\7)\2\2\u00cf<\3\2\2\2\u00d0"+ + "\u00d3\t\6\2\2\u00d1\u00d3\5? \2\u00d2\u00d0\3\2\2\2\u00d2\u00d1\3\2\2"+ + "\2\u00d3>\3\2\2\2\u00d4\u00d5\7^\2\2\u00d5\u00d6\7)\2\2\u00d6@\3\2\2\2"+ + "\26\2qz}\u0081\u0086\u008d\u0094\u009a\u009d\u00a3\u00a6\u00ae\u00b1\u00b3"+ + "\u00b7\u00bc\u00c5\u00cb\u00d2\2"; public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray()); static { @@ -213,4 +216,4 @@ public FeatureResultsLexer(CharStream input) { _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); } } -} +} \ No newline at end of file diff --git a/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsLexer.tokens b/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsLexer.tokens index 9ee8cf620f..ccb4e7a973 100644 --- a/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsLexer.tokens +++ b/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsLexer.tokens @@ -14,20 +14,21 @@ T__12=13 T__13=14 T__14=15 T__15=16 -INTEGER_LITERAL=17 -DECIMAL_LITERAL=18 -DIGIT=19 -NONZERODIGIT=20 -INFINITY=21 -FLOAT_LITERAL=22 -FLOAT_REPR=23 -EXPONENTPART=24 -SYMBOLIC_NAME=25 -WS=26 -IDENTIFIER=27 -STRING_LITERAL=28 -STRING_BODY=29 -ESCAPED_APOSTROPHE=30 +T__16=17 +INTEGER_LITERAL=18 +DECIMAL_LITERAL=19 +DIGIT=20 +NONZERODIGIT=21 +INFINITY=22 +FLOAT_LITERAL=23 +FLOAT_REPR=24 +EXPONENTPART=25 +SYMBOLIC_NAME=26 +WS=27 +IDENTIFIER=28 +STRING_LITERAL=29 +STRING_BODY=30 +ESCAPED_APOSTROPHE=31 '('=1 ')'=2 '['=3 @@ -43,6 +44,7 @@ ESCAPED_APOSTROPHE=30 ', '=13 '{'=14 '}'=15 -':'=16 -' '=26 -'\\\''=30 +'`'=16 +':'=17 +' '=27 +'\\\''=31 diff --git a/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsListener.java b/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsListener.java index eb23a0fccd..35d909aa48 100644 --- a/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsListener.java +++ b/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsListener.java @@ -25,7 +25,8 @@ * described as "implementation extensions to Cypher" or as "proposed changes to * Cypher that are not yet approved by the openCypher community". */ -package org.opencypher.tools.tck.parsing.generated;// Generated from /Users/stutz/Documents/GitHub/openCypher/tools/tck/src/main/resources/FeatureResults.g4 by ANTLR 4.7 +// Generated from FeatureResults.g4 by ANTLR 4.7 +package org.opencypher.tools.tck.parsing.generated; import org.antlr.v4.runtime.tree.ParseTreeListener; /** @@ -313,4 +314,4 @@ public interface FeatureResultsListener extends ParseTreeListener { * @param ctx the parse tree */ void exitString(FeatureResultsParser.StringContext ctx); -} +} \ No newline at end of file diff --git a/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsParser.java b/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsParser.java index 806bb92960..62cbe0c92d 100644 --- a/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsParser.java +++ b/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsParser.java @@ -25,7 +25,8 @@ * described as "implementation extensions to Cypher" or as "proposed changes to * Cypher that are not yet approved by the openCypher community". */ -package org.opencypher.tools.tck.parsing.generated;// Generated from /Users/stutz/Documents/GitHub/openCypher/tools/tck/src/main/resources/FeatureResults.g4 by ANTLR 4.7 +// Generated from FeatureResults.g4 by ANTLR 4.7 +package org.opencypher.tools.tck.parsing.generated; import org.antlr.v4.runtime.atn.*; import org.antlr.v4.runtime.dfa.DFA; import org.antlr.v4.runtime.*; @@ -43,39 +44,40 @@ public class FeatureResultsParser extends Parser { 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, T__6=7, T__7=8, T__8=9, - T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, INTEGER_LITERAL=17, - DECIMAL_LITERAL=18, DIGIT=19, NONZERODIGIT=20, INFINITY=21, FLOAT_LITERAL=22, - FLOAT_REPR=23, EXPONENTPART=24, SYMBOLIC_NAME=25, WS=26, IDENTIFIER=27, - STRING_LITERAL=28, STRING_BODY=29, ESCAPED_APOSTROPHE=30; + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, + T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17, + INTEGER_LITERAL=18, DECIMAL_LITERAL=19, DIGIT=20, NONZERODIGIT=21, INFINITY=22, + FLOAT_LITERAL=23, FLOAT_REPR=24, EXPONENTPART=25, SYMBOLIC_NAME=26, WS=27, + IDENTIFIER=28, STRING_LITERAL=29, STRING_BODY=30, ESCAPED_APOSTROPHE=31; public static final int - RULE_value = 0, RULE_node = 1, RULE_nodeDesc = 2, RULE_relationship = 3, - RULE_relationshipDesc = 4, RULE_path = 5, RULE_pathBody = 6, RULE_pathLink = 7, - RULE_forwardsRelationship = 8, RULE_backwardsRelationship = 9, RULE_integer = 10, - RULE_floatingPoint = 11, RULE_bool = 12, RULE_nullValue = 13, RULE_list = 14, - RULE_listContents = 15, RULE_listElement = 16, RULE_map = 17, RULE_propertyMap = 18, - RULE_mapContents = 19, RULE_keyValuePair = 20, RULE_propertyKey = 21, - RULE_propertyValue = 22, RULE_relationshipType = 23, RULE_relationshipTypeName = 24, + RULE_value = 0, RULE_node = 1, RULE_nodeDesc = 2, RULE_relationship = 3, + RULE_relationshipDesc = 4, RULE_path = 5, RULE_pathBody = 6, RULE_pathLink = 7, + RULE_forwardsRelationship = 8, RULE_backwardsRelationship = 9, RULE_integer = 10, + RULE_floatingPoint = 11, RULE_bool = 12, RULE_nullValue = 13, RULE_list = 14, + RULE_listContents = 15, RULE_listElement = 16, RULE_map = 17, RULE_propertyMap = 18, + RULE_mapContents = 19, RULE_keyValuePair = 20, RULE_propertyKey = 21, + RULE_propertyValue = 22, RULE_relationshipType = 23, RULE_relationshipTypeName = 24, RULE_label = 25, RULE_labelName = 26, RULE_string = 27; public static final String[] ruleNames = { - "value", "node", "nodeDesc", "relationship", "relationshipDesc", "path", - "pathBody", "pathLink", "forwardsRelationship", "backwardsRelationship", - "integer", "floatingPoint", "bool", "nullValue", "list", "listContents", - "listElement", "map", "propertyMap", "mapContents", "keyValuePair", "propertyKey", - "propertyValue", "relationshipType", "relationshipTypeName", "label", + "value", "node", "nodeDesc", "relationship", "relationshipDesc", "path", + "pathBody", "pathLink", "forwardsRelationship", "backwardsRelationship", + "integer", "floatingPoint", "bool", "nullValue", "list", "listContents", + "listElement", "map", "propertyMap", "mapContents", "keyValuePair", "propertyKey", + "propertyValue", "relationshipType", "relationshipTypeName", "label", "labelName", "string" }; private static final String[] _LITERAL_NAMES = { - null, "'('", "')'", "'['", "']'", "'<'", "'>'", "'-'", "'->'", "'<-'", - "'true'", "'false'", "'null'", "', '", "'{'", "'}'", "':'", null, null, - null, null, null, null, null, null, null, "' '", null, null, null, "'\\''" + null, "'('", "')'", "'['", "']'", "'<'", "'>'", "'-'", "'->'", "'<-'", + "'true'", "'false'", "'null'", "', '", "'{'", "'}'", "'`'", "':'", null, + null, null, null, null, null, null, null, null, "' '", null, null, null, + "'\\''" }; private static final String[] _SYMBOLIC_NAMES = { - null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, "INTEGER_LITERAL", "DECIMAL_LITERAL", "DIGIT", - "NONZERODIGIT", "INFINITY", "FLOAT_LITERAL", "FLOAT_REPR", "EXPONENTPART", - "SYMBOLIC_NAME", "WS", "IDENTIFIER", "STRING_LITERAL", "STRING_BODY", + null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, "INTEGER_LITERAL", "DECIMAL_LITERAL", + "DIGIT", "NONZERODIGIT", "INFINITY", "FLOAT_LITERAL", "FLOAT_REPR", "EXPONENTPART", + "SYMBOLIC_NAME", "WS", "IDENTIFIER", "STRING_LITERAL", "STRING_BODY", "ESCAPED_APOSTROPHE" }; public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); @@ -353,7 +355,7 @@ public final NodeDescContext nodeDesc() throws RecognitionException { setState(74); _errHandler.sync(this); _la = _input.LA(1); - while (_la==T__15) { + while (_la==T__16) { { { setState(71); @@ -1222,7 +1224,7 @@ public final PropertyMapContext propertyMap() throws RecognitionException { setState(150); _errHandler.sync(this); _la = _input.LA(1); - if (_la==SYMBOLIC_NAME) { + if (_la==T__15 || _la==SYMBOLIC_NAME) { { setState(149); mapContents(); @@ -1309,12 +1311,12 @@ public final MapContentsContext mapContents() throws RecognitionException { } public static class KeyValuePairContext extends ParserRuleContext { - public PropertyKeyContext propertyKey() { - return getRuleContext(PropertyKeyContext.class,0); - } public PropertyValueContext propertyValue() { return getRuleContext(PropertyValueContext.class,0); } + public PropertyKeyContext propertyKey() { + return getRuleContext(PropertyKeyContext.class,0); + } public TerminalNode WS() { return getToken(FeatureResultsParser.WS, 0); } public KeyValuePairContext(ParserRuleContext parent, int invokingState) { super(parent, invokingState); @@ -1342,21 +1344,43 @@ public final KeyValuePairContext keyValuePair() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(162); - propertyKey(); - setState(163); - match(T__15); - setState(165); + setState(167); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SYMBOLIC_NAME: + { + setState(162); + propertyKey(); + } + break; + case T__15: + { + { + setState(163); + match(T__15); + setState(164); + propertyKey(); + setState(165); + match(T__15); + } + } + break; + default: + throw new NoViableAltException(this); + } + setState(169); + match(T__16); + setState(171); _errHandler.sync(this); _la = _input.LA(1); if (_la==WS) { { - setState(164); + setState(170); match(WS); } } - setState(167); + setState(173); propertyValue(); } } @@ -1398,7 +1422,7 @@ public final PropertyKeyContext propertyKey() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(169); + setState(175); match(SYMBOLIC_NAME); } } @@ -1442,7 +1466,7 @@ public final PropertyValueContext propertyValue() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(171); + setState(177); value(); } } @@ -1486,10 +1510,32 @@ public final RelationshipTypeContext relationshipType() throws RecognitionExcept try { enterOuterAlt(_localctx, 1); { - setState(173); - match(T__15); - setState(174); - relationshipTypeName(); + setState(179); + match(T__16); + setState(185); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SYMBOLIC_NAME: + { + setState(180); + relationshipTypeName(); + } + break; + case T__15: + { + { + setState(181); + match(T__15); + setState(182); + relationshipTypeName(); + setState(183); + match(T__15); + } + } + break; + default: + throw new NoViableAltException(this); + } } } catch (RecognitionException re) { @@ -1530,7 +1576,7 @@ public final RelationshipTypeNameContext relationshipTypeName() throws Recogniti try { enterOuterAlt(_localctx, 1); { - setState(176); + setState(187); match(SYMBOLIC_NAME); } } @@ -1574,10 +1620,32 @@ public final LabelContext label() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(178); - match(T__15); - setState(179); - labelName(); + setState(189); + match(T__16); + setState(195); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SYMBOLIC_NAME: + { + setState(190); + labelName(); + } + break; + case T__15: + { + { + setState(191); + match(T__15); + setState(192); + labelName(); + setState(193); + match(T__15); + } + } + break; + default: + throw new NoViableAltException(this); + } } } catch (RecognitionException re) { @@ -1618,7 +1686,7 @@ public final LabelNameContext labelName() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(181); + setState(197); match(SYMBOLIC_NAME); } } @@ -1660,7 +1728,7 @@ public final StringContext string() throws RecognitionException { try { enterOuterAlt(_localctx, 1); { - setState(183); + setState(199); match(STRING_LITERAL); } } @@ -1676,7 +1744,7 @@ public final StringContext string() throws RecognitionException { } public static final String _serializedATN = - "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3 \u00bc\4\2\t\2\4"+ + "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3!\u00cc\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\4\27\t\27\4\30\t\30\4\31\t\31"+ @@ -1688,46 +1756,54 @@ public final StringContext string() throws RecognitionException { "\3\17\3\17\3\20\3\20\5\20\u0087\n\20\3\20\3\20\3\21\3\21\3\21\7\21\u008e"+ "\n\21\f\21\16\21\u0091\13\21\3\22\3\22\3\23\3\23\3\24\3\24\5\24\u0099"+ "\n\24\3\24\3\24\3\25\3\25\3\25\7\25\u00a0\n\25\f\25\16\25\u00a3\13\25"+ - "\3\26\3\26\3\26\5\26\u00a8\n\26\3\26\3\26\3\27\3\27\3\30\3\30\3\31\3\31"+ - "\3\31\3\32\3\32\3\33\3\33\3\33\3\34\3\34\3\35\3\35\3\35\2\2\36\2\4\6\b"+ - "\n\f\16\20\22\24\26\30\32\34\36 \"$&(*,.\60\62\64\668\2\4\3\2\27\30\3"+ - "\2\f\r\2\u00b4\2D\3\2\2\2\4F\3\2\2\2\6H\3\2\2\2\bW\3\2\2\2\nY\3\2\2\2"+ - "\fc\3\2\2\2\16g\3\2\2\2\20p\3\2\2\2\22t\3\2\2\2\24x\3\2\2\2\26|\3\2\2"+ - "\2\30~\3\2\2\2\32\u0080\3\2\2\2\34\u0082\3\2\2\2\36\u0084\3\2\2\2 \u008a"+ - "\3\2\2\2\"\u0092\3\2\2\2$\u0094\3\2\2\2&\u0096\3\2\2\2(\u009c\3\2\2\2"+ - "*\u00a4\3\2\2\2,\u00ab\3\2\2\2.\u00ad\3\2\2\2\60\u00af\3\2\2\2\62\u00b2"+ - "\3\2\2\2\64\u00b4\3\2\2\2\66\u00b7\3\2\2\28\u00b9\3\2\2\2:E\5\4\3\2;E"+ - "\5\b\5\2E\5\30\r\2?E\58\35\2@E\5\32\16\2AE\5\34"+ - "\17\2BE\5\36\20\2CE\5$\23\2D:\3\2\2\2D;\3\2\2\2D<\3\2\2\2D=\3\2\2\2D>"+ - "\3\2\2\2D?\3\2\2\2D@\3\2\2\2DA\3\2\2\2DB\3\2\2\2DC\3\2\2\2E\3\3\2\2\2"+ - "FG\5\6\4\2G\5\3\2\2\2HL\7\3\2\2IK\5\64\33\2JI\3\2\2\2KN\3\2\2\2LJ\3\2"+ - "\2\2LM\3\2\2\2MP\3\2\2\2NL\3\2\2\2OQ\7\34\2\2PO\3\2\2\2PQ\3\2\2\2QS\3"+ - "\2\2\2RT\5&\24\2SR\3\2\2\2ST\3\2\2\2TU\3\2\2\2UV\7\4\2\2V\7\3\2\2\2WX"+ - "\5\n\6\2X\t\3\2\2\2YZ\7\5\2\2Z\\\5\60\31\2[]\7\34\2\2\\[\3\2\2\2\\]\3"+ - "\2\2\2]_\3\2\2\2^`\5&\24\2_^\3\2\2\2_`\3\2\2\2`a\3\2\2\2ab\7\6\2\2b\13"+ - "\3\2\2\2cd\7\7\2\2de\5\16\b\2ef\7\b\2\2f\r\3\2\2\2gk\5\6\4\2hj\5\20\t"+ - "\2ih\3\2\2\2jm\3\2\2\2ki\3\2\2\2kl\3\2\2\2l\17\3\2\2\2mk\3\2\2\2nq\5\22"+ - "\n\2oq\5\24\13\2pn\3\2\2\2po\3\2\2\2qr\3\2\2\2rs\5\6\4\2s\21\3\2\2\2t"+ - "u\7\t\2\2uv\5\n\6\2vw\7\n\2\2w\23\3\2\2\2xy\7\13\2\2yz\5\n\6\2z{\7\t\2"+ - "\2{\25\3\2\2\2|}\7\23\2\2}\27\3\2\2\2~\177\t\2\2\2\177\31\3\2\2\2\u0080"+ - "\u0081\t\3\2\2\u0081\33\3\2\2\2\u0082\u0083\7\16\2\2\u0083\35\3\2\2\2"+ - "\u0084\u0086\7\5\2\2\u0085\u0087\5 \21\2\u0086\u0085\3\2\2\2\u0086\u0087"+ - "\3\2\2\2\u0087\u0088\3\2\2\2\u0088\u0089\7\6\2\2\u0089\37\3\2\2\2\u008a"+ - "\u008f\5\"\22\2\u008b\u008c\7\17\2\2\u008c\u008e\5\"\22\2\u008d\u008b"+ - "\3\2\2\2\u008e\u0091\3\2\2\2\u008f\u008d\3\2\2\2\u008f\u0090\3\2\2\2\u0090"+ - "!\3\2\2\2\u0091\u008f\3\2\2\2\u0092\u0093\5\2\2\2\u0093#\3\2\2\2\u0094"+ - "\u0095\5&\24\2\u0095%\3\2\2\2\u0096\u0098\7\20\2\2\u0097\u0099\5(\25\2"+ - "\u0098\u0097\3\2\2\2\u0098\u0099\3\2\2\2\u0099\u009a\3\2\2\2\u009a\u009b"+ - "\7\21\2\2\u009b\'\3\2\2\2\u009c\u00a1\5*\26\2\u009d\u009e\7\17\2\2\u009e"+ - "\u00a0\5*\26\2\u009f\u009d\3\2\2\2\u00a0\u00a3\3\2\2\2\u00a1\u009f\3\2"+ - "\2\2\u00a1\u00a2\3\2\2\2\u00a2)\3\2\2\2\u00a3\u00a1\3\2\2\2\u00a4\u00a5"+ - "\5,\27\2\u00a5\u00a7\7\22\2\2\u00a6\u00a8\7\34\2\2\u00a7\u00a6\3\2\2\2"+ - "\u00a7\u00a8\3\2\2\2\u00a8\u00a9\3\2\2\2\u00a9\u00aa\5.\30\2\u00aa+\3"+ - "\2\2\2\u00ab\u00ac\7\33\2\2\u00ac-\3\2\2\2\u00ad\u00ae\5\2\2\2\u00ae/"+ - "\3\2\2\2\u00af\u00b0\7\22\2\2\u00b0\u00b1\5\62\32\2\u00b1\61\3\2\2\2\u00b2"+ - "\u00b3\7\33\2\2\u00b3\63\3\2\2\2\u00b4\u00b5\7\22\2\2\u00b5\u00b6\5\66"+ - "\34\2\u00b6\65\3\2\2\2\u00b7\u00b8\7\33\2\2\u00b8\67\3\2\2\2\u00b9\u00ba"+ - "\7\36\2\2\u00ba9\3\2\2\2\17DLPS\\_kp\u0086\u008f\u0098\u00a1\u00a7"; + "\3\26\3\26\3\26\3\26\3\26\5\26\u00aa\n\26\3\26\3\26\5\26\u00ae\n\26\3"+ + "\26\3\26\3\27\3\27\3\30\3\30\3\31\3\31\3\31\3\31\3\31\3\31\5\31\u00bc"+ + "\n\31\3\32\3\32\3\33\3\33\3\33\3\33\3\33\3\33\5\33\u00c6\n\33\3\34\3\34"+ + "\3\35\3\35\3\35\2\2\36\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&(*,"+ + ".\60\62\64\668\2\4\3\2\30\31\3\2\f\r\2\u00c7\2D\3\2\2\2\4F\3\2\2\2\6H"+ + "\3\2\2\2\bW\3\2\2\2\nY\3\2\2\2\fc\3\2\2\2\16g\3\2\2\2\20p\3\2\2\2\22t"+ + "\3\2\2\2\24x\3\2\2\2\26|\3\2\2\2\30~\3\2\2\2\32\u0080\3\2\2\2\34\u0082"+ + "\3\2\2\2\36\u0084\3\2\2\2 \u008a\3\2\2\2\"\u0092\3\2\2\2$\u0094\3\2\2"+ + "\2&\u0096\3\2\2\2(\u009c\3\2\2\2*\u00a9\3\2\2\2,\u00b1\3\2\2\2.\u00b3"+ + "\3\2\2\2\60\u00b5\3\2\2\2\62\u00bd\3\2\2\2\64\u00bf\3\2\2\2\66\u00c7\3"+ + "\2\2\28\u00c9\3\2\2\2:E\5\4\3\2;E\5\b\5\2E\5\30"+ + "\r\2?E\58\35\2@E\5\32\16\2AE\5\34\17\2BE\5\36\20\2CE\5$\23\2D:\3\2\2\2"+ + "D;\3\2\2\2D<\3\2\2\2D=\3\2\2\2D>\3\2\2\2D?\3\2\2\2D@\3\2\2\2DA\3\2\2\2"+ + "DB\3\2\2\2DC\3\2\2\2E\3\3\2\2\2FG\5\6\4\2G\5\3\2\2\2HL\7\3\2\2IK\5\64"+ + "\33\2JI\3\2\2\2KN\3\2\2\2LJ\3\2\2\2LM\3\2\2\2MP\3\2\2\2NL\3\2\2\2OQ\7"+ + "\35\2\2PO\3\2\2\2PQ\3\2\2\2QS\3\2\2\2RT\5&\24\2SR\3\2\2\2ST\3\2\2\2TU"+ + "\3\2\2\2UV\7\4\2\2V\7\3\2\2\2WX\5\n\6\2X\t\3\2\2\2YZ\7\5\2\2Z\\\5\60\31"+ + "\2[]\7\35\2\2\\[\3\2\2\2\\]\3\2\2\2]_\3\2\2\2^`\5&\24\2_^\3\2\2\2_`\3"+ + "\2\2\2`a\3\2\2\2ab\7\6\2\2b\13\3\2\2\2cd\7\7\2\2de\5\16\b\2ef\7\b\2\2"+ + "f\r\3\2\2\2gk\5\6\4\2hj\5\20\t\2ih\3\2\2\2jm\3\2\2\2ki\3\2\2\2kl\3\2\2"+ + "\2l\17\3\2\2\2mk\3\2\2\2nq\5\22\n\2oq\5\24\13\2pn\3\2\2\2po\3\2\2\2qr"+ + "\3\2\2\2rs\5\6\4\2s\21\3\2\2\2tu\7\t\2\2uv\5\n\6\2vw\7\n\2\2w\23\3\2\2"+ + "\2xy\7\13\2\2yz\5\n\6\2z{\7\t\2\2{\25\3\2\2\2|}\7\24\2\2}\27\3\2\2\2~"+ + "\177\t\2\2\2\177\31\3\2\2\2\u0080\u0081\t\3\2\2\u0081\33\3\2\2\2\u0082"+ + "\u0083\7\16\2\2\u0083\35\3\2\2\2\u0084\u0086\7\5\2\2\u0085\u0087\5 \21"+ + "\2\u0086\u0085\3\2\2\2\u0086\u0087\3\2\2\2\u0087\u0088\3\2\2\2\u0088\u0089"+ + "\7\6\2\2\u0089\37\3\2\2\2\u008a\u008f\5\"\22\2\u008b\u008c\7\17\2\2\u008c"+ + "\u008e\5\"\22\2\u008d\u008b\3\2\2\2\u008e\u0091\3\2\2\2\u008f\u008d\3"+ + "\2\2\2\u008f\u0090\3\2\2\2\u0090!\3\2\2\2\u0091\u008f\3\2\2\2\u0092\u0093"+ + "\5\2\2\2\u0093#\3\2\2\2\u0094\u0095\5&\24\2\u0095%\3\2\2\2\u0096\u0098"+ + "\7\20\2\2\u0097\u0099\5(\25\2\u0098\u0097\3\2\2\2\u0098\u0099\3\2\2\2"+ + "\u0099\u009a\3\2\2\2\u009a\u009b\7\21\2\2\u009b\'\3\2\2\2\u009c\u00a1"+ + "\5*\26\2\u009d\u009e\7\17\2\2\u009e\u00a0\5*\26\2\u009f\u009d\3\2\2\2"+ + "\u00a0\u00a3\3\2\2\2\u00a1\u009f\3\2\2\2\u00a1\u00a2\3\2\2\2\u00a2)\3"+ + "\2\2\2\u00a3\u00a1\3\2\2\2\u00a4\u00aa\5,\27\2\u00a5\u00a6\7\22\2\2\u00a6"+ + "\u00a7\5,\27\2\u00a7\u00a8\7\22\2\2\u00a8\u00aa\3\2\2\2\u00a9\u00a4\3"+ + "\2\2\2\u00a9\u00a5\3\2\2\2\u00aa\u00ab\3\2\2\2\u00ab\u00ad\7\23\2\2\u00ac"+ + "\u00ae\7\35\2\2\u00ad\u00ac\3\2\2\2\u00ad\u00ae\3\2\2\2\u00ae\u00af\3"+ + "\2\2\2\u00af\u00b0\5.\30\2\u00b0+\3\2\2\2\u00b1\u00b2\7\34\2\2\u00b2-"+ + "\3\2\2\2\u00b3\u00b4\5\2\2\2\u00b4/\3\2\2\2\u00b5\u00bb\7\23\2\2\u00b6"+ + "\u00bc\5\62\32\2\u00b7\u00b8\7\22\2\2\u00b8\u00b9\5\62\32\2\u00b9\u00ba"+ + "\7\22\2\2\u00ba\u00bc\3\2\2\2\u00bb\u00b6\3\2\2\2\u00bb\u00b7\3\2\2\2"+ + "\u00bc\61\3\2\2\2\u00bd\u00be\7\34\2\2\u00be\63\3\2\2\2\u00bf\u00c5\7"+ + "\23\2\2\u00c0\u00c6\5\66\34\2\u00c1\u00c2\7\22\2\2\u00c2\u00c3\5\66\34"+ + "\2\u00c3\u00c4\7\22\2\2\u00c4\u00c6\3\2\2\2\u00c5\u00c0\3\2\2\2\u00c5"+ + "\u00c1\3\2\2\2\u00c6\65\3\2\2\2\u00c7\u00c8\7\34\2\2\u00c8\67\3\2\2\2"+ + "\u00c9\u00ca\7\37\2\2\u00ca9\3\2\2\2\22DLPS\\_kp\u0086\u008f\u0098\u00a1"+ + "\u00a9\u00ad\u00bb\u00c5"; public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray()); static { @@ -1736,4 +1812,4 @@ public final StringContext string() throws RecognitionException { _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); } } -} +} \ No newline at end of file diff --git a/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsVisitor.java b/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsVisitor.java index cab48493e1..589fde2fde 100644 --- a/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsVisitor.java +++ b/tools/tck-api/src/main/java/org/opencypher/tools/tck/parsing/generated/FeatureResultsVisitor.java @@ -25,7 +25,8 @@ * described as "implementation extensions to Cypher" or as "proposed changes to * Cypher that are not yet approved by the openCypher community". */ -package org.opencypher.tools.tck.parsing.generated;// Generated from /Users/stutz/Documents/GitHub/openCypher/tools/tck/src/main/resources/FeatureResults.g4 by ANTLR 4.7 +// Generated from FeatureResults.g4 by ANTLR 4.7 +package org.opencypher.tools.tck.parsing.generated; import org.antlr.v4.runtime.tree.ParseTreeVisitor; /** @@ -204,4 +205,4 @@ public interface FeatureResultsVisitor extends ParseTreeVisitor { * @return the visitor result */ T visitString(FeatureResultsParser.StringContext ctx); -} +} \ No newline at end of file diff --git a/tools/tck-api/src/main/resources/FeatureResults.g4 b/tools/tck-api/src/main/resources/FeatureResults.g4 index edf6c058a0..31648fba6d 100644 --- a/tools/tck-api/src/main/resources/FeatureResults.g4 +++ b/tools/tck-api/src/main/resources/FeatureResults.g4 @@ -80,17 +80,17 @@ propertyMap : '{' (mapContents)? '}' ; mapContents : keyValuePair (', ' keyValuePair)* ; -keyValuePair: propertyKey ':' WS? propertyValue ; +keyValuePair: (propertyKey | ('`' propertyKey '`')) ':' WS? propertyValue ; propertyKey : SYMBOLIC_NAME ; propertyValue : value ; -relationshipType : ':' relationshipTypeName ; +relationshipType : ':' (relationshipTypeName | ('`' relationshipTypeName '`')); relationshipTypeName : SYMBOLIC_NAME ; -label : ':' labelName ; +label : ':' (labelName | ('`' labelName '`')) ; labelName : SYMBOLIC_NAME ; diff --git a/tools/tck-api/src/test/scala/org/opencypher/tools/tck/CypherValueVisitorTest.scala b/tools/tck-api/src/test/scala/org/opencypher/tools/tck/CypherValueVisitorTest.scala index fb59dd9319..f2b1090bee 100644 --- a/tools/tck-api/src/test/scala/org/opencypher/tools/tck/CypherValueVisitorTest.scala +++ b/tools/tck-api/src/test/scala/org/opencypher/tools/tck/CypherValueVisitorTest.scala @@ -46,6 +46,13 @@ class CypherValueVisitorTest extends FunSuite with Matchers { parsed should equal(expected) } + test("node with escaped label") { + val string = "(:A:`B` {name: 'Hans', `age`: 42})" + val parsed = CypherValue(string) + val expected = CypherNode(Set("A", "B"), CypherPropertyMap(Map("name" -> CypherString("Hans"), "age" -> CypherInteger(42)))) + parsed should equal(expected) + } + test("relationship") { val string = "[:A {since: 1920}]" val parsed = CypherValue(string) @@ -53,6 +60,13 @@ class CypherValueVisitorTest extends FunSuite with Matchers { parsed should equal(expected) } + test("relationship with escaped label") { + val string = "[:`A` {`since`: 1920}]" + val parsed = CypherValue(string) + val expected = CypherRelationship("A", CypherPropertyMap(Map("since" -> CypherInteger(1920)))) + parsed should equal(expected) + } + test("scalars") { CypherValue("true") should equal(CypherBoolean(true)) CypherValue("false") should equal(CypherBoolean(false)) @@ -90,7 +104,7 @@ class CypherValueVisitorTest extends FunSuite with Matchers { test("map") { CypherValue("{}") should equal(CypherPropertyMap()) - CypherValue("{name: 'Hello', foo: true}") should equal( + CypherValue("{name: 'Hello', `foo`: true}") should equal( CypherPropertyMap(Map("name" -> CypherString("Hello"), "foo" -> CypherBoolean(true)))) }