2017-02-06 4 views
1

В spirit::qi один мог пройти анализатор правила в качестве унаследованного атрибута, а затем использовать его непосредственно:Передача анализатора правила во время выполнения в X3

... >> lazy(_r1) >> ... 

Есть ли работа вокруг это в X3?

Я могу «ввести» анализатор в нужный контекст правила с помощью with<state_tag>(std::ref(my_parser))[destination_rule], и я могу получить его в рамках некоторого семантического действия позже, но я не понимаю, как его «вызвать».

ответ

1

Я не думаю, что он есть.

Я должен признать, что я просто взламываю большинство вещей с помощью парсеров, возвращающих lambdas, но если вам действительно нужно сделать что-то, что реагирует на входной поток, изменив состояние соответственно, вы, вероятно, захотите написать собственный тип парсера X3 ,

Обратите внимание, что создание пользовательских типов парсеров на удивление прост в X3. Baptiste Wicht Agustín «K-ballo» В Берге есть несколько примеров, и я думаю, что у меня также есть их на месте. Позвольте мне найти ссылки

+0

Действительно, misremembered автор. Нашел его снова! – sehe

Смежные вопросы