backtracking engine - практика 2011

Issue #30 wontfix
Oleg Sychev repo owner created an issue

Originally reported on Google Code with ID 30

1. Перевести backtracking на PHP с юнит-тестами и подключить к preg-вопросу как матчер
2. Реализовать функцию character для дочерних классов от preg_leaf с учетом $mergedassertions,
и юнит-тесты к ней.
3. Исследовать возможность преобразования регулярного выражения для устранения "больших"
ассертов.

Reported by oasychev on 2011-07-11 21:19:27

Comments (9)

  1. Oleg Sychev reporter

    ``` Для корректной работы character разрешается передать ей $str и $pos как в match_inner.

    Еще надо бы и match поправить так, чтобы она получала данные о чуствительности к регистру не через параметр, а из поля, заполняющегося при создании узла - оно предусмотрено в preg_leaf. Но это в сканер/парсер придется лезть, хотя вам оно может быть интересно - там есть что по инструментам посмотреть. ```

    Reported by `oasychev` on 2011-07-11 21:51:21

  2. Oleg Sychev reporter

    ``` Лучше будет создать два клона, в одном работать по backtracking, во втором - с character/match для листьев. Чтобы второй можно было вытянуть отдельно, до первого... ```

    Reported by `oasychev` on 2011-07-12 09:45:37

  3. Oleg Sychev reporter

    ``` Я просил создать 2 клона для разных видов работы.

    И вообще, вы не забываете выталкивать коммиты? Я вашей работы пока не вижу... ```

    Reported by `oasychev` on 2011-07-15 19:28:00

  4. Alexey Mednikov

    ``` Второй клон пока не создал по причине того, что полностью занят переписыванием движка на php и на character еще не смотрел. ```

    Reported by `McLeree` on 2011-07-15 19:32:51

  5. Oleg Sychev reporter

    ``` Сбор для показа результатов практики - ориентировочно (если не сообщу изменения) в четверг в 10-30. Напомните всем. ```

    Reported by `oasychev` on 2011-07-26 19:21:45

  6. Oleg Sychev reporter

    ``` В связи со слабой готовностью backtracking-матчера к работе в production-режиме принято решение не включать его в релиз 2.1 Что не снимает вопросов его участия в кросс-тестинге, как поставляя тесты другим матчерам (отдельный клон), так и проверив себя на этих тестах.

    Ближайшей задачей по работе над самим матчером является исследование эффективности текущего метода реализации backtracking в сложных ситуациях (вложенные квантификаторы и т.д.) и сравнение его с другими вариантами его реализации для выбора наиболее перспективного. Начать следует с того, чтобы составить списки сложных ситуаций с тестовыми примерами, критериев оценки эффективности способов реализации (время выполнения, затрачиваемая память и т.д.) и вариантов реализации backtracking'а. Списки показать мне. ```

    Reported by `oasychev` on 2011-11-11 17:12:43 - Labels removed: Milestone-Release2.1

  7. Oleg Sychev reporter

    ``` Кросс-тестинг выявил ситуацию, что у вас квантификаторы по умолчанию нежадные. Это не соответствует синтаксису PCRE и остальных матчеров.

    Уважайте параметр $greed в классах preg_node для квантификаторов. Вы имеете право прописать accept так, чтобы принимать только нежадные квантификаторы, если жадные пока не поддерживаются.

    Необходимые изменения: 1) проверять $greed в квантификаторах - можно отказываться выполнять регексы с жадными, но нежадным образом должны матчиться только нежадные 2) переделать тесты так, чтобы квантификаторы в них были нежадными в соответствии с синтаксисом (добавить ? после квантификатора) ```

    Reported by `oasychev` on 2011-11-19 10:55:46

  8. Oleg Sychev reporter
    Этому коду оказалось не суждено дожить до релиза...
    

    Reported by oasychev on 2013-09-06 13:05:57 - Status changed: WontFix

  9. Log in to comment