NLT is free, open-source C# lexer and GLR parser suite -- which translates to ability to parse ambiguous grammars. Grammar can be defined directly in code or (preferably) in separate file (lex/yacc-like) for included generator.

If you understand/guess the meaning of grammar in C#:

// scanning
lexer.AddStringRule(")", match => SymbolEnum.RPAREN);
// parsing
prod_builder.AddProduction(SymbolEnum.exp,
SymbolEnum.LPAREN, SymbolEnum.exp, SymbolEnum.RPAREN,
(_1, e, _3) => (AstNode)e);

or grammar in NLT format:

// scanning
/[A-Za-z_][A-Za-z_0-9]*/ -> IDENTIFIER, IdentifierSymbol.Create($text);
// parsing
program -> list:namespace_list
{ new Program(currCoords(), (Namespaces)list) };

you should be able to use it :-).

There is Example project included which serves as tutorial.

Features

  • parser
  • lexer
  • C#
  • generator

Project Activity

See All Activity >

License

MIT License

Follow NaiveLanguageTools

NaiveLanguageTools Web Site

Other Useful Business Software
Grafana: The open and composable observability platform Icon
Grafana: The open and composable observability platform

Faster answers, predictable costs, and no lock-in built by the team helping to make observability accessible to anyone.

Grafana is the open source analytics & monitoring solution for every database.
Learn More
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of NaiveLanguageTools!

Additional Project Details

Languages

English

Intended Audience

Developers

Programming Language

C#

Related Categories

C# Compilers, C# Interpreters

Registered

2013-05-27