LINUX.ORG.RU

История изменений

Исправление den73, (текущая версия) :

В принципе, резонный вопрос - а где же в парсере так необходимо нарушение чистоты структур? Как минимум, эффективная таблица символов - это хеш-таблица или б-дерево. Можно помыслить и многоверсионные хеш-таблицы без полного копирования.

А вообще ты навёл меня на плохую мысль: если язык по семантике требует двух проходов при чтении, то его исходный текст вообще нельзя быстро раскрасить во время редактирования без дополнительных «эвристик». Допустим, если в языке можно обращаться к именам выше места, где они декларированы и если я хочу по цвету отличить идентификаторы, определённые в редактируемом файле, то в момент, когда я посреди файла открываю комментарий, все расположенные ниже этого места идентификаторы как бы исчезают и их нужно перекрасить.

Т.е., может оказаться, что невозможно использовать один и тот же парсер и для транслятора, и для раскраски.

Исходная версия den73, :

В принципе, резонный вопрос - а где же в парсере так необходимо нарушение чистоты структур? Как минимум, эффективная таблица символов - это хеш-таблица или б-дерево. Можно помыслить и многоверсионные хеш-таблицы без полного копирования.

А вообще ты навёл меня на плохую мысль: если язык по семантике требует двух проходов при чтении, то его исходный текст вообще нельзя быстро раскрасить во время редактирования без дополнительных «эвристик». Допустим, если в языке можно обращаться к именам выше места, где они декларированы и если я хочу по цвету отличить идентификаторы, определённые в редактируемом файле, то в момент, когда я посреди файла открываю комментарий, то расположенные ниже идентификаторы как бы исчезают и их нужно перекрасить.

Т.е., может оказаться, что невозможно использовать один и тот же парсер и для транслятора, и для раскраски.