Parser for JavaScript, in Haskell
Haskell Yacc Logos Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Tests
src/Language/JavaScript
test
unicode
.ghci
.gitignore Update .gitignore Nov 6, 2016
.travis.yml
LICENSE WIP. Aiming at getting parsing infrastructure in place, based on lang… Nov 21, 2010
Makefile
README.md
Setup.hs
TODO.txt
buildall.sh
ecmascript3.txt
ecmascript5.txt
language-javascript.cabal
quickcheck.hs quickcheck.hs : Fix compile (broken due to changes in AST). Jul 26, 2015
testsuite.hs

README.md

Parser for JavaScript

Build Status

Based (loosely) on language-python

Two Versions

There are currently two versions:

  • 0.5 series : Is a continuation of the 0.5.X.Y series, from the master branch of this github repository.

  • 0.6 series : This has a vastly different and improved AST which makes if far more difficult to build an non-sensical Javascript AST. This code is in the new-ast branch of this github repository.

How to build

Library:

cabal clean && cabal configure && cabal build

Tests:

cabal clean && cabal configure -fbuildtests && cabal build

Running the tests

./dist/build/runtests/runtests

To debug the grammar

happy -iparse.txt -g -a  -d src/Language/JavaScript/Parser/Grammar5.y

This generates src/Language/JavaScript/Parser/Grammar5.hs, delete this when done with the debug version

UTF8/Unicode version

Alex 3.0 now supports unicode natively, and has been included as a dependency in the cabal file.

Note: The generation of the lexical analyser has been separated out, to remove the install-time dependency on Alex. If any changes need to be made to the lexer, the Lexer.x source lies in src-dev, and the runalex.sh script will invoke Alex with the appropriate directories.