lexer: Refactoring with a preprocessor abuse :)