Вопросы по теме 'boost-spirit'
boost::spirit составление грамматик из грамматик
Я понял, как использовать дух, т. е. написал умеренно сложную грамматику. Я всегда придерживаюсь подхода расширения программы — по одной подсистеме за раз. Я написал структуры данных для сложной модели, которая имеет 4 типа на самом высоком уровне....
828 просмотров
schedule
22.04.2024
Путаница между заполнителями 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 просмотров
schedule
24.02.2024
Как использовать 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 просмотров
schedule
01.04.2024
Разбор имперских значений с помощью 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 просмотров
schedule
03.12.2022
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 просмотров
schedule
09.10.2022
Использование атрибутов токена лексера в правилах грамматики с 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 просмотров
schedule
19.02.2024
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 просмотров
schedule
11.05.2024