Я разочаровался в скриптовых языках до предела. Написал на PHP сканер текста, буферный построитель строк, лексический анализатор для 1С и модуль подсветки. Сделал первый шаблон раскраски по примеру Sublime Text2: Monokai. И что вы думаете? Код на 1С, объёмом 5667 байт красится...0.7 секунд. Занавес.
Причина, как выяснилось сегодня, довольно банальна. Ну нет в PHP человеческих массивов и символов. Есть только упорядоченные словари и строки. Функция count, возвращающая число элементов словаря, как ни странно, но медленная. Функции ord и chr тоже. Изменение символа в строке очень дорогая операция. Теперь понимаю, почему форумные движки предпочитают монструозные циклические очистки и регулярки. Сам PHP (Ruby, вставьте своё) крайне медленный, а вот оптимизированные функции на Си обладают скоростью, которая сглаживает общее впечатление. Только начинка-то остаётся.
Готовый примерДемо для скармливания 1С кодаP.S. В демо остался ошибочный замер времени, не обращайте внимания.