ArsenShnurkov / NaiveLanguageTools

Free, open-source C# lexer and GLR parser suite.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Naive Language Tools

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 :-).

Documentation

There is Example project included which serves as tutorial. There is "Grammar file format.html" document in the Generator project.

Repositories

Please visit https://aboutskila.wordpress.com/ to read news and get up-to-date links.

Alternatives to NLT

Irony -- https://irony.codeplex.com/ Coco/R -- http://ssw.jku.at/coco/ GOLD -- http://goldparser.org/

ANTLR -- http://www.antlr.org/ LLLPG -- http://www.codeproject.com/Articles/664785/A-New-Parser-Generator-for-Csharp

Sprache -- https://github.com/sprache/sprache

Above software is mentioned for reference purpose only.

Support

You can support further development of NLT by sharing your knowledge with me or even by writing some code. ANY help is welcome and I wholeheartedly thank you in advance.

About

Free, open-source C# lexer and GLR parser suite.

License:MIT License


Languages

Language:C# 97.3%Language:HTML 2.6%Language:Shell 0.1%Language:Batchfile 0.1%