1 Constraint Definition Language
2 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
4 constraints ::= constraints constraint | constraint
6 constraint ::= optcrash OPENBRACKET quantifiers CLOSEBRACKET COMMA body SEMICOLON
8 optcrash ::= CRASH | /* nothing */
10 quantifiers ::= quantifiers COMMA quantifier | quantifier | /* nothing */
12 quantifier ::= FORALL ID:var IN set:set
15 | OPENBRACE listofliterals CLOSEBRACE
17 listofliterals ::= listofliterals COMMA literal | literal
19 body ::= body AND body
22 | OPENPAREN body CLOSEPAREN
25 predicate ::= SIZEOF OPENPAREN setexpr CLOSEPAREN limitedcompare DECIMAL:dec
27 | ID:var DOT ID:relation compare:compare expr
30 | ID:var DOT ID:relation
31 | ID:var DOTINV ID:relation
34 | OPENPAREN expr CLOSEPAREN
35 | LITERAL OPENPAREN literal CLOSEPAREN
38 | SIZEOF OPENPAREN setexpr CLOSEPAREN
39 | CAST OPENPAREN ID:type COMMA expr CLOSEPAREN
41 operator ::= ADD | SUB | MULT | DIV
43 literal ::= TRUE | DECIMAL | STRING | CHAR | ID
45 limitedcompare ::= EQUALS | wGT
47 compare ::= LT | GT | LE | GE | EQUALS