Skip to content

Toolkit for creating LL1 parsers and RegEx tokenizers with verbose error reporting and from-scratch LL1 table generation, recursive descent RegEx string parsing, RegEx NFA generation and evaluation, token priority topological sorting, and splay-tree-based interval trees for verifying token non-intersection and coverage.

License

Notifications You must be signed in to change notification settings

maximsmol/ParserGen

Repository files navigation

parserGen is an LL(1) parser generator framework, that focuses on advanced error-reporting.

Status

Video

Screenshot

The screenshot shows parserGen displaying the hardcoded LL(1) parsing table that is used to read user grammars, and the roughly identical parsing table generated from the user grammar file.

A demo screencast demonstrates the error-reporting capabilities.

Features:

  • LL(1) grammar parsing
  • Generation of the LL(1) parsing table
  • Clever error-reporting

Planned Features:

  • Generation of tokenizers
  • Curses-based dashboard for grammar analysis and debugging

Building

Open-GraphEq uses Node.js and yarn. After installing these dependencies, simply run yarn from the project folder.

Manual

Use node --no-warnings src/main.js to launch the parserGen demo. --no-warnings is required to silence the warnings that come from using the experimental fs Promises API.

About

Toolkit for creating LL1 parsers and RegEx tokenizers with verbose error reporting and from-scratch LL1 table generation, recursive descent RegEx string parsing, RegEx NFA generation and evaluation, token priority topological sorting, and splay-tree-based interval trees for verifying token non-intersection and coverage.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages