PEG.js is a parser generator for JavaScript based on the [parsing expression grammar](http://en.wikipedia.org/wiki/Parsing_expression_grammar) formalism. It is designed to be used either from your browser or from the command line (using [Rhino](http://www.mozilla.org/rhino/) JavaScript interpreter).
Requirements
------------
Both the parser generator and generated parsers should run well in IE8 and recent versions of Firefox, Chrome, Safari and Opera, as well as Rhino JavaScript engine. IE6 and IE7 are not supported.
**Note:** IE7 might be supported sometime in the future, IE6 probably not.
Usage
-----
To use PEG.js, you need to generate a parser from your grammar and then use the generated parser in your project.
### Generating a Parser
A parser can be generated either [online](http://pegjs.majda.cz/online) in your browser or using the command line. Let's look at the second option. You need to follow these steps:
1. Install Java. This is necessary to run [Rhino](http://www.mozilla.org/rhino/) (which is bundled with PEG.js).
2. Generate the parser using `bin/pegjs` script on Unix or `bin/pegjs.bat` batch file on Windows.
For example, to generate a parser from an example grammar in the `examples/arithmetics.pegjs` file on Unix, run:
The `parse` method of the generated parser will return either the result of the parsing (dependent on the actions you specified in the grammar) or throw `PEG.Parser.SyntaxError` exception if the input contains a syntax error. The exception has properties `message`, `line` and `column`, which contain details about the error.
Grammar
-------
For detailed description of the grammar see the [online documentation](http://pegjs.majda.cz/documentation#grammar).