platinum-parsing: General Framework for compiler development.

[ bsd3, cli, compilation, compiler, framework, lalr, lexer, library, parser, program ] [ Propose Tags ]

Platinum Parsing provides many tools for the development of compiler (including transpiler or interpreter), based on the well-known Dragon Book (2nd edition). This package is in progress, please take a look at the github repository for more details.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0
Dependencies base (>=4.7 && <5), binary (>=0.8 && <0.9), clock (>=0.7 && <0.8), containers (>=0.5 && <0.6), data-hash (>=0.2 && <0.3), directory (>=1.3 && <1.4), fgl (>=5.5 && <5.6), HStringTemplate (>=0.8 && <0.9), mtl (>=2.2 && <2.3), optparse-applicative (>=0.13 && <0.14), parsec (>=3.1 && <3.2), platinum-parsing, text (>=1.2 && <1.3), vector (>=0.11 && <0.12), yaml (>=0.8 && <0.9) [details]
License BSD-3-Clause
Copyright 2017, Patrick Champion
Author chlablak
Maintainer chlablak@gmail.com
Category compiler, compilation, parser, lexer, lalr, framework, cli
Home page https://github.com/chlablak/platinum-parsing
Source repo head: git clone https://github.com/chlablak/platinum-parsing
Uploaded by chlablak at 2017-07-19T12:24:50Z
Distributions
Executables pp
Downloads 995 total (1 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-07-19 [all 1 reports]

Readme for platinum-parsing-0.1.0.0

[back to package description]

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.