Documentation ¶
Index ¶
- func Build() (*participle.Parser[Cypher], error)
- type Atom
- type ComparisonExpression
- type Create
- type Cypher
- type Debug
- type Entity
- type Expression
- type FunctionInvocation
- type Literal
- type MapLiteral
- type Match
- type MathExpression
- type Node
- type OrXorAndNotExpression
- type Path
- type ProjectionBody
- type ProjectionItem
- type ProjectionItems
- type Property
- type PropertyExpression
- type PropertyOrLabelsExpression
- type Query
- type RelationshipDetail
- type RelationshipPattern
- type Return
- type Set
- type SetItem
- type StringListNullOperatorExpression
- type Where
- type With
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Atom ¶
type Atom struct { Literal *Literal `parser:"( @@"` Parameter string `parser:"| @('$' (SymbolicName|DecimalInteger) )"` // CaseExpression // COUNT... // ListComprehension // PatternComprehension // ALL... // ANY... // NONE... // SINGLE... Relationship *RelationshipPattern `parser:"| @@"` Expression *Expression `parser:"| '(' @@ ')'"` Function *FunctionInvocation `parser:"| @@"` Variable string `parser:"| @SymbolicName )!"` }
type ComparisonExpression ¶
type ComparisonExpression struct { AOS1 *MathExpression `parser:"@@"` Relation string `parser:"( ('=' | '<>' | '<=' | '>=' | '<' | '>')!"` AOS2 *MathExpression `parser:"@@ )*"` }
type Entity ¶
type Entity struct { Node *Node `parser:"'(' @@* ')'"` // @@* as empty node is valid Relation *RelationshipPattern `parser:"| @@"` }
type Expression ¶
type Expression struct {
E *OrXorAndNotExpression `parser:"@@"`
}
type FunctionInvocation ¶
type FunctionInvocation struct { // FunctionName string `parser:"( ( @(SymbolicName '.')* @SymbolicName ) | 'EXISTS' )!"` FunctionName string `parser:"( ( @SymbolicName ) | 'EXISTS' )!"` Expression []*Expression `parser:"'(' 'DISTINCT'? @@? (',' @@)* ')'"` }
type Literal ¶
type Literal struct { NumberLiteral string `parser:" @(Float|HexInteger|OctalInteger|DecimalInteger)"` StringLiteral string `parser:"| @StringLiteral"` BooleanLiteral string `parser:"| @BooleanLiteral"` Null string `parser:"| 'null'"` MapLiteral []*MapLiteral `parser:"| '{' @@ (',' @@)* '}'"` }
type MapLiteral ¶
type MapLiteral struct { Key string `parser:"@SymbolicName ':'"` E *Expression `parser:"@@"` }
type MathExpression ¶
type MathExpression struct { Add *StringListNullOperatorExpression `parser:" '+' @@"` Subs *StringListNullOperatorExpression `parser:"| '-' @@"` Mult *StringListNullOperatorExpression `parser:"| '*' @@"` Div *StringListNullOperatorExpression `parser:"| '/' @@"` Mod *StringListNullOperatorExpression `parser:"| '%' @@"` Pow *StringListNullOperatorExpression `parser:"| '^' @@"` SLNOE *StringListNullOperatorExpression `parser:"| @@"` }
type OrXorAndNotExpression ¶
type OrXorAndNotExpression struct { OR *ComparisonExpression `parser:" 'OR' @@"` XOR *ComparisonExpression `parser:"| 'XOR' @@"` AND *ComparisonExpression `parser:"| 'AND' @@"` NOT *ComparisonExpression `parser:"| 'NOT' @@"` COMP *ComparisonExpression `parser:"| @@"` }
type ProjectionBody ¶
type ProjectionBody struct { PIS *ProjectionItems `parser:"'DISTINCT'? @@"` Skip *Expression `parser:"('SKIP' @@)?"` Limit *Expression `parser:"('LIMIT' @@)?"` }
type ProjectionItem ¶
type ProjectionItem struct { Expression *Expression `parser:"@@"` AsVariable string `parser:"('AS' @SymbolicName)?"` }
type ProjectionItems ¶
type ProjectionItems struct {
PI []*ProjectionItem `parser:"('*'|@@) (',' @@)*"`
}
type Property ¶
type Property struct { MapLiteral []*MapLiteral `parser:"'{' @@ (',' @@)* '}'"` Parameter string `parser:"| @('$' (SymbolicName|DecimalInteger) )"` }
type PropertyExpression ¶
type PropertyExpression struct { Atom *Atom `parser:"@@"` PropertyLookup string `parser:"('.' @(SymbolicName|ReservedWord) )+"` }
PropertyExpression needs at least one propery
type PropertyOrLabelsExpression ¶
type PropertyOrLabelsExpression struct { Atom *Atom `parser:"@@"` PropertyLookup string `parser:"('.' @(SymbolicName|ReservedWord) )*"` Labels []string `parser:"(':' @(SymbolicName|ReservedWord) )*"` }
PropertyOrLabelsExpression can omit property
type RelationshipDetail ¶
type RelationshipDetail struct { Variable string `parser:"@SymbolicName?"` RelType []string `parser:"(':' @(SymbolicName|ReservedWord) )? ('|' ':'? @(SymbolicName|ReservedWord) )*"` RangeLiteral string `parser:"('*' @(HexInteger|OctalInteger|DecimalInteger)? @('.' '.')? @(HexInteger|OctalInteger|DecimalInteger)* )?"` Prop *Property `parser:"@@?"` }
type RelationshipPattern ¶
type RelationshipPattern struct { Pre string `parser:"@('<')? '-'"` RD *RelationshipDetail `parser:"'[' @@? ']'"` Post string `parser:"'-' @('>')?"` }
type Return ¶
type Return struct {
PB *ProjectionBody `parser:"@@"`
}
type SetItem ¶
type SetItem struct { Property *PropertyExpression `parser:"( ( ( @@ '=' )"` Variable string `parser:" | ( @SymbolicName ('='|'+=') ) )!"` Expression *Expression `parser:"@@ )"` Variable2 string `parser:"| ( @SymbolicName"` NodeLabels []string `parser:"(':' @(SymbolicName|ReservedWord) )+ )"` }
type StringListNullOperatorExpression ¶
type StringListNullOperatorExpression struct {
POL *PropertyOrLabelsExpression `parser:"@@"`
}
type Where ¶
type Where struct {
E *Expression `parser:"@@"`
}
type With ¶
type With struct { PB *ProjectionBody `parser:"@@"` Where *Where `parser:"('WHERE' @@)?"` }
Click to show internal directories.
Click to hide internal directories.