AST generation library