Ваш вопрос не имеет смысла.Прочитав «//», он должен продолжить чтение до новой строки, чтобы найти его.Там нет выбора по этому поводу.Нет другого способа найти символ новой строки.
Концептуально, компиляция имеет несколько этапов, которые логически перед анализом:
- Сканирование.
- Screening.
- Tokenization.
(1) в основном означает чтение файла символ за символом слева направо.(2) означает отбрасывание вещей, не представляющих интереса, например, сведение нескольких последовательностей новой строки / пробела в один пробел.(3) означает объединение того, что осталось в токены, например, идентификаторы, ключевые слова, литералы, знаки пунктуации.
Комментарии выводятся на экран во время (2).В современных компиляторах все это делается сразу детерминированным автоматом.