This adds a little more type safety and makes debugging easier (the debugger shows the symbolic name, not the numeric value).
While this increased the size of the type from 2 to 4 in gcc, it didn't increase the size of the NODE.
If the new size of NODETYPES proves to be problematic, it can be changed to an "enum : unsigned short".