Дизайн компилятора - лексический анализ: сколько столбцов занимает \t?
Я должен хранить информацию о токене для моего лексического анализатора, например его строку и столбец. Если я сталкиваюсь с некоторым исходным кодом, как это: \t \t int myInt;
как узнать столбец токена? Потому что я не знаю, сколько столбцов нужно взять. Спасибо
1 ответ
Экспериментальные данные показывают, что gcc, по крайней мере, просто считает символ табуляции как один символ.
Если вы хотите найти номер столбца, в котором текст отображается условно, вам нужно будет выбрать ширину вкладки (вероятно, 8 или 4) и округлить до первой соответствующей позиции табуляции. Но проблема, конечно, в том, что разные пользователи выбирают разные ширины вкладок, и наличие у компилятора произвольного выбора собственной ширины вкладок, скорее всего, только добавит путаницы.