typedef enum : unsigned char { ... } is a non-standard syntax. I had not seen it before in C/C++. We can extend the parser to handle that for a future version of SlickEdit. I will file a feature request just for that.
You do need to configure the preprocessing correctly. If SlickEdit can not prove whether a preprocessing condition is true or false, it will parse both paths, which will leave you with "typedef enum : unsigned char typedef enum { ... }; which is still nonsense code as far as the parser is concerned.
As for the preprocessing issue, what you need to do is create PC_SIMULATION as a #undef (see the "undef" checkbox on the preprocessing dialog), because you want the parser to take the other code path through the standard code which we will be able to parse.
One final warning. 15.0.1 is a little picky about the preprocessing configuration options applying, so you may have to close the editor and restart it for them to take effect. This will be fixed in the next release.