The new Pattern2 implementation in the monads branch is much more powerful but it also necessitates generating much more complex code. The codedom is an insufficient code generator for this, due to the lack of support for lambda expressions and linq.
Begin switching over to Roslyn which at the highest level involves these three steps:
- Create a MetaSharpBuildTask2 to expect a Roslyn AST.
- Create a GrammarTransformer2 that generates a Roslyn AST instead of CodeDom
- Create Grammar AST objects that inherit from Roslyn code model instead of CodeDom.