More specific types
Integrated class-based AST compiler
Used std::string for grammar buffer, refactor yyinput