BNF for parser.jj

NON-TERMINALS

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>