ilovb, windows-1251 кодировка отображается как utf-8 почему-то. И можно пример кода, на котором пробовали?
Не знаю PHP, но могу предположить что:
1. Используются сугубо низкоуровневые (а-ля обероновские) приемы при работе с массивами (последовательностями). Например, используется WHILE там, где на самом деле самое место для "встроенной" find/indexOf. И т.п.
2. Что касается конкретно строк, то во всех приличных ЯП они немодифицируемые (потому как их трудно реализовать эффективно в протвном случае). Поэтому даже если ЯП (PHP) позволяет их модифицировать, то скорее всего эффективнее будет использовать что-то другое (например, сначала перегнать строку в массив, совершить все манипуляции, затем обратно перегнать массив в строку).
Я выложу исходники после того, как соптимизирую, что смогу. Сканер текста перенесён с Паскаля, так же как и ряд функций (set для множеств, in - для проверки вхождения в множество). Собственно, была попытка классической ступенчатой разработки. И всё хорошо, за исключение скорости. В остальном Вы, конечно, правы, хотя в PHP строки ANSI-однобайтовые и можно было ряд оптимизаций сделать, в том числе и для односимвольных констант.
Berserker, я вот не совсем понял какая задача решалась.
Сгенерить html с разукрашеным кодом 1С?
Да. Практикум по 1С для студентов генерируется из продвинутого markdown-синтаксиса в html, готовый для загрузки на сервер. Соответственно и подсветка тоже на PHP. Ранее была на highlighter.js.
P.S. Без регистрации скачать разукрашку не удаётся.