-
Notifications
You must be signed in to change notification settings - Fork 0
Syntax
ashigeru edited this page Sep 14, 2010
·
12 revisions
Query:
SelectStatement
ApplyStatement
SelectStatement:
'SELECT' TermList Source Filter? Order?
ApplyStatement:
'APPLY' Procedure Source Filter? Order?
Procedure:
Name '(' TermList? ')'
Name '(' TermList ')' 'EVERY' IntegerLiteral
Source:
'FROM' Type Name
Filter:
'WHERE' Constraint
Order:
'ORDER' 'BY' OrderCriterionList
OrderCriterionList:
OrderCriterionList ',' OrderCriterion
OrderCriterion
OrderCriterion:
Term 'ASC'
Term 'DESC'
Constraint:
Or
Or:
Or 'OR' And
And
And:
And 'AND' Not
Not
Not:
'NOT' Not
Atom
Atom:
'(' Constraint ')'
Relational
Quantification
Relational:
Term Operator Term
Quantification:
'EXISTS' Name 'IN' Primary Atom
Term:
Additive
Additive:
Additive '+' Multiplicative
Additive '-' Multiplicative
Multiplicative
Multiplicative:
Multiplicative '*' Unary
Multiplicative '/' Unary
Multiplicative '%' Unary
Unary
Unary:
'+' Unary
'-' Unary
Primary
Primary:
'(' Term ')'
Literal
Property
Construct
List
Name
Operator:
'=='
'!='
'<'
'>'
'<='
'>='
'LIKE'
'IN'
Property:
Name '.' Name
Literal:
IntegerLiteral
RealNumberLiteral
BooleanLiteral
StringLiteral
NullLiteral
Construct:
Name '(' TermList ')'
List:
'[' TermList? ']'
TermList:
Term ',' TermList
Term
IntegerLiteral:
INTEGER
RealNumberLiteral:
REAL_NUMBER
BooleanLiteral: one of
TRUE FALSE
StringLiteral:
STRING
NullLiteral:
NULL
Type:
QualifiedName
QualifiedName:
QualifiedName '.' Name
Name
Name:
IDENTIFIER