Grammar syntax
You can write the grammar for the language you want to recognize by writing Terminals, Non-terminals, and
Regexes.
Here is an example grammar that uses all of them:
foo(bar+baz)
Episilon
You can write the epsilon symbol by writing a rule with only the empty string as it's body S -> ''
Steps
With the app you can both look at the language's properties (like the FIRST, FOLLOW, automaton table etc...) and you can also parse a string to see if it is recognized by the grammar, this will produce a parse tree that you can visualize.
Once you compile the language or parse a string, the individual steps needed to complete the operation will be shown below the editor and you can click on them to see the details.
Try it