openCypher9.g4

oC_Cypher

SPoC_StatementSP';'SPEOF

oC_Statement

oC_Query

oC_Query

oC_RegularQueryoC_StandaloneCall

oC_RegularQuery

oC_SingleQuerySPoC_Union

oC_Union

UNIONSPALLSPoC_SingleQueryUNIONSPoC_SingleQuery

UNION

'U''u''N''n''I''i''O''o''N''n'

ALL

'A''a''L''l''L''l'

oC_SingleQuery

oC_SinglePartQueryoC_MultiPartQuery

oC_SinglePartQuery

oC_ReadingClauseSPoC_ReturnoC_ReadingClauseSPoC_UpdatingClauseSPoC_UpdatingClauseSPoC_Return

oC_MultiPartQuery

oC_ReadingClauseSPoC_UpdatingClauseSPoC_WithSPoC_SinglePartQuery

oC_UpdatingClause

oC_CreateoC_MergeoC_DeleteoC_SetoC_Remove

oC_ReadingClause

oC_MatchoC_UnwindoC_InQueryCall

oC_Match

OPTIONALSPMATCHSPoC_PatternSPoC_Where

OPTIONAL

'O''o''P''p''T''t''I''i''O''o''N''n''A''a''L''l'

MATCH

'M''m''A''a''T''t''C''c''H''h'

oC_Unwind

UNWINDSPoC_ExpressionSPASSPoC_Variable

UNWIND

'U''u''N''n''W''w''I''i''N''n''D''d'

AS

'A''a''S''s'

oC_Merge

MERGESPoC_PatternPartSPoC_MergeAction

MERGE

'M''m''E''e''R''r''G''g''E''e'

oC_MergeAction

ONSPMATCHSPoC_SetONSPCREATESPoC_Set

ON

'O''o''N''n'

CREATE

'C''c''R''r''E''e''A''a''T''t''E''e'

oC_Create

CREATESPoC_Pattern

oC_Set

SETSPoC_SetItemSP','SPoC_SetItem

SET

'S''s''E''e''T''t'

oC_SetItem

oC_PropertyExpressionSP'='SPoC_ExpressionoC_VariableSP'='SPoC_ExpressionoC_VariableSP'+='SPoC_ExpressionoC_VariableSPoC_NodeLabels

oC_Delete

DETACHSPDELETESPoC_ExpressionSP','SPoC_Expression

DETACH

'D''d''E''e''T''t''A''a''C''c''H''h'

DELETE

'D''d''E''e''L''l''E''e''T''t''E''e'

oC_Remove

REMOVESPoC_RemoveItemSP','SPoC_RemoveItem

REMOVE

'R''r''E''e''M''m''O''o''V''v''E''e'

oC_RemoveItem

oC_VariableoC_NodeLabelsoC_PropertyExpression

oC_InQueryCall

CALLSPoC_ExplicitProcedureInvocationSPYIELDSPoC_YieldItems

CALL

'C''c''A''a''L''l''L''l'

YIELD

'Y''y''I''i''E''e''L''l''D''d'

oC_StandaloneCall

CALLSPoC_ExplicitProcedureInvocationoC_ImplicitProcedureInvocationSPYIELDSP'*'oC_YieldItems

oC_YieldItems

oC_YieldItemSP','SPoC_YieldItemSPoC_Where

oC_YieldItem

oC_ProcedureResultFieldSPASSPoC_Variable

oC_With

WITHoC_ProjectionBodySPoC_Where

WITH

'W''w''I''i''T''t''H''h'

oC_Return

RETURNoC_ProjectionBody

RETURN

'R''r''E''e''T''t''U''u''R''r''N''n'

oC_ProjectionBody

SPDISTINCTSPoC_ProjectionItemsSPoC_OrderSPoC_SkipSPoC_Limit

DISTINCT

'D''d''I''i''S''s''T''t''I''i''N''n''C''c''T''t'

oC_ProjectionItems

'*'SP','SPoC_ProjectionItemoC_ProjectionItemSP','SPoC_ProjectionItem

oC_ProjectionItem

oC_ExpressionSPASSPoC_VariableoC_Expression

oC_Order

ORDERSPBYSPoC_SortItem','SPoC_SortItem

ORDER

'O''o''R''r''D''d''E''e''R''r'

BY

'B''b''Y''y'

oC_Skip

L_SKIPSPoC_Expression

L_SKIP

'S''s''K''k''I''i''P''p'

oC_Limit

LIMITSPoC_Expression

