AST and beginnings of a parser