Fix typo in comment.
Update version of Node.js and development dependencies in package.json

The new versions are the ones I test with.
Use |util| module instead of |sys|

|sys| emits a warning in Node.js 0.6.x.
Update embedded Codie to version 1.0.1
Merge pull request #59 from jasondavies/typo

Fix typo in comment.
Fix typo in JavaScript example grammar

Fixes GH-62.
Add |offset| property to exceptions thrown by parsers

Based on a patch by Marcin Stefaniuk (marcin@stefaniuk.info).
More responsibility for building an error message into |SyntaxError|
Add |expected| and |found| properties to exceptions thrown by parsers

Based on a patch by Marcin Stefaniuk (marcin@stefaniuk.info).
Fix typo in a comment in JavaScript example grammar
/bin/pegjs: Don't close standard output

Avoids "Error: process.stdout cannot be closed" error when invoked
without file arguments.
/bin/pegjs: Avoid calling |process.openStdin|

While |process.openStdin| is not officially deprecated, it's no longer
documented and just using |process.stdin| and resuming it seems to be
the official way.
Remove comment about IE in |quoteForRegexpClass|

We escape null for general compatibility (see comment at the top of the
function), not only because of IE.
README.md: Update compatibility information
Consolidate all variable name computations into one compiler pass

Before this change, knowledge about variable names was spread between
the |computeStackDepths| pass and the code emitter code. For example,
the fact that the |&...| expression needs one variable to store a
position was represented in both places.

This changes consolidates that knowledge and introduces a new
|computeVarNames| pass. This pass replaces old |computeStackDepths|
pass, does all computations realted to variable names and stores the
results in the AST. Note that some knowledge about variables
(inevitably) remained in emitter code templates.

Beside DRYing things up, this change simplifies the emitter
significantly. By storing variable names in the AST it also allows
introduction of a pass that will identify parameters passed to actions
using proper symbol tables. Right now, this is done in a hackish way
directly in the emitter, which won't work well with changes planned in
GH-69.
Move param computations from the emitter into a separate pass

This has two main benefits:

  1. The knowledge about scoping params in at one designated place,
     making all future adjustments in this area easier.

  2. Action-related code does not handle sequences specially anymore.
     Such knowledge/behavior doesn't belong there.
Semantic predicates now have access to preceding labels

Part of a fix for GH-69.
Fix |quote| visibility in generated parsers

|quote| is used outside of the |parse| function so it must be defined in
more outer scope.

Fixes a problem (introduced in e9d8dc8ebaeda081a6617bb261733bf1a18f2152)
where construction of some error messages could throw an error.
Replace Jakefile with Makefile

Doing scripting tasks in JavaScript is painful.
AST: Store rules in an array instead of an object

This simplifies the code a bit and makes the AST more regular (each node
type has a fixed set of properties). The latter may get useful later
when generalizing visitors.