LIMIT

'L''l''I''i''M''m''I''i''T''t'

oC_SortItem

oC_ExpressionSPASCENDINGASCDESCENDINGDESC

ASCENDING

'A''a''S''s''C''c''E''e''N''n''D''d''I''i''N''n''G''g'

ASC

'A''a''S''s''C''c'

DESCENDING

'D''d''E''e''S''s''C''c''E''e''N''n''D''d''I''i''N''n''G''g'

DESC

'D''d''E''e''S''s''C''c'

oC_Where

WHERESPoC_Expression

WHERE

'W''w''H''h''E''e''R''r''E''e'

oC_Pattern

oC_PatternPartSP','SPoC_PatternPart

oC_PatternPart

oC_VariableSP'='SPoC_AnonymousPatternPartoC_AnonymousPatternPart

oC_AnonymousPatternPart

oC_PatternElement

oC_PatternElement

oC_NodePatternSPoC_PatternElementChain'('oC_PatternElement')'

oC_RelationshipsPattern

oC_NodePatternSPoC_PatternElementChain

oC_NodePattern

'('SPoC_VariableSPoC_NodeLabelsSPoC_PropertiesSP')'

oC_PatternElementChain

oC_RelationshipPatternSPoC_NodePattern

oC_RelationshipPattern

oC_LeftArrowHeadSPoC_DashSPoC_RelationshipDetailSPoC_DashSPoC_RightArrowHeadoC_LeftArrowHeadSPoC_DashSPoC_RelationshipDetailSPoC_DashoC_DashSPoC_RelationshipDetailSPoC_DashSPoC_RightArrowHeadoC_DashSPoC_RelationshipDetailSPoC_Dash

oC_RelationshipDetail

'['SPoC_VariableSPoC_RelationshipTypesSPoC_RangeLiteraloC_PropertiesSP']'

oC_Properties

oC_MapLiteraloC_Parameter

oC_RelationshipTypes

':'SPoC_RelTypeNameSP'|'':'SPoC_RelTypeName

oC_NodeLabels

oC_NodeLabelSPoC_NodeLabel

oC_NodeLabel

':'SPoC_LabelName

oC_RangeLiteral

'*'SPoC_IntegerLiteralSP'..'SPoC_IntegerLiteralSP

oC_LabelName

oC_SchemaName

oC_RelTypeName

oC_SchemaName

oC_PropertyExpression

oC_AtomSPoC_PropertyLookup

oC_Expression

oC_OrExpression

oC_OrExpression

oC_XorExpressionSPORSPoC_XorExpression

OR

'O''o''R''r'

oC_XorExpression

oC_AndExpressionSPXORSPoC_AndExpression

XOR

'X''x''O''o''R''r'

oC_AndExpression

oC_NotExpressionSPANDSPoC_NotExpression

AND

'A''a''N''n''D''d'

oC_NotExpression

NOTSPoC_ComparisonExpression

NOT

'N''n''O''o''T''t'

oC_ComparisonExpression

oC_StringListNullPredicateExpressionSPoC_PartialComparisonExpression

oC_PartialComparisonExpression

'='SPoC_StringListNullPredicateExpression'<>'SPoC_StringListNullPredicateExpression'<'SPoC_StringListNullPredicateExpression'>'SPoC_StringListNullPredicateExpression'<='SPoC_StringListNullPredicateExpression'>='SPoC_StringListNullPredicateExpression

oC_StringListNullPredicateExpression

oC_AddOrSubtractExpressionoC_StringPredicateExpressionoC_ListPredicateExpressionoC_NullPredicateExpression

oC_StringPredicateExpression

SPSTARTSSPWITHSPENDSSPWITHSPCONTAINSSPoC_AddOrSubtractExpression

STARTS

'S''s''T''t''A''a''R''r''T''t''S''s'

ENDS

'E''e''N''n''D''d''S''s'

CONTAINS

'C''c''O''o''N''n''T''t''A''a''I''i''N''n''S''s'

oC_ListPredicateExpression

SPINSPoC_AddOrSubtractExpression

IN

'I''i''N''n'

oC_NullPredicateExpression

SPISSPNULLSPISSPNOTSPNULL

IS

'I''i''S''s'

NULL

'N''n''U''u''L''l''L''l'

oC_AddOrSubtractExpression

oC_MultiplyDivideModuloExpressionSP'+'SPoC_MultiplyDivideModuloExpressionSP'-'SPoC_MultiplyDivideModuloExpression

