Add status to readme so people don't try to use it and get disappointed.
Correct readme formatting.
Take 1 of bootstrapping. I don't really like it, because I'm repeating everything Grammar already knows how to do. Committing before trying Take 2.
Replace assertEquals() with ok_() so tests still do something under python -O.
For anonymous nodes, at least show the class name in the repr.

Showing Node even if it's a RegexNode is misleading and uninformative.
Bootstrap the parser. Big code dump.

It has succeeded in parsing its grammar description DSL and in visiting that AST to turn it into working Expressions. There are still some bugs to work out; test_grammar:IntegrationTests fails. And we should probably have the parsed grammar reparse the DSL description of the DSL and use *that* as our standard grammar--standard multi-level compiler bootstrap--or else at least have a test assert that that's equivalent to what we have now.

Some other highlights:

* Make node repr more explicit. Now I don't get confused anymore. And if I was getting confused, imagine the poor non-me user.
* Start ExpressionFlattener, which will ultimately turn into round-tripping for Expressions: they'll be able to spit out a DSL representations of themselves.
* Fix and complete lots of stuff surrounding expression-tree visitation and DSL parsing. NodeVisitor no longer implements a default generic_visit, because it's not obvious if there would be a generally useful one. Turn visit_rules around to join the era where NodeVisitor, not the subclasses, take care of the recursion.
* Fix test_optional, which was wrong.
* Pick a decent (though not great) name for the grammar description language. We're calling it the "DSL". Renamed a bunch of symbols in that vein.

Next, see what's breaking test_integration, and fix it. Then, after a few more tests, I'll consider #2 done.
Round-tripping an Expression back into the DSL now works, modulo backslash escaping.
Make benchmarks 100x faster so tests are quick.
Make our first level-1 integration test pass, mostly by adding $ to the eol pattern.

The level-0 expression tree is used to parse the DSL grammar which is itself written in the DSL. The result is the level-1 expression tree, which we test here. We should then reparse the written-in-DSL DSL grammar with the level-1 tree, either as part of the bootstrap at import time or, at least, in a test, to ensure equivalence.
Bring readme mostly up to date.
Bump version (down) to 0.1, preparing for a preview release.

Work around `python setup.py test` bug in 2.6.
Rename a few things, and fix comments and docstring formatting.
Add a .gitignore, as `python setup.py test` started dumping eggs in the working dir.
Polish readme for 0.1 release.
Bootstrap to level 1 (at import time) so we're sure user grammars get first-class treatment.
Put an example and the 0.1 release notes up at the top so people don't miss them or get bored.
Brian was confused because he didn't know what PEG was.
Get rid of superfluous and_terms and or_terms rules. generic_visit already takes care of that stuff!
Simplify DslVisitor and factor up to create lift_child().
Get rid of `import *` so we can see where symbols come from. Fixes #5.