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))))
}