oC_MultiplyDivideModuloExpression

oC_PowerOfExpressionSP'*'SPoC_PowerOfExpressionSP'/'SPoC_PowerOfExpressionSP'%'SPoC_PowerOfExpression

oC_PowerOfExpression

oC_UnaryAddOrSubtractExpressionSP'^'SPoC_UnaryAddOrSubtractExpression

oC_UnaryAddOrSubtractExpression

oC_NonArithmeticOperatorExpression'+''-'SPoC_NonArithmeticOperatorExpression

oC_NonArithmeticOperatorExpression

oC_AtomSPoC_ListOperatorExpressionSPoC_PropertyLookupSPoC_NodeLabels

oC_ListOperatorExpression

'['oC_Expression']''['oC_Expression'..'oC_Expression']'

oC_PropertyLookup

'.'SPoC_PropertyKeyName

oC_Atom

oC_LiteraloC_ParameteroC_CaseExpressionCOUNTSP'('SP'*'SP')'oC_ListComprehensionoC_PatternComprehensionoC_QuantifieroC_PatternPredicateoC_ParenthesizedExpressionoC_FunctionInvocationoC_ExistentialSubqueryoC_Variable

COUNT

'C''c''O''o''U''u''N''n''T''t'

oC_CaseExpression

CASESPoC_CaseAlternativeCASESPoC_ExpressionSPoC_CaseAlternativeSPELSESPoC_ExpressionSPEND

CASE

'C''c''A''a''S''s''E''e'

ELSE

'E''e''L''l''S''s''E''e'

END

'E''e''N''n''D''d'

oC_CaseAlternative

WHENSPoC_ExpressionSPTHENSPoC_Expression

WHEN

'W''w''H''h''E''e''N''n'

THEN

'T''t''H''h''E''e''N''n'

oC_ListComprehension

'['SPoC_FilterExpressionSP'|'SPoC_ExpressionSP']'

oC_PatternComprehension

'['SPoC_VariableSP'='SPoC_RelationshipsPatternSPoC_WhereSP'|'SPoC_ExpressionSP']'

oC_Quantifier

ALLSP'('SPoC_FilterExpressionSP')'ANYSP'('SPoC_FilterExpressionSP')'NONESP'('SPoC_FilterExpressionSP')'SINGLESP'('SPoC_FilterExpressionSP')'

ANY

'A''a''N''n''Y''y'

NONE

'N''n''O''o''N''n''E''e'

SINGLE

'S''s''I''i''N''n''G''g''L''l''E''e'

oC_FilterExpression

oC_IdInCollSPoC_Where

oC_PatternPredicate

oC_RelationshipsPattern

oC_ParenthesizedExpression

'('SPoC_ExpressionSP')'

oC_IdInColl

oC_VariableSPINSPoC_Expression

oC_FunctionInvocation

oC_FunctionNameSP'('SPDISTINCTSPoC_ExpressionSP','SPoC_ExpressionSP')'

oC_FunctionName

oC_NamespaceoC_SymbolicName

oC_ExistentialSubquery

EXISTSSP'{'SPoC_RegularQueryoC_PatternSPoC_WhereSP'}'

EXISTS

'E''e''X''x''I''i''S''s''T''t''S''s'

oC_ExplicitProcedureInvocation

oC_ProcedureNameSP'('SPoC_ExpressionSP','SPoC_ExpressionSP')'

oC_ImplicitProcedureInvocation

oC_ProcedureName

oC_ProcedureResultField

oC_SymbolicName

oC_ProcedureName

oC_NamespaceoC_SymbolicName

oC_Namespace

oC_SymbolicName'.'

oC_Variable

oC_SymbolicName

oC_Literal

oC_BooleanLiteralNULLoC_NumberLiteralStringLiteraloC_ListLiteraloC_MapLiteral

oC_BooleanLiteral

TRUEFALSE

TRUE

'T''t''R''r''U''u''E''e'

FALSE

'F''f''A''a''L''l''S''s''E''e'

oC_NumberLiteral

oC_DoubleLiteraloC_IntegerLiteral

oC_IntegerLiteral

HexIntegerOctalIntegerDecimalInteger

HexInteger

'0x'HexDigit

DecimalInteger

ZeroDigitNonZeroDigitDigit

OctalInteger

'0o'OctDigit

HexLetter

'A''a''B''b''C''c''D''d''E''e''F''f'

HexDigit

DigitHexLetter

Digit

ZeroDigitNonZeroDigit

NonZeroDigit

