Specification
TODO
Grammar Definition
Expression:
QueryExpression | SelectExpression
SelectExpression:
( AsDictionaryExpression | AsSequenceExpression )
AsDictionaryExpression:
DictionaryPropertyExpression , DictionaryPropertyExpression*
DictionaryPropertyExpression:
PropertyNameExpression : SelectQueryExpression
PropertyNameExpression:
StringLiteral | SignedIntLiteral | FloatLiteral
AsSequenceExpression:
SequenceEntryExpression , SequenceEntryExpression*
SequenceEntryExpression:
SelectQueryExpression
QueryExpression:
(StreamSingleElementExpression | StreamMultiElementExpression) QueryStageExpression*
QueryStageExpression:
DictionaryQueryExpression | SequenceQueryExpression | TypeMatchExpression
DictionaryQueryExpression:
{ (StringLiteral | SignedIntLiteral | FloatLiteral) }
SequenceQueryExpression:
( SequenceIndexExpression )
SequenceIndexExpression:
UnsignedIntLiteral | AnyIndex
AnyIndex:
?
StreamSingleElementExpression:
# ([0-9][0-9]*)?
StreamMultiElementExpression:
$
TypeMatchExpression:
RequireTypeExpression | TypeOrNullExpression
RequireTypeExpression:
→ TypeSpecification
TypeOrNullExpression:
→? TypeSpecification
TypeSpecifications:
number
| int
| uint
| nint
| float
| string
| dictionary
| sequence
| tag
| tag$ [0-9][0-9]*
| bool
| datetime
| timestamp
| uri
| enccbor
| unknown
| null