You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
David Majda 22cb123479 Expectation refactoring 3/7: Change expectation processing
Before this commit, expectations were sorted and de-duplicated before
they were passed to "buildMessage" and exposed in the "expected"
property of syntax errors. This commit moves this processing into
"buildMessage" and rewrites it to process only expectation descriptions.
This means expectations exposed in the "expected" property are "raw"
(not sorted and de-duplicated).

This change will allow us to get rid of the "description" property of
expectations and compute descriptions dynamically from structured
information in the expectations. This will make descriptions a
presentation-only concept. It will also make generated parsers smaller.

Note that to keep expectations in the "expected" property sorted even
without the "description" property, some sorting scheme based on
structured information in the expectations would have to be devised,
which would complicate things with only a little benefit. Therefore I
chose to keep the expectations there "raw".
8 years ago
..
api Revert "Use literal raw text in error messages" 8 years ago
behavior Expectation refactoring 3/7: Change expectation processing 8 years ago
unit Expectation refactoring 2/7: Restructure "class" expectations 8 years ago
vendor/jasmine Upgrade jasmine and jasmine-node 11 years ago
.eslintrc.json ESLint: Set environments better 8 years ago
README.md Use http-server to serve specs and benchmarks to the browser 8 years ago
helpers.js Rename the "PEG" variable to "peg" 8 years ago
index.html Update version to 0.9.0 9 years ago

README.md

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).