| spec | ::= | Introduces Needs ( Equations )* <EOF> |
| Introduces | ::= | ( <INTRODUCES> sortNames ( "," sortNames )* "." )? |
| Needs | ::= | ( <NEEDS> name ( "," name )* "." )? |
| Equations | ::= | OPDeclarations |
| | | SortEquations | |
| | | ReEquations | |
| | | SyntaxSection | |
| | | PrettyPrinterEquation | |
| | | ImportClause | |
| SyntaxSection | ::= | <SYNTAX> ( Syntax )+ <END> |
| Syntax | ::= | names <EQUAL> names "." |
| PrettyPrinterEquation | ::= | <PP> names <QPONTOS> names "." |
| SortEquations | ::= | <EQ> ( names ( <DPONTOS> | <EQUAL> | <SUB> | <SUP> ) names "." ) |
| OPDeclarations | ::= | ( <OP> names <QPONTOS> ( namesList )? <INTO> names "." ) |
| namesList | ::= | sortNames ( "," sortNames )* |
| ReEquations | ::= | <RE> ReClause ( "=>" ReClause )* "." |
| ReClause | ::= | names <EQUAL> names |
| ImportClause | ::= | <IMP> name "." |
| sortNames | ::= | ( <NAME> )+ |
| names | ::= | ( aName | parentizedNames )+ |
| parentizedNames | ::= | ( <APAR> ) ( aName | "=>" | "." | <EQUAL> | <DPONTOS> | <QPONTOS> | <SUB> | <SUP> | parentizedNames )* ( <FPAR> ) |
| name | ::= | ( <NAME> ) |
| userInput | ::= | ( aName | "=>" | "." | <EQUAL> | <DPONTOS> | <QPONTOS> | <SUB> | <SUP> | <APAR> | <FPAR> )+ |
| aName | ::= | <NAME> |
| | | <VARNAME> | |
| | | "," | |
| | | <BV> | |
| | | <RE> | |
| | | <EQ> | |
| | | <OP> | |
| | | <PP> | |
| | | <SYNTAX> | |
| | | <IMP> |