declNode makes some typedefs:
typedef enum { UNKNOWN, TOP, BLOCK, FORMAL, SU, ENUM, PROC } Decl_location;
This enumerated type names the possible locations of the declaration. This information is needed for, among other things, deciding how to format the declaration for output to a .c file. For example, a declaration in a function prototype is followed by a comma, but a declaration in the global scope is followed by a semicolon.
typedef enum { NONE, AUTO, EXTERN, REGISTER, STATIC, TYPEDEF } Storage_class;
This enumerated type names the C storage classes. Note that a typedef is just a variable declaration with storage class TYPEDEF.