EBNF grammars are similar to regular BNFs, but with some additional features (similar to regular expression operators) as syntactic sugar. Since you did not show your grammar, I can only guess in what parts you need to convert desugar to regular BNF, but here are the most common ones (for a LALR generator such as JavaCUP):
B* becomes Bstar, defined as Bstar ::= epsilon; Bstar ::= Bstar B B+ becomes Bplus, defined as Bplus ::= B; Bplus ::= Bplus B B? becomes Bquestion, defined as Bquestion ::= epsilon; Bquestion ::= B B | C becomes BorC, defined as BorC ::= B; BorC ::= C
The epsilon id is here, however, your parser generator indicates an empty string.
source share