- Removed an OPTIMIZE comment which is no longer needed (it has been implemented).
- Created module stubs in FSharpYacc: Validator and Compiler.
- Started remodeling the FSharpYacc Program module into it's finished/"release" form; moved the test specification into it's own module for now (which will be removed later when no longer needed).
- Implemented the PrecedenceTable type.
- Stubbed a function in the Lr0 module which will use PredenceTables to resolve as many conflicts as possible.
- Created the types LrParserConflict and LrParserActionSet, so we can more accurately/correctly represent the set of actions assigned to the entries in the ACTION table of an LR(k) parser table.
- Renamed a few variables to avoid confusion.
- Modified the ActionTable and GotoTable fields of LrTableGenState so they use TerminalTransition and NonterminalTransition as their respective keys.
- Moved the 'Lr1.TableGenState.reduce' function into the 'LR.TableGenState' module, and tweaked it slightly so it'll work for any 'k' (as in LR(k)); removed the equivalent function from the Lr0 module and modified the LR(0) table-gen code to use the new generic function.