Дизайн компилятора - лексический анализ: сколько столбцов занимает \t?

Я должен хранить информацию о токене для моего лексического анализатора, например его строку и столбец. Если я сталкиваюсь с некоторым исходным кодом, как это: \t \t int myInt; как узнать столбец токена? Потому что я не знаю, сколько столбцов нужно взять. Спасибо

1 ответ

Решение

Экспериментальные данные показывают, что gcc, по крайней мере, просто считает символ табуляции как один символ.

Если вы хотите найти номер столбца, в котором текст отображается условно, вам нужно будет выбрать ширину вкладки (вероятно, 8 или 4) и округлить до первой соответствующей позиции табуляции. Но проблема, конечно, в том, что разные пользователи выбирают разные ширины вкладок, и наличие у компилятора произвольного выбора собственной ширины вкладок, скорее всего, только добавит путаницы.

Другие вопросы по тегам