This application removes left-corner cycles from a context-free grammar to make it more acceptable for LL parsers. Of course, this can change the associativity of operators in the language, and this does not resolve problems with first sets, follow sets, and nullable symbols.


Instructions: Enter productions in the format Sum: Sum + Product. Multiple productions for the same symbol should be on separate lines. A non-terminal is a [A-Z][a-z]*, and a terminal is any other non-whitespace string. Whitespace in the right-hand-side will be trimmed away. Epsilon productions are represented as a blank right-hand-side.