Module:Module ::= ( 'jsoniq' ( 'encoding' StringLiteral | 'version' StringLiteral ( 'encoding' StringLiteral )? ) ';' )? ( LibraryModule | MainModule )no referencesMainModule:MainModule
::= Prolog Exprreferenced by:ModuleLibraryModule:LibraryModule
::= 'module' 'namespace' NCName '=' URILiteral ';' Prologreferenced by:ModuleProlog:Prolog ::= ( ( DefaultCollationDecl | OrderingModeDecl | EmptyOrderDecl | DecimalFormatDecl | ModuleImport ) ';' )* ( ( FunctionDecl | VariableDecl ) ';' )*referenced by:LibraryModuleMainModuleDefaultCollationDecl:DefaultCollationDecl
::= 'declare' 'default' 'collation' URILiteralreferenced by:PrologOrderingModeDecl:OrderingModeDecl
::= 'declare' 'ordering' ( 'ordered' | 'unordered' )referenced by:PrologEmptyOrderDecl:EmptyOrderDecl
::= 'declare' 'default' 'order' 'empty' ( 'greatest' | 'least' )referenced by:PrologDecimalFormatDecl:DecimalFormatDecl
::= 'declare' ( 'decimal-format' ( NCName ':' )? NCName | 'default' 'decimal-format' ) ( DFPropertyName '=' StringLiteral )*referenced by:PrologDFPropertyName:DFPropertyName
::= 'decimal-separator'
| 'grouping-separator'
| 'infinity'
| 'minus-sign'
| 'NaN'
| 'percent'
| 'per-mille'
| 'zero-digit'
| 'digit'
| 'pattern-separator'referenced by:DecimalFormatDeclModuleImport:ModuleImport
::= 'import' 'module' ( 'namespace' NCName '=' )? URILiteral ( 'at' URILiteral ( ',' URILiteral )* )?referenced by:PrologVarDecl:VarDecl ::= 'declare' 'variable' VarRef ( 'as' SequenceType )? ( ':=' ExprSingle | 'external' ( ':=' ExprSingle )? )no referencesFunctionDecl:FunctionDecl
::= 'declare' 'function' ( NCName ':' )? NCName '(' ParamList? ')' ( 'as' SequenceType )? ( '{' Expr '}' | 'external' )referenced by:PrologParamList:ParamList
::= '$' NCName ( 'as' SequenceType )? ( ',' '$' NCName ( 'as' SequenceType )? )*referenced by:FunctionDeclExpr:Expr ::= ExprSingle ( ',' ExprSingle )*referenced by:ArrayConstructorFunctionDeclIfExprMainModuleObjectConstructorOrderedExprParenthesizedExprPredicateSwitchExprTryCatchExprTypeswitchExprUnorderedExprExprSingle:ExprSingle
::= FLWORExpr
| QuantifiedExpr
| SwitchExpr
| TypeswitchExpr
| IfExpr
| TryCatchExpr
| OrExprreferenced by:ArgumentArrayLookupCaseClauseExprFLWORExprForClauseGroupByClauseIfExprLetClauseOrderByClausePairConstructorQuantifiedExprSwitchCaseClauseSwitchExprTypeswitchExprVarDeclWhereClauseFLWORExpr:FLWORExpr
::= ( ForClause | LetClause ) ( ForClause | LetClause | WhereClause | GroupByClause | OrderByClause | CountClause )* 'return' ExprSinglereferenced by:ExprSingleForClause:ForClause
::= 'for' VarRef ( 'as' SequenceType )? ( 'allowing' 'empty' )? ( 'at' VarRef )? 'in' ExprSingle ( ',' VarRef ( 'as' SequenceType )? ( 'allowing' 'empty' )? ( 'at' VarRef )? 'in' ExprSingle )*referenced by:FLWORExprLetClause:LetClause
::= 'let' VarRef ( 'as' SequenceType )? ':=' ExprSingle ( ',' VarRef ( 'as' SequenceType )? ':=' ExprSingle )*referenced by:FLWORExprCountClause:CountClause
::= 'count' VarRefreferenced by:FLWORExprWhereClause:WhereClause
::= 'where' ExprSinglereferenced by:FLWORExprGroupByClause:GroupByClause
::= 'group' 'by' VarRef ( ( 'as' SequenceType )? ':=' ExprSingle )? ( 'collation' URILiteral )? ( ',' VarRef ( ( 'as' SequenceType )? ':=' ExprSingle )? ( 'collation' URILiteral )? )*referenced by:FLWORExprOrderByClause:OrderByClause
::= ( 'order' 'by' | 'stable' 'order' 'by' ) ExprSingle ( 'ascending' | 'descending' )? ( 'empty' ( 'greatest' | 'least' ) )? ( 'collation' URILiteral )? ( ',' ExprSingle ( 'ascending' | 'descending' )? ( 'empty' ( 'greatest' | 'least' ) )? ( 'collation' URILiteral )? )*referenced by:FLWORExprQuantifiedExpr:QuantifiedExpr
::= ( 'some' | 'every' ) VarRef ( 'as' SequenceType )? 'in' ExprSingle ( ',' VarRef ( 'as' SequenceType )? 'in' ExprSingle )* 'satisfies' ExprSinglereferenced by:ExprSingleSwitchExpr:SwitchExpr
::= 'switch' '(' Expr ')' SwitchCaseClause+ 'default' 'return' ExprSinglereferenced by:ExprSingleSwitchCaseClause:SwitchCaseClause
::= ( 'case' ExprSingle )+ 'return' ExprSinglereferenced by:SwitchExprTypeswitchExpr:TypeswitchExpr
::= 'typeswitch' '(' Expr ')' CaseClause+ 'default' VarRef? 'return' ExprSinglereferenced by:ExprSingleCaseClause:CaseClause
::= 'case' ( VarRef 'as' )? SequenceType ( '|' SequenceType )* 'return' ExprSinglereferenced by:TypeswitchExprIfExpr:IfExpr ::= 'if' '(' Expr ')' 'then' ExprSingle 'else' ExprSinglereferenced by:ExprSingleTryCatchExpr:TryCatchExpr
::= 'try' '{' Expr '}' 'catch' '*' '{' Expr '}'referenced by:ExprSingleOrExpr:OrExpr ::= AndExpr ( 'or' AndExpr )*referenced by:ExprSingleAndExpr:AndExpr ::= NotExpr ( 'and' NotExpr )*referenced by:OrExprNotExpr:NotExpr ::= 'not'? ComparisonExprreferenced by:AndExprComparisonExpr:ComparisonExpr
::= StringConcatExpr ( ( 'eq' | 'ne' | 'lt' | 'le' | 'gt' | 'ge' ) StringConcatExpr )?referenced by:NotExprStringConcatExpr:StringConcatExpr
::= RangeExpr ( '||' RangeExpr )*referenced by:ComparisonExprRangeExpr:RangeExpr
::= AdditiveExpr ( 'to' AdditiveExpr )?referenced by:StringConcatExprAdditiveExpr:AdditiveExpr
::= MultiplicativeExpr ( ( '+' | '-' ) MultiplicativeExpr )*referenced by:RangeExprMultiplicativeExpr:MultiplicativeExpr
::= InstanceofExpr ( ( '*' | 'div' | 'idiv' | 'mod' ) InstanceofExpr )*referenced by:AdditiveExprInstanceofExpr:InstanceofExpr
::= TreatExpr ( 'instance' 'of' SequenceType )?referenced by:MultiplicativeExprTreatExpr:TreatExpr
::= CastableExpr ( 'treat' 'as' SequenceType )?referenced by:InstanceofExprCastableExpr:CastableExpr
::= CastExpr ( 'castable' 'as' AtomicType '?'? )?referenced by:TreatExprCastExpr:CastExpr ::= UnaryExpr ( 'cast' 'as' AtomicType '?'? )?referenced by:CastableExprUnaryExpr:UnaryExpr
::= ( '-' | '+' )* SimpleMapExprreferenced by:CastExprSimpleMapExpr:SimpleMapExpr
::= PostfixExpr ( '!' PostfixExpr )*referenced by:UnaryExprPostfixExpr:PostfixExpr
::= PrimaryExpr ( Predicate | ArrayLookup | ObjectLookup )*referenced by:SimpleMapExprArrayLookup:ArrayLookup
::= '(' ExprSingle? ')'referenced by:PostfixExprPredicate:Predicate
::= '[' Expr ']'referenced by:PostfixExprObjectLookup:ObjectLookup
::= '.' ( StringLiteral | NCName | ParenthesizedExpr | VarRef )referenced by:PostfixExprPrimaryExpr:PrimaryExpr
::= Literal
| VarRef
| ParenthesizedExpr
| ContextItemExpr
| FunctionCall
| OrderedExpr
| UnorderedExpr
| ObjectConstructor
| ArrayConstructorreferenced by:PostfixExprLiteral:Literal ::= NumericLiteral
| StringLiteral
| BooleanLiteral
| NullLiteralreferenced by:PrimaryExprNumericLiteral:NumericLiteral
::= IntegerLiteral
| DecimalLiteral
| DoubleLiteralreferenced by:LiteralBooleanLiteral:BooleanLiteral
::= 'true'
| 'false'referenced by:LiteralNullLiteral:NullLiteral
::= 'null'referenced by:LiteralVarRef:VarRef ::= '$' ( NCName ':' )? NCNamereferenced by:CaseClauseCountClauseForClauseGroupByClauseLetClauseObjectLookupPrimaryExprQuantifiedExprTypeswitchExprVarDeclParenthesizedExpr:ParenthesizedExpr
::= '(' Expr? ')'referenced by:ObjectLookupPrimaryExprContextItemExpr:ContextItemExpr
::= '$$'referenced by:PrimaryExprOrderedExpr:OrderedExpr
::= 'ordered' '{' Expr '}'referenced by:PrimaryExprUnorderedExpr:UnorderedExpr
::= 'unordered' '{' Expr '}'referenced by:PrimaryExprFunctionCall:FunctionCall
::= ( NCName ':' )? NCName ArgumentListreferenced by:PrimaryExprArgument:Argument ::= ExprSingle
| '?'no referencesObjectConstructor:ObjectConstructor
::= '{' ( PairConstructor ( ',' PairConstructor )* )? '}'
| '{|' Expr '|}'referenced by:PrimaryExprPairConstructor:PairConstructor
::= ( ExprSingle | NCName ) ':' ExprSinglereferenced by:ObjectConstructorArrayConstructor:ArrayConstructor
::= '[' Expr? ']'referenced by:PrimaryExprSequenceType:SequenceType
::= '(' ')'
| ItemType ( '?' | '*' | '+' )?referenced by:CaseClauseForClauseFunctionDeclGroupByClauseInstanceofExprLetClauseParamListQuantifiedExprTreatExprVarDeclItemType:ItemType ::= 'item'
| JSONItemTest
| AtomicTypereferenced by:SequenceTypeJSONItemTest:JSONItemTest
::= 'object'
| 'array'
| 'json-item'referenced by:ItemTypeAtomicType:AtomicType
::= 'atomic'
| 'string'
| 'integer'
| 'decimal'
| 'double'
| 'boolean'
| 'null'
| 'etc (other builtin atomic types)'referenced by:CastExprCastableExprItemTypeURILiteral:URILiteral
::= StringLiteralreferenced by:DefaultCollationDeclGroupByClauseLibraryModuleModuleImportOrderByClauseIntegerLiteral:IntegerLiteral
::= Digitsreferenced by:NumericLiteralDecimalLiteral:DecimalLiteral
::= '.' Digits
| Digits '.' [0-9]*
/* ws: explicit */referenced by:NumericLiteralDoubleLiteral:DoubleLiteral
::= ( '.' Digits | Digits ( '.' [0-9]* )? ) [eE] [+#x2D]? Digits
/* ws: explicit */referenced by:NumericLiteralStringLiteral:StringLiteral
::= '"' ( PredefinedCharRef | CharRef | [^"\] )* '"'
/* ws: explicit */referenced by:DecimalFormatDeclLiteralModuleObjectLookupURILiteralPredefinedCharRef:PredefinedCharRef
::= '\' ( '\' | '/' | '"' | "'" | 'b' | 'f' | 'n' | 'r' | 't' )
/* ws: explicit */referenced by:StringLiteralCharRef:CharRef ::= '\' 'u' [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F]referenced by:StringLiteralComment:Comment ::= '(:' ( CommentContents | Comment )* ':)'
/* ws: explicit */referenced by:CommentNCName:NCName ::= [http://www.w3.org/TR/REC-xml-names/#NT-NCName-w-o-dot-and-keywords]referenced by:DecimalFormatDeclFunctionCallFunctionDeclLibraryModuleModuleImportObjectLookupPairConstructorParamListVarRefS:S ::= [http://www.w3.org/TR/REC-xml#NT-S]no referencesChar:Char ::= [http://www.w3.org/TR/REC-xml#NT-Char]referenced by:CommentContentsDigits:Digits ::= [0-9]+referenced by:DecimalLiteralDoubleLiteralIntegerLiteralCommentContents:CommentContents
::= Char+ - ( Char* ( '(:' | ':)' ) Char* )referenced by:Comment ... generated by Railroad Diagram Generator