pegjs/spec
David Majda 4f7145e360 Improve location info available in action code
Replace |line|, |column|, and |offset| functions with the |location|
function. It returns an object like this:

  {
    start: { offset: 23, line: 5, column: 6 },
    end:   { offset: 25, line: 5, column: 8 }
  }

In actions, |start| refers to the position at the beginning of action's
expression and |end| refers to the position after the end of action's
expression. This allows one to easily add location info e.g. to AST
nodes created in actions.

In predicates, both |start| and |end| refer to the current position.

Fixes #246.
2015-04-03 16:26:34 +02:00
..
api Implement basic support for tracing 2015-03-30 14:00:19 +02:00
behavior Improve location info available in action code 2015-04-03 16:26:34 +02:00
unit Remove extra whitespace 2015-04-02 14:34:26 +02:00
vendor/jasmine Upgrade jasmine and jasmine-node 2013-08-22 09:07:19 +02:00
helpers.js Specs cleanup: Split specs into unit and API specs 2014-05-23 12:57:41 +02:00
index.html Add missing ";" 2015-04-02 14:35:06 +02:00
README.md Use sentence case consistently in {spec,benchmark}/README.md headers 2014-05-10 16:40:39 +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 and Python 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:

    $ python -m SimpleHTTPServer

  5. Point your browser to the spec suite.

  6. Watch the specs pass (or fail).