pegjs/spec
David Majda 5a4d04fa90 Construct expectations using functions
Until now, expectations were constructed using object literals. This
commit changes the construction to use factory functions.

This change makes generated parsers slightly smaller because property
names don't have to be repeated many times and factory function calls
are more amenable to minifying.

Some numbers based on the aggregate size of parsers generated from
examples/*.pegjs:

  Optimization   Minified?   Size before   Size after   Saving
  ------------------------------------------------------------
  speed          no               719066       716063    0.42%
  speed          yes              188998       180202    4.65%
  size           no               194810       197813    1.52%
  size           yes              108782        99947    8.12%

(Minification was done using "uglify --mangle --compress" with
uglify-js 2.4.24.)
2016-06-18 06:57:09 +02:00
..
api Revert "Use literal raw text in error messages" 2016-05-09 15:07:44 +02:00
behavior Expectation refactoring 4/7: Generate descriptions dynamically 2016-06-17 19:22:51 +02:00
unit Construct expectations using functions 2016-06-18 06:57:09 +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 Update version to 0.9.0 2015-08-30 08:22:26 +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).