В Си лексический анализ происходит первым. Затем препроцессор применяет макросы и все их магические преобразования к результирующему потоку токенов. Синтаксический анализ выполняется только после того, как препроцессор сработал.
Таким образом, чтобы узнать ответ на свой вопрос, просто запустите код в препроцессоре. С gcc
это вопрос использования флага командной строки -E
. Если препроцессор доволен, то лексический анализ по определению прошел нормально (как в вашем примере).