Здравствуйте, catbert, Вы писали:
C>Было бы неплохо иметь такую фичу.
Хорошая идея!
Не хочешь попробовать сам добавить эту фичу?
Задача, в общем-то, не сложная. Нужно сложить все правила в одну хэш-таблицу, а затем взять правило start и рекурсивно пробежаться по его телу и телам правил на которые оно ссылаются. При том нужно удалять найденные таким образом правила из хэш-таблицы. В итоге в хэш-таблице останутся только те правила на которые нет ссылок. Они то и нужно сообщить.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: [PEG] Предупреждения о неиспользованных правилах
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, catbert, Вы писали:
C>>Было бы неплохо иметь такую фичу.
VD>Хорошая идея!
VD>Не хочешь попробовать сам добавить эту фичу?
VD>Задача, в общем-то, не сложная. Нужно сложить все правила в одну хэш-таблицу, а затем взять правило start и рекурсивно пробежаться по его телу и телам правил на которые оно ссылаются. При том нужно удалять найденные таким образом правила из хэш-таблицы. В итоге в хэш-таблице останутся только те правила на которые нет ссылок. Они то и нужно сообщить.
Постараюсь реализовать на днях
Re[3]: [PEG] Предупреждения о неиспользованных правилах
Здравствуйте, VladD2, Вы писали:
VD>Задача, в общем-то, не сложная. Нужно сложить все правила в одну хэш-таблицу, а затем взять правило start и рекурсивно пробежаться по его телу и телам правил на которые оно ссылаются.
Все оказалось сложнее Надо еще по extension-правилам пробегаться.
И еще такие пробежки имеют свойство зацикливаться.
Re[3]: [PEG] Предупреждения о неиспользованных правилах
Здравствуйте, catbert, Вы писали:
C>Все оказалось сложнее Надо еще по extension-правилам пробегаться. C>И еще такие пробежки имеют свойство зацикливаться.
Забей. Там все совсем весело если как следует подумать.
Особенно в сочетании с динамическим расширением грамматики.
Ибо в этом случае мы вообще правила выкидывать не можем. Ибо они могут понадобиться грамматике которая импортирует данную.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: [PEG] Предупреждения о неиспользованных правилах
Здравствуйте, WolfHound, Вы писали:
WH>Особенно в сочетании с динамическим расширением грамматики. WH>Ибо в этом случае мы вообще правила выкидывать не можем. Ибо они могут понадобиться грамматике которая импортирует данную.
Дык помечать такие правила нужно как-то. Зачем создавать почку для разведения грязи?
Способ обнаружить неиспользуемые правила нужен. Иначе в грамматиках по больше будет куча херни.
К тому же твой же алгоритм херит все неиспользуемые правила к чертям собачим. Так что и подключаться то будет не к чему.
ЗЫ
А когда мы таки увидим эти самые расширяемые правила? А то синтаксис вроде как уже более месяца есть, а воз ныне там.
Релиз не за горами. Хорошо бы к нему иметь законченный парсер. С расширением и точками отсечения.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: [PEG] Предупреждения о неиспользованных правилах
Здравствуйте, VladD2, Вы писали:
VD>Дык помечать такие правила нужно как-то. Зачем создавать почку для разведения грязи?
Единственное что приходит в голову это добавить в грамматику что-то типа модификаторов доступа типа private/public.
VD>К тому же твой же алгоритм херит все неиспользуемые правила к чертям собачим. Так что и подключаться то будет не к чему.
Это изменить не сложно.
VD>А когда мы таки увидим эти самые расширяемые правила? А то синтаксис вроде как уже более месяца есть, а воз ныне там.
Да что-то руки все не доходят.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: [PEG] Предупреждения о неиспользованных правилах
Здравствуйте, WolfHound, Вы писали:
VD>>Дык помечать такие правила нужно как-то. Зачем создавать почку для разведения грязи? WH>Единственное что приходит в голову это добавить в грамматику что-то типа модификаторов доступа типа private/public.
Поясни свою мысль. Я что-то не понял. Зачем?
Не проще ли ругаться на все правила на которые нет ссылки из стартовых правил и которые при этом не помечены специальным атрибутом (например, export). В прочем твой "public" фактически будет аналогом такого атрибута. private не особо нужен, так как все правила по умолчанию должны быть private. Иначе смысла нет.
VD>>К тому же твой же алгоритм херит все неиспользуемые правила к чертям собачим. Так что и подключаться то будет не к чему. WH>Это изменить не сложно.
А нужно ли? В общем, чувствую тут нужно посидеть и серьезно подумать. Если есть время и желание стучись в Скайп, обмозгуем.
VD>>А когда мы таки увидим эти самые расширяемые правила? А то синтаксис вроде как уже более месяца есть, а воз ныне там. WH>Да что-то руки все не доходят.
Пора бы уже сделать усилие. А то времени уже прошло много. Релиз на носу, а главной фичи парсера все нет. Сам понимаешь, без динамического расширения PegGrammar не сильно отличается от любых других генераторов парсеров. А комбинаторным, так и вовсе проигрывает в гибкости.
Ну, а о начале работы над Nemerle 2 до реализации динамического расширения и речи идти не может.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: [PEG] Предупреждения о неиспользованных правилах
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, VladD2, Вы писали:
VD>>Дык помечать такие правила нужно как-то. Зачем создавать почку для разведения грязи? WH>Единственное что приходит в голову это добавить в грамматику что-то типа модификаторов доступа типа private/public.
ну да... вряд ли грамматики с очень большим количеством ентри-пойнтов будут часто встречаться.