What is a good C# compiler-compiler/parser generator? [closed]

Solution 1:

ANTLR (nothing else to say)

Solution 2:

Gold is OK as far a parser generators go.

Solution 3:

There is a new parser generator on the block called LLLPG, that supports LL(k) grammars and zero-width assertions. The runtime library is optional (a base class suffices). The documentation is fairly detailed now, and I have used LLLPG to parse most of a dialect of C# called Enhanced C# (which, in fact, is the main input language of LLLPG). The input syntax is not EBNF, though (it's sort of a mashup of C# + ANTLR-style code).

Full disclosure: I wrote it. Questions welcome.

Edit: the top Google result for "C# parser generator" is written by a guy named "Tomassetti" who claims my parser generator "is not really usable standalone" - that's like saying a PC is "not really usable as a standalone gaming rig" because it can also do web browsing and spreadsheets. True, after installing the Visual Studio extension you must separately go to NuGet and get the runtime library (Loyc.Syntax), but I don't think that's what he means and I don't think he ever actually tried to use it. LLLPG's design is a feature, not a bug. All I can say is, please give it a try and let me know what you think.

Solution 4:

You might want to look at MinosseCC, a port of JavaCC to C#. Another possibility is Spart.