1 Model Definition Language
2 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
4 rules ::= rules rule | rule
6 rule ::= ruletype OPENBRACKET quantifiers CLOSEBRACKET COMMA guard IMPLIES inclusions SEMICOLON
8 ruletype ::= STATIC | DELAY | /*nothing*/
10 quantifiers ::= quantifiers COMMA quantifier | quantifier | /* nothing */
12 quantifier ::= FORALL ID:var IN ID:set
13 | FORALL LT ID:r1 COMMA ID:r2 GT IN ID:relation
14 | FOR ID:var EQUALS expr:lower TO expr:upper
16 guard ::= guard AND guard
22 | OPENPAREN guard CLOSEPAREN
24 | LT expr:r1 COMMA expr:r2 GT IN ID:relation
25 | ISVALID OPENPAREN expr CLOSEPAREN
26 | ISVALID OPENPAREN expr COMMA ID:var CLOSEPAREN
28 inclusion ::= expr IN ID:set
29 | LT expr:r1 COMMA expr:r2 GT IN ID:relation
34 | OPENPAREN expr CLOSEPAREN
35 | LITERAL OPENPAREN literal CLOSEPAREN
38 | expr DOT ID:field OPENBRACKET expr:index CLOSEBRACKET
39 | CAST OPENPAREN ID:type COMMA expr CLOSEPAREN
41 operator ::= ADD | SUB | MULT | DIV
43 literal ::= TRUE | DECIMAL | STRING | CHAR | ID