Mmql:

Mmql     ::= 'use' MultiModelSpec Statement+

no references


Statement:

Statement
         ::= Select
           | MMManipulation

referenced by:


Select:

Select   ::= 'select' ExplicitPropertySpec ( ',' ExplicitPropertySpec )* 'from' ElementByName LinkedWithSpec* ( 'where' Assertion )? ( 'as' VARNAME )?

referenced by:


MMManipulation:

MMManipulation
         ::= CreateLM
           | AlterLM
           | UpdateLM
           | DeleteLM

referenced by:


CreateLM:

CreateLM ::= 'create' 'linkmodel' ( '"' STRING '"' )? 'add' 'permission' ElementaryModelSpec ( ',' ElementaryModelSpec )+

referenced by:


AlterLM:

AlterLM  ::= 'alter' 'linkmodel' LinkModelSpec ( 'add' | 'remove' ) 'permission' ElementaryModelSpec ( ',' ElementaryModelSpec )*

referenced by:


DeleteLM:

DeleteLM ::= 'drop' 'linkmodel' LinkModelSpec

referenced by:


UpdateLM:

UpdateLM ::= 'update' 'linkmodel' LinkModelSpec ( AddLinks | DeleteLinks ) ( 'where' Assertion )?

referenced by:


AddLinks:

AddLinks ::= 'add' ( 'distinct' | 'strict' )? 'links' 'between' LinkBetweenSpec ( ',' LinkBetweenSpec )+

referenced by:


DeleteLinks:

DeleteLinks
         ::= 'delete' 'links' 'between' ElementByName ( ',' ElementByName )+

referenced by:


MultiModelSpec:

MultiModelSpec
         ::= MultiModelByFile
           | MultiModelByEditor

referenced by:


MultiModelByFile:

MultiModelByFile
         ::= 'file' '"' STRING '"'

referenced by:


MultiModelByEditor:

MultiModelByEditor
         ::= 'editor' '"' STRING '"'

referenced by:


ElementaryModelSpec:

ElementaryModelSpec
         ::= EMByIndex
           | EMByName

referenced by:


EMByIndex:

EMByIndex
         ::= 'index' '(' INTEGER ')'

referenced by:


EMByName:

EMByName ::= '"' STRING '"'

referenced by:


ElementSpec:

ElementSpec
         ::= RefElementSpec
           | ElementByName

referenced by:


RefElementSpec:

RefElementSpec
         ::= VARNAME

referenced by:


ElementByName:

ElementByName
         ::= ElementaryModelSpec '.' '"' STRING '"' ( 'as' VARNAME )?

referenced by:


PropertySpec:

PropertySpec
         ::= RefPropertySpec
           | ExplicitPropertySpec

referenced by:


RefPropertySpec:

RefPropertySpec
         ::= VARNAME

referenced by:


ExplicitPropertySpec:

ExplicitPropertySpec
         ::= ElementSpec ( PropertyByPath | PropertyAccessor | IDProperty ) ( 'as' VARNAME )?

referenced by:


PropertyByPath:

PropertyByPath
         ::= '.' PathSegment ( '~' PathSegment )*

referenced by:


PathSegment:

PathSegment
         ::= '"' STRING '"' ( '[' INTEGER ']' )?

referenced by:


IDProperty:

IDProperty
         ::= '.' 'id'

referenced by:


PropertyAccessor:

PropertyAccessor
         ::= '?' '(' '"' STRING '"' ',' '"' STRING '"' ')'

referenced by:


LinkedWithSpec:

LinkedWithSpec
         ::= CrossLinkedWith
           | LinkedWithByLM

referenced by:


CrossLinkedWith:

CrossLinkedWith
         ::= 'cross' 'linkedwith' ElementByName

referenced by:


LinkedWithByLM:

LinkedWithByLM
         ::= ( 'strict' | 'trans' )? 'right'? 'linkedwith' ElementByName ( 'by' LinkModelSpec ( ',' LinkModelSpec )* )?

referenced by:


LinkModelSpec:

LinkModelSpec
         ::= LMByName
           | LMByIndex

referenced by:


LMByName:

LMByName ::= '"' STRING '"'

referenced by:


LMByIndex:

LMByIndex
         ::= 'index' '(' INTEGER ')'

referenced by:


LinkBetweenSpec:

LinkBetweenSpec
         ::= ( 'one' | 'many' ) ElementByName

referenced by:


Value:

Value    ::= BooleanValue
           | StringValue
           | IntegerValue
           | RealValue
           | DateValue
           | UnaryValueOperation
           | BinaryValueOperation
           | TernaryValueOperation
           | NAryValueOperation

referenced by:


BooleanValue:

BooleanValue
         ::= 'bool:' ( PropertySpec | ( 'true' | 'false' ) )

