That was always my impression, you're writing the AST directly, then manipulating it with fancy macros.