14 Commits (814ce7d9db6898e0b3590b9e6796c76418ade400)

Author SHA1 Message Date
David Majda 4ea2003b7b Export PEG.VERSION property with PEG.js version
Value of the property is read in build time from the VERSION file.
14 years ago
David Majda a12a24fca1 Make parsers generated by /bin/pegjs CommonJS modules by default 14 years ago
David Majda 44f541330e Rakefile: Make everything dependencies-based again 14 years ago
David Majda 9e2fc76fc5 Rakefile: Rename "metaparser" task to "parser"
This is more consistent with nomenclature in the code and with the file
names.
14 years ago
David Majda e59f3ba338 Split the source code into several files, introduce build system
The source code is now in the src directory. The library needs to be
built using "rake", which creates the lib/peg.js file by combining the
source files.
14 years ago
David Majda 5e64d09a15 Renamed some properties of the |PEG| object
1. |PEG.Compiler| -> |PEG.compiler|
2. |PEG.grammarParser| -> |PEG.parser|

This brings us closer to the desired structure of the PEG object, which
is:

  +-PEG
    |- parser
    +- compiler
       |- checks
       |- passes
       +- emitter

These are the only things (together with the |PEG.buildParser| function
and exceptions) that I want to be publicly accessible -- as extension
points and also for easy testing of PEG.js's components.
14 years ago
David Majda 917cf1cf2a Start rule of the grammar is now implicitly its first rule
Before this change, the start rule was the one named "start" and there
was an option to override that. This is now impossible.

The goal of this change is to contain all information for the parser
generation in the grammar itself.

In the future, some override directive for the start rule (like Bison's
"%start") may be added to the grammar.
15 years ago
David Majda e63f64a3d5 Make the generated parsers standalone (no runtime is required).
This and also speeds up the benchmark suite execution by 7.83 % on V8.

Detailed results (benchmark suite totals):

---------------------------------
 Test #     Before       After
---------------------------------
      1   26.17 kB/s   28.16 kB/s
      2   26.05 kB/s   28.16 kB/s
      3   25.99 kB/s   28.10 kB/s
      4   26.13 kB/s   28.11 kB/s
      5   26.14 kB/s   28.07 kB/s
---------------------------------
Average   26.10 kB/s   28.14 kB/s
---------------------------------

Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.7 Safari/533.2
15 years ago
David Majda db616f0b77 Made the "version" variable scope smaller. 15 years ago
David Majda c5cc545209 "rake metaparser" and "rake minify" now always generate the target files.
Until now, these tasks looked at the file times and generated the target files
only when they were older than the source files. This caused problems when I
mainupulated the lib/metagrammar.* files by hand sometimes, replaced them from
backups after screw-ups, etc.
15 years ago
David Majda d3104742d9 Fixed --start vs. --start-rule inconsistency between help and actual option processing code. 15 years ago
David Majda a43d1b33e3 Bootstrapped the grammar parser, yay! I should have done this long ago. 15 years ago
David Majda 74507d5c12 Added "pegjs-" prefix to the name of the minified runtime file. 15 years ago
David Majda 09c7fb4f33 Added Rakefile that builds minified runtime using Google Closure Compiler API. 15 years ago