Permalink
Commits on Aug 14, 2010
  1. Move compiler checks and passes out of |PEG.Compiler| definition

    This allows splitting them into separate files in the future. It also
    decreases indentation level in the code.
    dmajda committed Jul 24, 2010
Commits on Jul 24, 2010
  1. Benchmark: Factor benchmark into several functions run using |setTime…

    …out|
    
    We do this for two reasons:
    
      1. To avoid bowser mechanism for interrupting long-running scripts to
         kick-in (or at least to not kick-in that often).
    
      2. To ensure progressive rendering of results in the browser (some
         browsers do not render at all when running JavaScript code).
    
    This does not change the benchmark suite execution speed statistically
    significantly on V8.
    
    Detailed results (benchmark suite totals):
    
    ---------------------------------
     Test #     Before       After
    ---------------------------------
          1   31.04 kB/s   31.18 kB/s
          2   31.26 kB/s   30.89 kB/s
          3   31.15 kB/s   31.19 kB/s
          4   30.52 kB/s   31.21 kB/s
          5   31.00 kB/s   30.73 kB/s
    ---------------------------------
    Average   30.99 kB/s   31.04 kB/s
    ---------------------------------
    
    Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4
    dmajda committed Jul 24, 2010
Commits on Jul 21, 2010
Commits on Jun 10, 2010
  1. Updated version to 0.5

    dmajda committed Jun 10, 2010
  2. CHANGELOG: Fix 0.5 release date

    dmajda committed Jun 10, 2010
  3. README.md tweaks

    dmajda committed Jun 9, 2010
Commits on Jun 9, 2010
  1. Updated CHANGELOG

    dmajda committed Jun 9, 2010
  2. README.md: Fix example code

    dmajda committed Jun 9, 2010
  3. Improve README.md

    dmajda committed Jun 8, 2010
Commits on Jun 8, 2010
  1. Implement semantic predicates

    dmajda committed Jun 8, 2010
  2. 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.
    dmajda committed Jun 8, 2010
  3. Reset generated variable names for each rule parsing function

    Little change in the source grammar now does not change variables in all
    the generated code. This is helpful especially when one has the
    generated grammar stored in a VCS (this is true e.g. for our
    metagrammar).
    dmajda committed Jun 8, 2010
  4. Implement initializers

    dmajda committed Jun 8, 2010
Commits on Jun 7, 2010
  1. Fix incorrect comment

    dmajda committed Jun 7, 2010
  2. Move lot of stuff in generated parsers into the |parse| method

    We want to have the rule parsing functions inside the |parse| method
    because we want them to share a common environment. In the future,
    initializers will be executed in this enviromnent and thus functions and
    variables defined by them will be accessible to the rule parsing
    functions.
    
    Moving various private properties from the parser object into the
    |parse| method was not strictly necessary, but it was a natural step
    after moving the functions.
    dmajda committed Jun 7, 2010
  3. Use labeled expressions and variables instead of $1, $2, etc.

    Labeled expressions lead to more maintainable code and also will allow
    certain optimizations (we can ignore results of expressions not passed
    to the actions).
    
    This does not speed up the benchmark suite execution statistically
    significantly on V8.
    
    Detailed results (benchmark suite totals):
    
    ---------------------------------
     Test #     Before       After
    ---------------------------------
          1   28.43 kB/s   28.46 kB/s
          2   28.38 kB/s   28.56 kB/s
          3   28.22 kB/s   28.58 kB/s
          4   28.76 kB/s   28.55 kB/s
          5   28.57 kB/s   28.48 kB/s
    ---------------------------------
    Average   28.47 kB/s   28.53 kB/s
    ---------------------------------
    
    Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.55 Safari/533.4
    dmajda committed May 31, 2010
Commits on May 31, 2010
  1. Formatted all grammars more consistently and transparently

    This is purely cosmetical change, no functionality was affected
    (hopefully).
    dmajda committed May 23, 2010
  2. Replace ":" after a rule name with "="

    I'll introduce labelled expressions shortly and I want to use ":" as a
    label-expression separator. This change avoids conflict between the two
    meanings of ":". (What would e.g. "foo: 'bar'" mean?  Rule "foo"
    matching string "bar", or string "bar" labelled "foo"?)
    dmajda committed May 23, 2010