cleanup llvm_enum ast generation, also generate the abstract type