Сейчас перегруженные обработчики для правил приоритетного выбора не разрешены, хотя, как мне кажется, было бы очень удобно иметь такую возможность. Вопрос просто из интереса — чем вызвано такое ограничение? Просто не хватило времени сделать или есть какие-то принципиальные проблемы?
Примечание: я знаю, что аналогичный результат можно легко получить добавлением промежуточных правил, в которых будут преобразовываться типы значений. Но эти правила замусоривают грамматику и могут затруднять понимание.
Mumitroller
... << RSDN@Home 1.2.0 alpha 4 rev. 1325>>
Re: [PEG] Перегруженные обработчики для правил приоритетного
Здравствуйте, Mumitroller, Вы писали:
M>Сейчас перегруженные обработчики для правил приоритетного выбора не разрешены, хотя, как мне кажется, было бы очень удобно иметь такую возможность. Вопрос просто из интереса — чем вызвано такое ограничение? Просто не хватило времени сделать или есть какие-то принципиальные проблемы? M>Примечание: я знаю, что аналогичный результат можно легко получить добавлением промежуточных правил, в которых будут преобразовываться типы значений. Но эти правила замусоривают грамматику и могут затруднять понимание.
Ничего не понял.
Покажи код который ты хочешь получить.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[2]: [PEG] Перегруженные обработчики для правил приоритетн
Здравствуйте, VladD2, Вы писали:
VD>Это усложнит систему и сделает ее менее понятной. Причем, на практике, выгоды от этого никакой не будет. Что так два обработчика, что так.
Обработчика действительно понадобится по 2 в обоих вариантах. Но в случае, когда разрешен overload обработчиков, не понадобится дополнительное правило, которое нужно только для преобразования типа. То есть грамматика будет проще. Но это не критично.
Mumitroller.
... << RSDN@Home 1.2.0 alpha 4 rev. 1325>>
Re[5]: [PEG] Перегруженные обработчики для правил приоритетн
Здравствуйте, Mumitroller, Вы писали:
M>Обработчика действительно понадобится по 2 в обоих вариантах. Но в случае, когда разрешен overload обработчиков, не понадобится дополнительное правило, которое нужно только для преобразования типа. То есть грамматика будет проще. Но это не критично.
Мы планировали автоматически генерировать правило для самого choice-а, которое просто возвращает значение своего параметра.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: [PEG] Перегруженные обработчики для правил приоритетн
Здравствуйте, VladD2, Вы писали:
VD>Мы планировали автоматически генерировать правило для самого choice-а, которое просто возвращает значение своего параметра.
Я в этом мегакомите http://code.google.com/p/nemerle/source/detail?r=9495 сделал что для таких правил если обработчика нет то его просто не вызывают.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[7]: [PEG] Перегруженные обработчики для правил приоритетн
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, VladD2, Вы писали:
VD>>Мы планировали автоматически генерировать правило для самого choice-а, которое просто возвращает значение своего параметра. WH>Я в этом мегакомите http://code.google.com/p/nemerle/source/detail?r=9495 сделал что для таких правил если обработчика нет то его просто не вызывают.
Здравствуйте, hardcase, Вы писали:
H>ОК. Такой код я не проверял (хотя подозревал), но точное поведение стоит задокументировать.
Такой код сейчас не работает.
Я говорю о том надо это делать или нет?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[11]: [PEG] Перегруженные обработчики для правил приоритет
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, hardcase, Вы писали:
H>>ОК. Такой код я не проверял (хотя подозревал), но точное поведение стоит задокументировать. WH>Такой код сейчас не работает. WH>Я говорю о том надо это делать или нет?
Уже заметил.
Вот такие обработчики есть в C#:
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, hardcase, Вы писали:
H>>В связи с этим изменением отрефакторил парсер C#. WH>Еще можно сделать вот такие методы не обязательными: WH>
WH> private parenthesesExpr(_ : NToken, se : int, _ : NToken) : int
WH> {
WH> se
WH> }
WH>
WH>Те если один из параметров совпадает с возвращением значением, а остальные NToken.
А вот это зря. Тут может быть потеря информации о местоположениях.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: [PEG] Перегруженные обработчики для правил приоритетн
Здравствуйте, hardcase, Вы писали:
H>Здравствуйте, para, Вы писали:
P>>считаю что лучше сделать спец. синтаксис в грамматике или в теле класса для сокращений
H>Тогда легче просто не поддерживать этот случай. Спец.синтаксис еще нужно помнить и рассказывать он нем людям.
я имел в виду одно ключевое слово, например атрибут в грамматике. это и задокументировать несложно и сократит копи-паст)