@hackage platinum-parsing0.1.0.0

General Framework for compiler development.

platinum-parsing

www.platinum-parsing.org

Platinum Parsing is an all-around solution for conceiving, developping and building a compiler or an interpreter, or just a part of it. It's composed of two parts: the Framework, written in Haskell, and the CLI (Command Line Interface), exposing the functionalities of the Framework.

Features

  • Purely functional, written in Haskell
  • Generic approach to compilation
  • Full EBNF grammar support
  • Tokens definition with built-in RegEx
  • Grammar validation on source file
  • Dynamic AST generation
  • LALR table and DFA generation
  • Built-in lexer and parser
  • Customisable template export
  • CLI and Atom integration
  • And more ... *

* Platinum Parsing is a recent project aimed to grow, you can find development axis in the Issues menu.

Getting started

Platinum Parsing is built with the famous Haskell Tool Stack, you will need to install it before continuing.

NB: if you prefer to use cabal instead of stack, feel free to do so.

Platinum Parsing is available on Hackage, thus you can install it with the command:

$ stack install platinum-parsing

This will cause the CLI to be accessible in your terminal, try: $ pp --help

If you want to use the Framework directly in your Haskell project, add to your <project-name>.cabal file the following line, and run a $ stack build afterwards:

build-depends: platinum-parsing

Last option is to clone this repository and build the project by yourself:

$ git clone git@github.com:chlablak/platinum-parsing.git
or
$ git clone https://github.com/chlablak/platinum-parsing.git

$ cd platinum-parsing
$ stack init
$ stack build

Further reading

  • Platinum Parsing has an Atom integration (plugin) for ease of development, available here.
  • The library documentation is available on the Hackage package.
  • More documentation (examples, references, ...) can be found in the doc/ folder.

Contributing

If you have any question, proposition or contribution, feel free to use the Issues menu.