Вопросы по теме 'boost-spirit'

boost::spirit составление грамматик из грамматик
Я понял, как использовать дух, т. е. написал умеренно сложную грамматику. Я всегда придерживаюсь подхода расширения программы — по одной подсистеме за раз. Я написал структуры данных для сложной модели, которая имеет 4 типа на самом высоком уровне....
828 просмотров

Путаница между заполнителями boost::bind и boost::phoenix
В документации boost::spirit есть это важное предупреждение Существуют разные способы написания семантических действий для Spirit.Qi: с помощью простых функций, Boost.Bind , Boost.Lambda или Phoenix . Последние три позволяют использовать...
2070 просмотров
schedule 29.11.2022

Boost.Spirit: отчеты об ошибках Lex + Qi
Я пишу синтаксический анализатор для довольно сложных конфигурационных файлов, в которых используются отступы и т. д. Я решил использовать Lex для разбиения ввода на токены, так как это упрощает жизнь. Проблема в том, что я не могу найти примеры...
963 просмотров
schedule 10.12.2022

Грамматика повышения духа соответствует шумному вводу
Я пытаюсь разобрать зашумленный ввод, в идеале я мог бы увидеть, соответствует ли строфа правилу и получает ли он нужные мне данные и отбрасывает остальные. Данные, которые я хочу, следующие. Event: Newstate Channel: SIP/104-000001bb...
856 просмотров
schedule 14.10.2022

Ошибка компиляции Boost :: Spirit
Я редко спрашиваю об ошибке компиляции, но меня озадачила следующая ошибка. Я успешно скомпилировал библиотеки ускорения для Android и пытаюсь использовать ее библиотеку Spirit для создания парсера. Но когда я попытался скомпилировать. Я получаю...
1803 просмотров
schedule 01.12.2022

Разбор смешанных значений и пар ключ-значение с помощью Boost.Spirit
У меня есть простая грамматика, состоящая из смешанных переменных ( $(name) ) и пар переменная-значение ( $(name:value) ). У меня есть написанный вручную рекурсивный синтаксический анализатор, но я заинтересован в использовании его в качестве...
1883 просмотров
schedule 08.11.2023

Изменить тип атрибута при синтаксическом разборе двоичного файла с помощью boost :: spirit
Я успешно использовал boost::spirit::qi для анализа потока, состоящего из встроенных парсеров (например, byte_ , little_word и т. Д.). Однако теперь мне нужно проанализировать данные, которые не попадают точно в одну из этих категорий....
980 просмотров

Как использовать boost::tuple в качестве атрибута в правиле boost::spirit?
У меня есть следующее правило в boost::spirit : typedef boost::tuple<int, int> Entry; qi::rule<Iterator, Entry(), Skipper> entry; entry = qi::int_ >> qi::int_; Но второй int в кортеж не записывается. Есть ли способ...
1362 просмотров
schedule 09.01.2024

Использование boost::phoenix::bind вместе с boost::spirit::qi::symbols::add
Я хочу проанализировать число с плавающей запятой в текстовом файле и вставить его в таблицу символов; парсер и таблица символов предоставлены spirit::qi. Вот мой код: #include <boost/spirit/include/qi.hpp> #include...
1320 просмотров

Разбор имперских значений с помощью Boost Spirit (qi)
Я новичок в духе Я хотел бы проанализировать имперское строковое значение в структуру, используя дух. Входные данные должны принимать следующие синтаксисы: 5'3"1/2 5'1/2 3"1/2 struct imp_constant выглядит так, пожалуйста,...
366 просмотров
schedule 24.09.2022

Необязательный парсинг boost::spirit в структуру, адаптированную для слияния
Если есть структура struct price { int chicken; int cow; bool in_stock; std::string place; }; который адаптирован с использованием boost::fusion. Если есть необходимость разобрать, но по желанию на in_stock и поместить. например...
1393 просмотров
schedule 25.09.2022

Boost.Spirit.Qi: Как вернуть атрибуты с помощью трюка с Набиалеком
Следуя нескольким руководствам (например, http://boost-spirit.com/home/articles/qi-example/nabialek-trick/ ) Я хочу использовать трюк Nabialek, чтобы иметь динамический синтаксический анализатор. Разбор уже работает нормально, но атрибуты не...
1442 просмотров
schedule 27.10.2022

Ошибка компилятора Boost.Spirit
#include <boost/spirit/include/qi.hpp> #include <boost/fusion/include/adapt_struct.hpp> #include <iostream> namespace qi = boost::spirit::qi; template <typename Iterator> struct CommandGrammar : qi::grammar<Iterator,...
115 просмотров
schedule 18.12.2023

Сравнение строк без учета регистра текста токена Boost::Spirit в семантическом действии
У меня есть токенизатор и парсер. в синтаксическом анализаторе есть специальный тип токена KEYWORD для ключевых слов (их около 50). В моем синтаксическом анализаторе я хочу убедиться, что токены соответствуют моим ожиданиям, поэтому у меня есть...
292 просмотров

Boost Spirit 2.5.2 автономный
Был ли отдельный пакет для Spirit для версии 2 и выше? Последней автономной версией, найденной на веб-сайте Spirit, была версия 1.8.5. Или есть способ извлечь из последней версии только необходимые зависимости для Spirit?
341 просмотров
schedule 21.12.2023

Директива Spirit qi no_case применяется к грамматике
У меня есть грамматика, которая работает правильно, теперь я хочу использовать ее для анализа строки без учета регистра. Я использую Boost 1.46 на Ubuntu 12.04 Linux. Я попробовал следующий код: bool parseSuccess = qi::phrase_parse(begin,...
303 просмотров
schedule 10.02.2024

Как я могу добавить условные точки ожидания в духе X3
В настоящее время я добавляю точки ожидания в свою грамматику в X3. Теперь я наткнулся на правило, которое выглядит так. auto const id_string = +x3::char("A-Za-z0-9_); auto const nested_identifier_def = x3::lexeme[...
258 просмотров

Использование атрибутов токена лексера в правилах грамматики с Lex и Qi из Boost.Spirit
Рассмотрим следующий код: #include <boost/phoenix.hpp> #include <boost/spirit/include/lex_lexertl.hpp> #include <boost/spirit/include/qi.hpp> #include <algorithm> #include <iostream> #include <string> #include...
727 просмотров

Spirit X3: базовый пример составных компонентов не компилируется
Этот код, дословно взятый из документации x3, не компилируется #include <string> #include <utility> #include <boost/spirit/home/x3.hpp> namespace x3 = boost::spirit::x3; int main(int argc, char* argv[]) { std::string...
251 просмотров
schedule 08.04.2024

Как переписать парсеры qi с помощью qi::_1/qi::_N в x3?
Допустим, мы хотим разобрать выражение внутреннего продукта и получить результат. "SUM({1, 2, 3} .* {4, 5, 6})" qi::_1 и qi::_2 очень удобны для ссылки на i -ые атрибуты в синтаксическом анализаторе. void Test(std::string const&...
139 просмотров