When you name your source files *.c, MSVC (2010) assumes it's compiling C, which means C89. All block-local variables need to be declared at the beginning of your functions.
Or at begginning of {} block.
Fix memory leak when using lexer rule label references.

Inspired by bennyk. Since this patch uses std::unique_ptr the build now requires
a compiler supporting at least some of C++11 features.
AST initial support (has memory leaks)
build test cleanups