Будущий рефакторинг CorrectWriting
Issue #237
new
Originally reported on Google Code with ID 237
Предыдущий рефакторинг (после 2.5) сделал анализаторы легко настраиваемыми в цепочку.
Однако осталось 2 зоны, в которых оказывается смешан код по всем анализаторам вместе:
1) определение видимого пользователю описания узла
2) генерация большой картинки (а также некоторых малых).
При текущей структуре данных разбить его невозможно.
Чтобы это сделать, необходимо стандартизовать данные, записываемые каждым анализатором
в string_pair. В принципе их можно представить в виде набора команд, либо набора пар
соответствий: слияние, разбиение, изменение текста, удаление лексемы, вставка лексемы,
перемещение лексемы - выполняемых над правильной, либо проверяемой строкой. LCS это
тоже по сути набор команд удаления, который может быть представлен для обеих строк.
Тогда каждый анализатор давал бы свой массив команд-соответствий (или два - для правильной
и проверяемой строк) и стало бы возможно написать универсальный алгоритм их обработки
и отображения.
Прежде всего надо продумать хорошую структуру данных. Я думаю, неплохой отправной точкой
будет класс block_formal_langs_matched_tokens_pair - он уже может описывать соответствия
неплохо; но его скорее всего понадобится снабдить дополнительной информацией.
Все позитивные продуманные предложения приветствуются.
Reported by oasychev
on 2013-10-18 18:56:41
Comments (1)
-
reporter - Log in to comment
Reported by
oasychev
on 2014-12-03 00:35:48