Большинство компиляторов разделены на части: интерфейс компилятора называется лексическим анализатором или сканером. Эта часть компилятора читает фактические символы и создает токены. Он имеет конечный автомат, который, увидев управляющий символ, решает, является ли он подлинным (например, когда он появляется внутри строки), или он изменяет следующий символ. Токен выводится соответственно как escape-символ или какой-либо другой токен (например, табуляция или новая строка) для следующей части компилятора ( анализатор ). Конечный автомат может сгруппировать несколько символов в токен.