Заменить нумерацию узлов в DFA-матчере на ссылки

Issue #26 wontfix
Oleg Sychev repo owner created an issue

Originally reported on Google Code with ID 26

Непонятно, почему вместо номеров узлов нельзя использовать ссылки на них...

Так мы лишаемся операции поиска узла по номеру. А ссылка на два одинаковых узла должна
быть разной, поскольку создавались они лексером или парсером отдельно.

Reported by oasychev on 2011-05-12 22:31:07

Comments (8)

  1. Oleg Sychev reporter

    ``` Вы храните матрицу инциденций - двумерный массив где строками и столбцами являются индексы узлов, а на пересечении - объект листа (переход)?

    И в любом случае, мне кажется нумерацией должен заниматься конструктор dfa_preg_node если уж она используется... Зачем проводить отдельный проход по дереву? ```

    Reported by `oasychev` on 2011-05-19 18:16:16

  2. Oleg Sychev reporter

    ``` Как было установлено, хранение ссылок (номеров) на узлы дерева в автомате (карте) чревато проблемами при их изменении (например при слиянии простых ассертов с последующими узлами в ситуации (a|\b)c ). Вместо этого следует хранить отдельные объекты-копии узлов...

    Соответственно нужда в нумерации исчезает.

    Поскольку возможность слияния простых ассертов запланирована на релиз, эту переработку следует сделать до релиза...

    ```

    Reported by `oasychev` on 2011-09-14 14:20:45 - Labels added: Milestone-Release2.1

  3. Oleg Sychev reporter

    ``` Отложено до релиза 2.2 и перехода на общий класс конечного автомата.... ```

    Reported by `oasychev` on 2011-11-14 15:13:22 - Labels added: Maintainability - Labels removed: Milestone-Release2.1

  4. Oleg Sychev reporter

    ``` Делается в процессе перехода на общий класс конечного автомата. ```

    Reported by `oasychev` on 2011-12-27 10:09:43 - Labels added: Milestone-Release2.2

  5. Oleg Sychev reporter

    ``` Теперь в preg узлах есть поле id. Можно использовать. Отдельную нумерацию из ДКА убрать.... ```

    Reported by `oasychev` on 2012-07-24 14:54:19 - Status changed: `Accepted`

  6. Log in to comment