pegjs/spec
David Majda e8be76ee3a Don't expose the "parser" variable in parser code
The "parser" variable allowed access to the parser object. Among other
things, this made it possible to invoke the parser recursively using
"parser.parse".

One problem with the "parser" variable is that it bakes in the idea that
the parser is an *object*, not a *module*. While this is true now, it
won't necessarily be in the future, when parsers may be exported as ES6
modules. Also, people tend to use parsers as modules even today, e.g.
like this:

  var parse = require("parser").parse;
  var result = parse(...);

Such usage broke the "parser" variable (as it was implemented).

For this reasons I decided to remove the "parser" variable. If someone
needs to do tricks like recursive invocation of the parser, he/she must
pass the parser or the "parse" function itself using options.

Related to #433.
2016-07-04 08:35:39 +02:00
..
api Revert "Use literal raw text in error messages" 2016-05-09 15:07:44 +02:00
behavior Don't expose the "parser" variable in parser code 2016-07-04 08:35:39 +02:00
unit Remove extraneous "with" from an error message 2016-07-04 07:19:57 +02:00
vendor/jasmine Upgrade jasmine and jasmine-node 2013-08-22 09:07:19 +02:00
.eslintrc.json ESLint: Set environments better 2016-01-29 14:50:38 +01:00
helpers.js Rename the "PEG" variable to "peg" 2016-05-04 12:37:13 +02:00
index.html Report duplicate labels as errors 2016-06-27 13:45:59 +02:00
README.md Use http-server to serve specs and benchmarks to the browser 2016-05-05 17:35:40 +02:00

PEG.js Spec Suite

This is the PEG.js spec suite. It ensures PEG.js works correctly. All specs should always pass on all supported platforms.

Running in Node.js

All commands in the following steps need to be executed in PEG.js root directory (one level up from this one).

  1. Install all PEG.js dependencies, including development ones:

    $ npm install
    
  2. Execute the spec suite:

    $ make spec
    
  3. Watch the specs pass (or fail).

Running in the Browser

All commands in the following steps need to be executed in PEG.js root directory (one level up from this one).

  1. Make sure you have Node.js installed.

  2. Install all PEG.js dependencies, including development ones:

    $ npm install
    
  3. Build browser version of PEG.js:

    $ make browser
    
  4. Serve PEG.js root directory using a web server:

    $ node_modules/.bin/http-server
    
  5. Point your browser to the spec suite.

  6. Watch the specs pass (or fail).