Introducing nGineer’s Lexical Analyzer

nGineer is a language analysis and code generation kit for .NET languages and specifically C# which is currently being developed.
Components of nGineer are released separately and more components will be released soon.

The Lexical Analyzer component of the nGineer toolkit is used to analyze the lexical grammar of C# code files.
The component offers great extensibility and one of its derivatives is webify which is a syntax coloring tool that can be downloaded along with the binaries and source of the component, or used in its online version.

I have also created a new articles category for nGineer and have posted two articles about the lexical analyzer:

  1. Designing The Lexical Analyzer.
  2. Implementing a Lexical Walker.

I am aware that the .NET Framework contains a stub for a C# parser, but it is only a stub and I have been reassured by Jay that there are no plans to implement it at this point.

The next component to be released is the grammatical parser, but I have no date for its release, since there are several issues to be resolved first.
I’ll keep you posted.

Please feel free to comment or contact me about this with any questions.

Advertisements

One thought on “Introducing nGineer’s Lexical Analyzer

  1. It might sound odd, but mono contains a C# lexical analyzer and parser in C#. As I said in a reply to another blog post of yours, C# is ambiguistic, so the parser has a lot of special case handlers. I’m pretty sure you can’t get a shift-reduce/reduce-reduce or shift-shift conflict free LR(n) parser for C#.

    Mono is open source, you might want to take a look at it :)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s