jigsaw-library


A C# library for programming language tools

About Jigsaw

Jigsaw is a C# library that makes building programming language tools easier. For example parsers, interpreters, translators, validators, type-checkers, pretty-printers, and so on.

At the heart of Jigsaw is a PEG PackRat parsing engine. In other words it is a recursive descent parser which uses memoization. This parsing engine is the evolution of the parsing engines used in Heron and Cat programming languages.

Included with Jigsaw are classes which facilitate writing evaluators, pretty printers, tree transformers, and expression tree compilers.

For an introduction on how to use Jigsaw see the article Implementing Programming Languages using C# at CodeProject.com

Related Project

There are a large number of related projects on the internet. Some of the most relevant ones are:

  • Irony - A .NET Language implmentation toolkit
  • LLVM - The LLVM Compiler Infrastructure project (C++)
  • NRefactory - C# and VB parsing engine with semantic analysis.
  • ANTLR - Parser Generator
  • PEG Sharp - A C# packrat PEG parser.
  • Jurassic - JavaScript Compiler for .NET
  • JINT JavaScript Interpreter - A JavaScript interpreter built from the ground up using ANTLR.

Project Information

The project was created on Sep 11, 2011.

Labels:
Library CSharp Parsing