referenced by:


StringValue:

StringValue
         ::= PropertySpec
           | '"' STRING '"'

referenced by:


IntegerValue:

IntegerValue
         ::= 'int:' ( PropertySpec | INTEGER )

referenced by:


RealValue:

RealValue
         ::= 'real:' ( PropertySpec | REAL )

referenced by:


DateValue:

DateValue
         ::= 'date:' ( PropertySpec | '"' STRING '"' )

referenced by:


UnaryValueOperation:

UnaryValueOperation
         ::= ValueOperationBrackets
           | Negation
           | FunctionOperation

referenced by:


ValueOperationBrackets:

ValueOperationBrackets
         ::= '(' Value ')'

referenced by:


Negation:

Negation ::= '-' Value

referenced by:


FunctionOperation:

FunctionOperation
         ::= ( 'sin' | 'cos' | 'tan' | 'sinh' | 'cosh' | 'tanh' | 'deg' | 'rad' | 'asin' | 'acos' | 'atan' | 'exp' | 'log' | 'log10' | 'round' | 'length' | 'lower' | 'upper' | 'trim' | 'reverse' ) '(' Value ')'

referenced by:


BinaryValueOperation:

BinaryValueOperation
         ::= Addition
           | Multiplication
           | Exponentiation
           | StringPosition
           | StringRegexp

referenced by:


Addition:

Addition ::= Value ( '+' | '-' ) Value

referenced by:


Multiplication:

Multiplication
         ::= Value ( '*' | '/' | '%' ) Value

referenced by:


Exponentiation:

Exponentiation
         ::= Value '^' Value

referenced by:


StringPosition:

StringPosition
         ::= 'position' '(' Value ',' Value ')'

referenced by:


StringRegexp:

StringRegexp
         ::= 'regexp' '(' Value ',' Value ')'

referenced by:


TernaryValueOperation:

TernaryValueOperation
         ::= ( 'substring' | 'replace' ) '(' Value ',' Value ',' Value ')'

referenced by:


NAryValueOperation:

NAryValueOperation
         ::= 'concat' '(' Value ( ',' Value )* ')'

referenced by:


Assertion:

Assertion
         ::= UnaryAssertion
           | BinaryAssertion
           | IsNull
           | ElementIn
           | BinaryValueAssertion

referenced by:


UnaryAssertion:

UnaryAssertion
         ::= AssertionBrackets
           | Not

referenced by:


AssertionBrackets:

AssertionBrackets
         ::= '(' Assertion ')'

referenced by:


Not:

Not      ::= 'not' Assertion

referenced by:


BinaryAssertion:

BinaryAssertion
         ::= And
           | Or
           | Xor

referenced by:


And:

And      ::= Assertion 'and' Assertion

referenced by:


Or:

Or       ::= Assertion 'or' Assertion

referenced by:


Xor:

Xor      ::= Assertion 'xor' Assertion

referenced by:


IsNull:

IsNull   ::= Value 'is null'

referenced by:


ElementIn:

ElementIn
         ::= InViewerSelection
           | InExternalFilter
           | InSelectStatement

referenced by:


InViewerSelection:

InViewerSelection
         ::= ElementSpec 'in' 'viewselect' ( '(' '"' STRING '"' ')' )?

referenced by:


InExternalFilter:

InExternalFilter
         ::= ElementSpec 'in' 'filter' '(' '"' STRING '"' ( ',' FilterOption )* ')'

referenced by:


FilterOption:

FilterOption
         ::= '"' STRING '"' '=' '"' STRING '"'

referenced by:


InSelectStatement:

InSelectStatement
         ::= ElementSpec 'in' VARNAME

referenced by:


BinaryValueAssertion:

BinaryValueAssertion
         ::= EqualityAssertion
           | CompareAssertion
           | StringLikeAssertion

referenced by:


EqualityAssertion:

EqualityAssertion
         ::= Value ( '==' | '!=' ) Value

referenced by:


CompareAssertion:

CompareAssertion
         ::= Value ( '<' | '<=' | '>' | '>=' ) Value

referenced by:


StringLikeAssertion:

StringLikeAssertion
         ::= Value 'like' Value

referenced by:


VARNAME:

VARNAME  ::= ( [A-Z] | [a-z] ) ( [A-Z] | [a-z] | [0-9] | '_' )*

referenced by:


STRING:

STRING   ::= [!-~]*

referenced by:


INTEGER:

INTEGER  ::= '0'
           | [1-9] [0-9]*

referenced by:


REAL:

REAL     ::= ( '0' | [1-9] [0-9]* ) '.' [0-9]+ ( ( 'e' | 'E' ) ( '+' | '-' )? [0-9]+ )?

referenced by:



  ... generated by Railroad Diagram Generator