Expr ::= OperatorExpr | QuantifiedExpr

OperatorExpr ::= PathExpr
                 | Operator OperatorExpr
                 | OperatorExpr Operator OperatorExpr?
                 | OperatorExpr "BETWEEN" OperatorExpr "AND" OperatorExpr

QuantifiedExpr::= ( "SOME" | "EVERY" | ( "SOME" "AND" "EVERY" ) ) Variable "IN" Expr ( "," Variable "IN" Expr )* "SATISFIES" Expr ("END")?

PathExpr ::= PrimaryExpr ("." Identifier | "[" Expr (":" (Expr)? )? "]")*

PrimaryExpr ::=  Literal
                |VariableRef
                |ParameterRef
                |ParenthesizedExpr
                |FunctionCall
                |CaseExpr
                |Constructor

Literal ::=  StringLiteral
            |IntegerLiteral
            |FloatLiteral
            |DoubleLiteral
            |"NULL"
            |"MISSING"
            |"TRUE"
            |"FALSE"

ParenthesizedExpr ::= ("(" Expr ")") | Subquery

FunctionCall ::= OrdinaryFunctionCall | AggregateFunctionCall | WindowFunctionCall

OrdinaryFunctionCall ::= (DataverseName ".")? Identifier "(" Expr ("," Expr)* ")"

AggregateFunctionCall ::= Identifier "(" ("DISTINCT")? Expr ")" ("FILTER" "(" "WHERE" Expr ")")?

CaseExpr ::= SimpleCaseExpr | SearchedCaseExpr

SimpleCaseExpr ::= "CASE" Expr ("WHEN" Expr "THEN" Expr)+ ("ELSE" Expr)? "END"

SearchedCaseExpr ::= "CASE" ("WHEN" Expr "THEN" Expr)+ ("ELSE" Expr)? "END"

Constructor ::= ObjectConstructor | ArrayConstructor | ParenthesizedArrayConstructor | MultisetConstructor

ObjectConstructor ::= "{" ( Expr ( ":" Expr )? ( "," Expr ( ":" Expr )? )* )? "}"

ArrayConstructor ::= "[" Expr ("," Expr)* "]"

ParenthesizedArrayConstructor ::= "(" Expr ("," Expr)+ ")"

MultisetConstructor ::= "{{" Expr ("," Expr)* "}}"

Query ::= (Expr | Selection)

Selection ::= (WithClause | LetClause)? QueryBlock UnionOption* OrderByClause? ( LimitClause | OffsetClause )?

QueryBlock ::= SelectClause ( ( LetClause WhereClause? ) | StreamGenerator )?
             | StreamGenerator SelectClause

StreamGenerator::= FromClause LetClause? WhereClause? (GroupByClause LetClause? HavingClause?)?

SelectClause ::= "SELECT" ("DISTINCT" | "ALL")? ( "VALUE" Expr | Projection ("," Projection)* ( "EXCLUDE" Identifier (("," | ".") Identifier)* )?  )

Projection ::= (Expr ("AS"? Identifier)?) | (VariableRef "." "*") | "*"

FromClause ::= "FROM" FromTerm ("," FromTerm)*

FromTerm ::= NamedExpr (JoinStep | UnnestStep)*

NamedExpr ::= Expr ("AS"? Variable)?

JoinStep ::= ( ("INNER" | ( ( "LEFT" | "RIGHT" ) "OUTER"?))? "JOIN" NamedExpr "ON" Expr ) |
             ( "CROSS" "JOIN" NamedExpr )

UnnestStep ::= ("INNER" | ( "LEFT" "OUTER"?))? "UNNEST" NamedExpr

LetClause ::= "LET" Variable "=" Expr ("," Variable "=" Expr)*

WhereClause ::= "WHERE" Expr

GroupByClause ::= "GROUP BY" GroupingElement ("," GroupingElement)* GroupAsClause?

GroupingElement ::= OrdinaryGroupingSet
              | ( "GROUPING" "SETS" "(" GroupingElement ("," GroupingElement)* ")" )
              | ( ( "ROLLUP" | "CUBE" ) "(" OrdinaryGroupingSet ( "," OrdinaryGroupingSet )* ")" )
              | ( "(" ")" )

OrdinaryGroupingSet ::= NamedExpr | ( "(" NamedExpr ( "," NamedExpr )* ")")

GroupAsClause ::= "GROUP AS" Variable

HavingClause ::= "HAVING" Expr

Selection ::= WithClause? QueryBlock UnionOption* OrderByClause? ( LimitClause | OffsetClause )?

