Cleaned up code more by moving the struct code out to a STRUCT type. And added support for defining ENUMS with function calls.