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