Если правило создается из void-подправил, оно требует обработчик rule(_ : void) : T.
Немерле запрещает аргументы типа void. То есть создать обработчик невозможно.
Если правило включает void-подправило с квантификатором '?', требуется обработчик с аргументом option[void], что тоже создает проблемы.
Здравствуйте, catbert, Вы писали:
C>Если правило создается из void-подправил, оно требует обработчик rule(_ : void) : T. C>Немерле запрещает аргументы типа void. То есть создать обработчик невозможно.
C>Если правило включает void-подправило с квантификатором '?', требуется обработчик с аргументом option[void], что тоже создает проблемы.
Тут ты что-то путаешь.
Внутри типизатора option[void] всегда превращается в void.
Только что проверил.
И оно так уже больше года работает, если верить истории изменений.
C>Как обойти?
Фиксить макрос.
Как фиксить еще нужно понять.
Но я, честно говоря, не понял, зачем оно тебе вообще понадобилось?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, catbert, Вы писали:
C>Если убрать void с s или logicalNewLine, придется переписывать другие обработчики.
Первое что приходит в голову это завети правило без void в котором делать всю работу и вызывать его и правила с void.
Тогда и грамматику трогать не придется и нужное поведение получишь.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн