- Added an overload of the Grammar.Augment function which accepts a set of starting symbols (instead of a single symbol).
- Modified the Lr0.applyPrecedence function to use the new PrecedenceSettings record type for simplicity.
- Created type aliases NonterminalIdentifier and TerminalIdentifier to clarify the purpose of some fields in the Ast.Specification record.
- Implemented the main parts of the compiler pipeline; a few key functions are only stubbed, but once they're implemented we should be close to something usable.