Preproc enum

Fixes #1390. Implemented enums. All preprocessor tests are green, so nothing should be broken.