Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tag: 0.5
Commits on Jun 10, 2010
  1. @dmajda

    Updated version to 0.5

    dmajda authored
  2. @dmajda

    CHANGELOG: Fix 0.5 release date

    dmajda authored
  3. @dmajda

    README.md tweaks

    dmajda authored
Commits on Jun 9, 2010
  1. @dmajda

    Updated CHANGELOG

    dmajda authored
  2. @dmajda

    README.md: Fix example code

    dmajda authored
  3. @dmajda

    Improve README.md

    dmajda authored
Commits on Jun 8, 2010
  1. @dmajda
  2. @dmajda
  3. @dmajda

    Implement semantic predicates

    dmajda authored
  4. @dmajda
  5. @dmajda

    Start rule of the grammar is now implicitly its first rule

    dmajda authored
    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.
  6. @dmajda

    Reset generated variable names for each rule parsing function

    dmajda authored
    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).
  7. @dmajda

    Implement initializers

    dmajda authored
Commits on Jun 7, 2010
  1. @dmajda
  2. @dmajda

    Fix incorrect comment

    dmajda authored
  3. @dmajda
  4. @dmajda

    Move lot of stuff in generated parsers into the |parse| method

    dmajda authored
    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.
  5. @dmajda
  6. @dmajda
  7. @dmajda
  8. @dmajda

    Use labeled expressions and variables instead of $1, $2, etc.

    dmajda authored
    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
Commits on May 31, 2010
  1. @dmajda
  2. @dmajda

    Formatted all grammars more consistently and transparently

    dmajda authored
    This is purely cosmetical change, no functionality was affected
    (hopefully).
  3. @dmajda

    Replace ":" after a rule name with "="

    dmajda authored
    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"?)
  4. @dmajda
  5. @dmajda
  6. @dmajda
Commits on May 22, 2010
  1. @dmajda

    Fix stupid mistakes in metagrammar-test.js

    dmajda authored
    The mistakes weren't caught because the first one introduces a syntax
    error, causing the whole test suite not to load. Unfortunately, QUnit
    didn't complain so I missed this.
    
    The real commit these changes belong to is
    33a1a7c.
  2. @dmajda

    Fix bug causing incorrect error messages

    dmajda authored
    The bug could cause the list of expected strings in an error message to
    contain strings that shouldn't be there.
    
    Closes #2.
  3. @dmajda

    Remove trailing whitespace

    dmajda authored
  4. @dmajda

    Add compiler optimization: Remove proxy rules

    dmajda authored
    This shouldn't have measurable effect on the benchmarks as there are no
    proxy rules in the grammars the benchamrk uses. However the effect on
    generated parsers' speed should be positive generally.
  5. @dmajda

    Clean up class handling in the metagrammar and compiler

    dmajda authored
    The class AST node now contains structured data and a raw text which is
    used for error messages.
Commits on May 21, 2010
  1. @dmajda
  2. @dmajda

    Guard against redefinition of |undefined|

    dmajda authored
    In most cases, code pattern
    
      x === undefined
    
    was transformed to
    
      typeof(x) === "undefined"
    
    and similarly with |!==|.
    
    In the generated code, the condition was simply made less strict to
    avoid performance penalty of string comparison (I don't think JavaScript
    VMs optimize this specific pattern to avoid it).
  3. @dmajda

    Fix comment typo

    dmajda authored
Something went wrong with that request. Please try again.