[x] add a convenient way to specify a policy for the parser to resolve conflicts, for example, one to resolve a shift-reduce conflict by choosing the shift, and in other conflicts asks the user, ...etc.
[x] set up the needed structures.
[x] create the grammar.
[x] create the lexical grammar (the FSM table and the token factory function).
[x] handle parsing the pattern.
[x] handle transforming the followpos table into a DFA.
Steps:
match()
.exec()
.