Atom
EBNF
Atom = Literal
| Parameter
| LegacyParameter
| CaseExpression
| ((C,O,U,N,T), [SP], '(', [SP], '*', [SP], ')')
| ListComprehension
| PatternComprehension
| LegacyListExpression
| Reduce
| ((A,L,L), [SP], '(', [SP], FilterExpression, [SP], ')')
| ((A,N,Y), [SP], '(', [SP], FilterExpression, [SP], ')')
| ((N,O,N,E), [SP], '(', [SP], FilterExpression, [SP], ')')
| ((S,I,N,G,L,E), [SP], '(', [SP], FilterExpression, [SP], ')')
| ShortestPathPattern
| RelationshipsPattern
| ParenthesizedExpression
| FunctionInvocation
| Variable
;
ListComprehension = '[', [SP], FilterExpression, [[SP], '|', [SP], Expression], [SP], ']' ;
LegacyListExpression = ((F,I,L,T,E,R), [SP], '(', [SP], FilterExpression, [SP], ')')
| ((E,X,T,R,A,C,T), [SP], '(', [SP], FilterExpression, [SP], [[SP], '|', Expression], ')')
;
Reduce = (R,E,D,U,C,E), [SP], '(', Variable, '=', Expression, ',', IdInColl, '|', Expression, ')' ;
Variable = SymbolicName ;
IdInColl = Variable, SP, (I,N), SP, Expression ;
ShortestPathPattern = ((S,H,O,R,T,E,S,T,P,A,T,H), '(', PatternElement, ')')
| ((A,L,L,S,H,O,R,T,E,S,T,P,A,T,H,S), '(', PatternElement, ')')
;
RelationshipsPattern = NodePattern, { [SP], PatternElementChain }- ;
PatternElementChain = RelationshipPattern, [SP], NodePattern ;
ParenthesizedExpression = '(', [SP], Expression, [SP], ')' ;
Referenced from