NonZeroOctDigit'8''9'

NonZeroOctDigit

'1''2''3''4''5''6''7'

OctDigit

ZeroDigitNonZeroOctDigit

ZeroDigit

'0'

oC_DoubleLiteral

ExponentDecimalRealRegularDecimalReal

ExponentDecimalReal

DigitDigit'.'Digit'.'Digit'E''e''-'Digit

RegularDecimalReal

Digit'.'Digit

StringLiteral

'"'StringLiteral_0EscapedChar'"''''StringLiteral_1EscapedChar'''

EscapedChar

'\''\'''''"''B''b''F''f''N''n''R''r''T''t''U''u'HexDigitHexDigitHexDigitHexDigit'U''u'HexDigitHexDigitHexDigitHexDigitHexDigitHexDigitHexDigitHexDigit

oC_ListLiteral

'['SPoC_ExpressionSP','SPoC_ExpressionSP']'

oC_MapLiteral

'{'SPoC_PropertyKeyNameSP':'SPoC_ExpressionSP','SPoC_PropertyKeyNameSP':'SPoC_ExpressionSP'}'

oC_PropertyKeyName

oC_SchemaName

oC_Parameter

'$'oC_SymbolicNameDecimalInteger

oC_SchemaName

oC_SymbolicNameoC_ReservedWord

oC_ReservedWord

ALLASCASCENDINGBYCREATEDELETEDESCDESCENDINGDETACHEXISTSLIMITMATCHMERGEONOPTIONALORDERREMOVERETURNSETL_SKIPWHEREWITHUNIONUNWINDANDASCONTAINSDISTINCTENDSINISNOTORSTARTSXORFALSETRUENULLCONSTRAINTDOFORREQUIREUNIQUECASEWHENTHENELSEENDMANDATORYSCALAROFADDDROP

CONSTRAINT

'C''c''O''o''N''n''S''s''T''t''R''r''A''a''I''i''N''n''T''t'

DO

'D''d''O''o'

FOR

'F''f''O''o''R''r'

REQUIRE

'R''r''E''e''Q''q''U''u''I''i''R''r''E''e'

UNIQUE

'U''u''N''n''I''i''Q''q''U''u''E''e'

MANDATORY

'M''m''A''a''N''n''D''d''A''a''T''t''O''o''R''r''Y''y'

SCALAR

'S''s''C''c''A''a''L''l''A''a''R''r'

OF

'O''o''F''f'

ADD

'A''a''D''d''D''d'

DROP

'D''d''R''r''O''o''P''p'

oC_SymbolicName

UnescapedSymbolicNameEscapedSymbolicNameHexLetterCOUNTFILTEREXTRACTANYNONESINGLE

FILTER

'F''f''I''i''L''l''T''t''E''e''R''r'

EXTRACT

'E''e''X''x''T''t''R''r''A''a''C''c''T''t'

UnescapedSymbolicName

IdentifierStartIdentifierPart

IdentifierStart

ID_StartPc

IdentifierPart

ID_ContinueSc

EscapedSymbolicName

'`'EscapedSymbolicName_0'`'

SP

WHITESPACE

WHITESPACE

SPACETABLFVTFFCRFSGSRSUS'\u1680''\u180e''\u2000''\u2001''\u2002''\u2003''\u2004''\u2005''\u2006''\u2008''\u2009''\u200a''\u2028''\u2029''\u205f''\u3000''\u00a0''\u2007''\u202f'Comment

Comment

'/*'Comment_1'*'Comment_2'*/''//'Comment_3CRLFEOF

oC_LeftArrowHead

'<''\u27e8''\u3008''\ufe64''\uff1c'

oC_RightArrowHead

'>''\u27e9''\u3009''\ufe65''\uff1e'

oC_Dash

'-''\u00ad''\u2010''\u2011''\u2012''\u2013''\u2014''\u2015''\u2212''\ufe58''\ufe63''\uff0d'

FF

[ ]

EscapedSymbolicName_0

not[`]

RS

[\u001E]

ID_Continue

[p{ID_Continue}]

Comment_1

not[*]

StringLiteral_1

not['\]

Comment_3

not[\n\r]

Comment_2

not[/]

GS

[\u001D]

FS

[\u001C]

CR

[\r]

Sc

[p{Sc}]

SPACE

[ ]

Pc

[p{Pc}]

TAB

[\t]

StringLiteral_0

not["\]

LF

[\n]

VT

[\u000B]

US

[\u001F]

ID_Start

[p{ID_Start}]