UnionOption ::= "UNION ALL" (QueryBlock | Subquery)

WithClause ::= "WITH" Variable "AS" Expr ("," Variable "AS" Expr)*

OrderbyClause ::= "ORDER BY" Expr ( "ASC" | "DESC" )? ( "NULLS" ( "FIRST" | "LAST" ) )? ( "," Expr ( "ASC" | "DESC" )? ( "NULLS" ( "FIRST" | "LAST" ) )? )*

LimitClause ::= "LIMIT" Expr OffsetClause?

OffsetClause ::= "OFFSET" Expr

Subquery ::= "(" Selection ")"

WindowFunctionCall ::= WindowFunctionType "(" WindowFunctionArguments ")" WindowFunctionOptions? "OVER" (Variable "AS")? "(" WindowDefinition")"

WindowFunctionType ::= AggregateFunction | WindowFunction

WindowFunctionArguments ::=  ( ("DISTINCT")? Expr | (Expr ("," Expr ("," Expr)? )? )? )

WindowFunctionOptions ::= ("FROM" ( "FIRST" | "LAST" ))? (( "RESPECT" | "IGNORE" ) "NULLS")?

WindowDefinition ::= WindowPartitionClause? (WindowOrderClause (WindowFrameClause WindowFrameExclusion?)?)?

WindowPartitionClause ::= "PARTITION" "BY" Expr ("," Expr)*

WindowOrderClause ::= "ORDER" "BY" Expr ("ASC" | "DESC")? ( "NULLS" ( "FIRST" | "LAST" ) )? ("," Expr ("ASC" | "DESC")? ( "NULLS" ( "FIRST" | "LAST" ) )? )*

WindowFrameClause ::= ("ROWS" | "RANGE" | "GROUPS") WindowFrameExtent

WindowFrameExtent ::= ( ( "UNBOUNDED" | Expr ) "PRECEDING" | "CURRENT" "ROW" ) |
      "BETWEEN" ( "UNBOUNDED" "PRECEDING" | "CURRENT" "ROW" | Expr ( "PRECEDING" | "FOLLOWING" ) )
      "AND" ( "UNBOUNDED" "FOLLOWING" | "CURRENT" "ROW" | Expr ( "PRECEDING" | "FOLLOWING" ) )

WindowFrameExclusion ::= "EXCLUDE" ( "CURRENT" "ROW" | "GROUP" | "TIES" | "NO" "OTHERS" )

Stmnt::= (SingleStmnt ";")+ "EOF"

SingleStmnt ::= UseStmnt
               |SetStmnt
               |FunctionDeclaration
               |Query
               |CreateStmnt
               |DropStmnt
               |LoadStmnt
               |InsertStmnt
               |UpsertStmnt
               |DeleteStmnt

UseStmnt ::= "USE" DataverseName

SetStmnt ::= "SET" Identifier StringLiteral

CreateStmnt ::= CreateDataverse
              | CreateType
              | CreateDataset
              | CreateIndex
              | CreateSynonym
              | CreateFunction
              | CreateView

DataverseName ::= Identifier ("." Identifier)*

QualifiedName ::= (DataverseName ".")? Identifier

DoubleQualifiedName ::= (DataverseName ".")? Identifier "." Identifier

CreateDataverse ::= "CREATE" "DATAVERSE" DataverseName ("IF" "NOT" "EXISTS")?

CreateType ::= "CREATE" "TYPE" QualifiedName ("IF" "NOT" "EXISTS")? "AS" ObjectTypeDef

ObjectTypeDef ::= ("CLOSED" | "OPEN")? "{" ( ObjectField ("," ObjectField)* )? "}"

ObjectField ::= Identifier ":" Identifier "?"?

TypeExpr ::= ObjectTypeDef
            | ArrayTypeDef
            | MultisetTypeDef
            | TypeReference

ArrayTypeDef ::= "[" TypeExpr "]"

MultisetTypeDef ::= "{{" TypeExpr "}}"

TypeReference ::= QualifiedName

CreateDataset ::= CreateInternalDataset | CreateExternalDataset

CreateInternalDataset ::= ( "INTERNAL" )? "DATASET" QualifiedName DatasetTypeDef ( "WITH" "META"  DatasetTypeDef )?
                            ("IF" "NOT" "EXISTS")?
                            PrimaryKey
                            ( "HINTS" Properties )?
                            ( "WITH" "FILTER" "ON" NestedField )?
                            ( "WITH" ObjectConstructor )?

