diff --git a/modules/ROOT/content-nav.adoc b/modules/ROOT/content-nav.adoc index ce6f887b9..fc62cabdb 100644 --- a/modules/ROOT/content-nav.adoc +++ b/modules/ROOT/content-nav.adoc @@ -167,6 +167,7 @@ *** xref:appendix/gql-conformance/supported-optional.adoc[] *** xref:appendix/gql-conformance/analogous-cypher.adoc[] *** xref:appendix/gql-conformance/additional-cypher.adoc[] +** xref:appendix/grammar/index.adoc[] ** xref:appendix/tutorials/index.adoc[] *** xref:appendix/tutorials/basic-query-tuning.adoc[] *** xref:appendix/tutorials/advanced-query-tuning.adoc[] \ No newline at end of file diff --git a/modules/ROOT/examples/syntax/clauses/call-procedure.bnf b/modules/ROOT/examples/syntax/clauses/call-procedure.bnf new file mode 100644 index 000000000..c5ca1b599 --- /dev/null +++ b/modules/ROOT/examples/syntax/clauses/call-procedure.bnf @@ -0,0 +1,5 @@ + ::= + [ "OPTIONAL" ] "CALL" { | } + + ::= + [ "YIELD" link:https://neo4j.com/docs/cypher-manual/current/syntax/naming/[] [ "AS" link:https://neo4j.com/docs/cypher-manual/current/syntax/naming/[] ] [ { "," link:https://neo4j.com/docs/cypher-manual/current/syntax/naming/[] [ "AS" link:https://neo4j.com/docs/cypher-manual/current/syntax/naming/[] ] }... ] [ "WHERE" ] ] \ No newline at end of file diff --git a/modules/ROOT/examples/syntax/clauses/create.bnf b/modules/ROOT/examples/syntax/clauses/create.bnf new file mode 100644 index 000000000..39ed26fe2 --- /dev/null +++ b/modules/ROOT/examples/syntax/clauses/create.bnf @@ -0,0 +1,5 @@ + ::= + "CREATE" [ { "," }... ] + + ::= + [ link:https://neo4j.com/docs/cypher-manual/current/syntax/naming/[] "=" ] [ { }... ] \ No newline at end of file diff --git a/modules/ROOT/examples/syntax/clauses/delete.bnf b/modules/ROOT/examples/syntax/clauses/delete.bnf new file mode 100644 index 000000000..59893db7e --- /dev/null +++ b/modules/ROOT/examples/syntax/clauses/delete.bnf @@ -0,0 +1,2 @@ + ::= + [ "DETACH" | "NODETACH" ] "DELETE" link:https://neo4j.com/docs/cypher-manual/current/expressions/[] [ { "," link:https://neo4j.com/docs/cypher-manual/current/expressions/[] }... ] \ No newline at end of file diff --git a/modules/ROOT/examples/syntax/clauses/filter.bnf b/modules/ROOT/examples/syntax/clauses/filter.bnf new file mode 100644 index 000000000..23b66212e --- /dev/null +++ b/modules/ROOT/examples/syntax/clauses/filter.bnf @@ -0,0 +1,2 @@ + ::= + "FILTER" [ "WHERE" ] link:https://neo4j.com/docs/cypher-manual/current/expressions/[] \ No newline at end of file diff --git a/modules/ROOT/examples/syntax/clauses/foreach.bnf b/modules/ROOT/examples/syntax/clauses/foreach.bnf new file mode 100644 index 000000000..b1c348c7c --- /dev/null +++ b/modules/ROOT/examples/syntax/clauses/foreach.bnf @@ -0,0 +1,8 @@ + ::= + "FOREACH" "(" ")" + + ::= + link:https://neo4j.com/docs/cypher-manual/current/syntax/naming/[] "IN" link:https://neo4j.com/docs/cypher-manual/current/expressions/[] + + ::= + "|" { link:https://neo4j.com/docs/cypher-manual/current/clauses/create/[] | link:https://neo4j.com/docs/cypher-manual/current/clauses/create/[] | link:https://neo4j.com/docs/cypher-manual/current/clauses/merge/[] | link:https://neo4j.com/docs/cypher-manual/current/clauses/set/[] | link:https://neo4j.com/docs/cypher-manual/current/clauses/remove/[] | link:https://neo4j.com/docs/cypher-manual/current/clauses/delete/[] }... \ No newline at end of file diff --git a/modules/ROOT/examples/syntax/clauses/let.bnf b/modules/ROOT/examples/syntax/clauses/let.bnf new file mode 100644 index 000000000..61b64a4a1 --- /dev/null +++ b/modules/ROOT/examples/syntax/clauses/let.bnf @@ -0,0 +1,2 @@ + ::= + "LET" link:https://neo4j.com/docs/cypher-manual/current/syntax/naming/[] "=" link:https://neo4j.com/docs/cypher-manual/current/expressions/[] [ { "," link:https://neo4j.com/docs/cypher-manual/current/syntax/naming/[] "=" link:https://neo4j.com/docs/cypher-manual/current/expressions/[] }... ] \ No newline at end of file diff --git a/modules/ROOT/examples/syntax/clauses/limit.bnf b/modules/ROOT/examples/syntax/clauses/limit.bnf new file mode 100644 index 000000000..c12283b5f --- /dev/null +++ b/modules/ROOT/examples/syntax/clauses/limit.bnf @@ -0,0 +1,2 @@ + ::= + "LIMIT" link:https://neo4j.com/docs/cypher-manual/current/expressions/[] \ No newline at end of file diff --git a/modules/ROOT/examples/syntax/clauses/load-csv.bnf b/modules/ROOT/examples/syntax/clauses/load-csv.bnf new file mode 100644 index 000000000..9cc07dadb --- /dev/null +++ b/modules/ROOT/examples/syntax/clauses/load-csv.bnf @@ -0,0 +1,8 @@ + ::= + "LOAD CSV" [ "WITH HEADERS" ] [ ] + + ::= + "FROM" link:https://neo4j.com/docs/cypher-manual/current/expressions/[] "AS" link:https://neo4j.com/docs/cypher-manual/current/syntax/naming/[] + + ::= + "FIELDTERMINATOR" link:https://neo4j.com/docs/cypher-manual/current/syntax/parsing/[] \ No newline at end of file diff --git a/modules/ROOT/examples/syntax/clauses/match.bnf b/modules/ROOT/examples/syntax/clauses/match.bnf new file mode 100644 index 000000000..4bad6a2fe --- /dev/null +++ b/modules/ROOT/examples/syntax/clauses/match.bnf @@ -0,0 +1,2 @@ + ::= + "MATCH" [ link:https://neo4j.com/docs/cypher-manual/current/patterns/match-modes/[] ] link:https://neo4j.com/docs/cypher-manual/current/patterns/reference/#path-patterns[] [ { "," link:https://neo4j.com/docs/cypher-manual/current/patterns/reference/#path-patterns[] }... ] [ link:https://neo4j.com/docs/cypher-manual/current/clauses/where/[] [ link:https://neo4j.com/docs/cypher-manual/current/clauses/search/[] ] | link:https://neo4j.com/docs/cypher-manual/current/clauses/search/[] [ link:https://neo4j.com/docs/cypher-manual/current/clauses/where/[] ] ] \ No newline at end of file diff --git a/modules/ROOT/examples/syntax/clauses/merge.bnf b/modules/ROOT/examples/syntax/clauses/merge.bnf new file mode 100644 index 000000000..cac324a89 --- /dev/null +++ b/modules/ROOT/examples/syntax/clauses/merge.bnf @@ -0,0 +1,5 @@ + ::= + "MERGE" [ link:https://neo4j.com/docs/cypher-manual/current/syntax/naming/[] "=" ] [ { }... ] [ ] + + ::= + "ON" { "MATCH" | "CREATE" } link:https://neo4j.com/docs/cypher-manual/current/clauses/set/[] \ No newline at end of file diff --git a/modules/ROOT/examples/syntax/clauses/optional-match.bnf b/modules/ROOT/examples/syntax/clauses/optional-match.bnf new file mode 100644 index 000000000..85bc7eb7f --- /dev/null +++ b/modules/ROOT/examples/syntax/clauses/optional-match.bnf @@ -0,0 +1,2 @@ + ::= + "OPTIONAL" link:https://neo4j.com/docs/cypher-manual/current/clauses/match/[] \ No newline at end of file diff --git a/modules/ROOT/examples/syntax/clauses/order-by.bnf b/modules/ROOT/examples/syntax/clauses/order-by.bnf new file mode 100644 index 000000000..00a562dcd --- /dev/null +++ b/modules/ROOT/examples/syntax/clauses/order-by.bnf @@ -0,0 +1,5 @@ + ::= + "ORDER BY" [ { "," }... ] + + ::= + link:https://neo4j.com/docs/cypher-manual/current/expressions/[] [ "ASC" | "ASCENDING" | "DESC" | "DESCENDING" ] \ No newline at end of file diff --git a/modules/ROOT/examples/syntax/clauses/remove.bnf b/modules/ROOT/examples/syntax/clauses/remove.bnf new file mode 100644 index 000000000..29ebaee4f --- /dev/null +++ b/modules/ROOT/examples/syntax/clauses/remove.bnf @@ -0,0 +1,12 @@ + ::= + "REMOVE" [ { "," }... ] + + ::= + + | + + ::= + link:https://neo4j.com/docs/cypher-manual/current/syntax/naming/[] { ":"