language-javascript: Parser for JavaScript

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Parses Javascript into an Abstract Syntax Tree (AST). Initially intended as frontend to hjsmin.

Note: Version 0.5.0 breaks compatibility with prior versions, the AST has been reworked to allow round trip processing of JavaScript.

[Skip to Readme]


Versions 0.0.1, 0.0.2, 0.0.3, 0.1.0, 0.2.0, 0.2.1, 0.2.2, 0.3.0, 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.4.5, 0.4.6, 0.4.7, 0.4.8, 0.4.9, 0.4.10, 0.5.0, 0.5.1, 0.5.2, 0.5.3, 0.5.4, 0.5.5, 0.5.6, 0.5.7, 0.5.8, 0.5.9, 0.5.11, 0.5.12, 0.5.13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Change log
Dependencies array (>=0.3), base (>=4 && <5), blaze-builder (>=0.2), bytestring (>=0.9.1), containers (>=0.2), mtl (>=1.1), semigroups (>=0.16.1), text (>=1.2), utf8-string (>=0.3.7 && <2) [details]
License BSD-3-Clause
Copyright (c) 2010-2015 Alan Zimmerman (c) 2015-2019 Erik de Castro Lopo (c) 2018 Daniel Gasienica
Author Alan Zimmerman
Maintainer Erik de Castro Lopo <>
Category Language
Home page
Bug tracker
Source repo head: git clone
Uploaded by ErikDeCastroLopo at 2020-03-22T08:02:19Z


[Index] [Quick Jump]


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Readme for language-javascript-

[back to package description]

Parser for JavaScript

Build Status

Based (loosely) on language-python

Two Versions

There are currently two versions:

How to build

Make sure your locale supports UTF-8. For example, on most Unix-like platforms, you can type:

export LC_ALL=en_US.UTF-8


cabal clean && cabal configure && cabal build


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

Running the tests


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 script will invoke Alex with the appropriate directories.