CreateExternalDataset ::= "EXTERNAL" "DATASET" QualifiedName DatasetTypeDef
                            ("IF" "NOT" "EXISTS")?
                            "USING" AdapterName Configuration
                            ( "HINTS" Properties )?
                            ( "WITH" ObjectConstructor )?

DatasetTypeDef ::= ( "(" TypeReference ")" )
                | ( "(" DatasetFieldDef ("," DatasetFieldDef )* ")" ( ("CLOSED" | "OPEN") "TYPE" )? )

DatasetFieldDef ::= Identifier TypeReference ("NOT" "UNKNOWN")?

PrimaryKey ::= "PRIMARY" "KEY" NestedField ( "," NestedField )* ("AUTOGENERATED")?

NestedField ::= Identifier ( "." Identifier )*

AdapterName ::= Identifier

Configuration::= "(" (KeyValuePair ("," KeyValuePair)*)? ")"

KeyValuePair ::= "(" StringLiteral "=" StringLiteral ")"

Properties ::= ( "(" Identifier "=" ( StringLiteral | IntegerLiteral ) ( "," Identifier "=" ( StringLiteral | IntegerLiteral ) )* ")" )?

CreateIndex ::= CreateSecondaryIndex | CreatePrimaryKeyIndex

CreateSecondaryIndex ::= "CREATE" "INDEX" Identifier ("IF" "NOT" "EXISTS")? "ON" QualifiedName
                       "(" IndexedElement ( "," IndexedElement )* ")" ("TYPE" IndexType)? ("ENFORCED")?
                       (( "EXCLUDE" | "INCLUDE" ) "UNKNOWN" "KEY")?

CreatePrimaryKeyIndex ::= "CREATE" "PRIMARY" "INDEX" Identifier? ("IF" "NOT" "EXISTS")? "ON" QualifiedName ("TYPE" "BTREE")?

IndexedElement ::= ArrayIndexElement
               | IndexField
               | "(" ( ArrayIndexElement | IndexField ) ")"

ArrayIndexElement ::= "UNNEST" NestedField ( "UNNEST" NestedField )*
                      ( ( ":" TypeReference ) | ( "SELECT" NestedField ( ":" TypeReference )? ( "," NestedField ( ":" TypeReference )? )* ) )?

IndexField ::= NestedField ( ":" TypeReference "?"? )?

IndexType ::= "BTREE"
             |"RTREE"
             |"KEYWORD"
             |"FULLTEXT"
             |"NGRAM" "(" IntegerLiteral ")"

CreateSynonym ::= "CREATE" "SYNONYM" QualifiedName "FOR" QualifiedName ("IF" "NOT" "EXISTS")?

FunctionDeclaration ::= "DECLARE" "FUNCTION" Identifier "(" ( (Identifier ("," Identifier)*) | "..." )? ")" "{" Expr "}"

CreateFunction ::= "CREATE" ("OR" "REPLACE")? "FUNCTION" QualifiedName "(" FunctionParameters? ")" ("IF" "NOT" "EXISTS")?
                  ( ("{" Expr "}") | ExternalFunctionDef )

FunctionParameters ::=  ( Identifier ((":")? TypeExpr)? ("," Identifier ((":")? TypeExpr)? )* ) | "..."

ExternalFunctionDef ::= ("RETURNS" TypeExpr)? "AS" StringLiteral ("," StringLiteral )* "AT" QualifiedName ("WITH" ObjectConstructor)?

CreateView ::= "CREATE" ("OR" "REPLACE")? "VIEW" QualifiedName ("IF" "NOT" "EXISTS")? "AS" Selection

DropStmnt ::= "DROP" ("DATAVERSE" DataverseName
                     | ("TYPE" |"DATASET" |"SYNONYM" |"VIEW") QualifiedName
                     | "INDEX" DoubleQualifiedName
                     | "FUNCTION" FunctionSignature ) ("IF" "EXISTS")?

FunctionSignature ::= QualifiedName ( ( "(" ( FunctionParameters? | IntegerLiteral ) ")" ) | ("@" IntegerLiteral) )

LoadStmnt ::= "LOAD" "DATASET" QualifiedName "USING" AdapterName Configuration ("PRE-SORTED")?

InsertStmnt ::= "INSERT" "INTO" QualifiedName ("AS" Variable)? Query ("RETURNING" Expr)?

UpsertStmnt ::= "UPSERT" "INTO" QualifiedName ("AS" Variable)? Query ("RETURNING" Expr)?

DeleteStmnt ::= "DELETE" "FROM" QualifiedName (("AS")? Variable)? ("WHERE" Expr)?
