На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Serafim, fatalist
  
    > Парсер на PHP... , ...с использованием конечных автоматов.
      Кто-нибудь писал сабж? Сейчас этим занимаюсь, иногда вопросы появляются, мож кто сможет посоветовать?
        Вывешивай.
          Во-первых, зачем отделять парсер от сканера? Я сейчас пытаюсь сделать разбор только на одном уровне.

          Есть, например, такая проблема: когда есть тэг типа {fname pname="value"} внутри value можно использовать все, кроме кавычки ". Если нужна кавычка, делаем ей эскейп бэкслешем \. Я предполагаю сканить символы регэкспами, чтобы можно было написать для value что-то типа

          ExpandedWrap disabled
            \"([^\\\"]|\\[\\\"ntr])*\"


          т.е. (пробелы игнорировать :) )

          ExpandedWrap disabled
            <ldelim>( [^<escaper><rdelim>] | <escaper>[<escapedchars>+] )* <rdelim>


          Потом хочу записать в словарь (или как это правильно называется) последовательность [^<escaper><rdelim>], но поскольку она тогда будет являться одним из элементов множества входных данных для функции автомата, то проверяться будет каждый раз, что неправильно, т.к. под этот регэксп подойдет, например символ @ в имени параметра (pname) или функции (fname)... проверять-то я собираюсь на одном уровне... т.е. нужно переключать словари в каждом состоянии , так получается, или вводить для "слов" списки допустимых/запрещенных для проверки состояний?
            Спроси "подсветка синтаксиса на форуме". Это недавно проходили.
            У меня есть свой готовый вариант, но нужно ли вывешивать? Еслит нужно - скажи.

            Мне кажется, это сначала не прикладные исследования, но для тренировки. Ближе к теме "алгоритмы".
              У кого спросить?

              Цитата
              Tishaishii, 30.08.04, 14:11
              Мне кажется, это сначала не прикладные исследования, но для тренировки.


              Что ты имел ввиду?
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0240 ]   [ 15 queries used ]   [ Generated: 28.04.24, 07:57 GMT ]