Вопросы по теме 'boost-spirit-qi'
Разбор строки с помощью Boost Spirit 2 для заполнения данных в определяемой пользователем структуре
Я использую Boost.Spirit, который распространялся вместе с Boost-1.42.0 с VS2005. Моя проблема такова.
У меня есть эта строка, разделенная запятыми. Первые 3 поля — это строки, а остальные — числа. нравится....
2191 просмотров
schedule
17.11.2023
Проблема с парсерами Boost Spirit и Lex
Я изо всех сил пытался попытаться (постепенно) изменить пример кода из документации, но с небольшим отличием я не получаю ожидаемого поведения. В частности, оператор «if» терпит неудачу, когда (моя цель состоит в том, что) он должен пройти (было...
3377 просмотров
schedule
25.06.2023
В чем проблема с этим простым парсером boost::spirit::qi?
У меня есть этот простой синтаксический анализатор, предназначенный для анализа строк с двойными кавычками в стиле VB. Таким образом, парсер должен получить что-то вроде
"This is a quoted string containing quotes ("" "")"
в вывод
This is...
962 просмотров
schedule
31.10.2022
Как я могу извлечь std::string с помощью boost.spirit?
Используя boost.spirit, я пытаюсь разобрать простую командную строку вида command:param1 param2...
для этого я создал этот парсер:
(+(char_ - ':'))[ref(cmd) = _1]
>> ':'
>> (*char_)[ref(params) = _1]
Типы атрибутов двух...
1802 просмотров
schedule
24.06.2023
Передача строки пути к файлу семантическому действию в Boost.Spirit
Я новичок в Boost.Spirit, и у меня есть вопрос, связанный с мини-интерпретатором, который я пытаюсь реализовать с помощью библиотеки. В качестве подзадачи анализа моего языка мне нужно извлечь путь к файлу из ввода формы:
"path =...
987 просмотров
schedule
20.05.2023
Boost.Spirit.Qi: Как сообщить о предупреждениях парсера?
Как сообщить о предупреждениях парсера? Аналогично отчету об ошибке, но синтаксический анализатор не должен останавливаться. Записывать в журнал только предупреждающее сообщение и подвыражение, вызвавшее предупреждение.
Пример ввода:
select...
439 просмотров
schedule
24.03.2023
Пропускать части ввода в boost :: spirit :: qi, если вызов функции возвращается true
В последнее время я играл с boost :: spirit :: qi и пытался написать свой собственный (очень, очень простой) язык сценариев, который он будет анализировать. У меня были проблемы, когда я добрался до операторов if в скрипте. Мне нужен синтаксический...
307 просмотров
schedule
04.04.2022
Boost.Spirit, как расширить синтаксический анализ xml?
Я хотел бы расширить синтаксический анализ xml с помощью Boost.Spirit и добавить синтаксический анализ атрибутов xml.
Вот пример из библиотеки и некоторые модификации от меня:
template <typename Iterator>
struct mini_xml_grammar
:...
1718 просмотров
schedule
21.09.2023
парсер boost:spirit::qi, использующий несколько грамматик и phoenix::construct
У меня возникли проблемы с написанием грамматики ци, которая использует другую грамматику ци. Аналогичный вопрос был задан здесь , но я также пытаюсь использовать phoenix::construct и испытываю трудности с компиляцией.
Вот упрощенная версия того,...
2353 просмотров
schedule
31.07.2023
Семантическое действие Boost.Spirit для разбора строки не работает
Я пытаюсь написать анализатор Boost.Spirit, который анализирует строку, которая должна представлять простую команду, например «print foo.txt». Каждый раз, когда ввод соответствует грамматике, должно вызываться семантическое действие.
Вот код:...
953 просмотров
schedule
27.08.2022
Нужен способ префикса парсера boost::spirit::qi с другим
У меня есть много правил, которые выглядят так:
cmd_BC = (dlm > timestamp > dlm > cid > dlm > double_)
[
_val = lazy_shared<dc::BoardControl>(_1, _2, _3)
];
Я хочу сделать его более...
394 просмотров
schedule
07.08.2022
Анализ ряда именованных наборов других именованных наборов
Итак, я хочу написать... ну... не очень простой парсер с boost::spirit::qi. Я знаю основы буст духа, впервые познакомившись с ним за последние пару часов.
В основном мне нужно разобрать это:
# comment
# other comment
set "Myset A"
{...
505 просмотров
schedule
21.04.2022
Почему это правило boost :: spirit :: qi не соответствует вводу?
Я попытался продолжить работу над своим предыдущим примером и расширить правила. Моя проблема в том, что правила, использующие ID_IDENTIFIER, не работают, хотя я знаю, что лексер работает (с использованием модульных тестов).
Вот пример:...
226 просмотров
schedule
26.03.2023
Проблема с правилами распространения атрибутов парсера духа
Имею небольшой парсер по духу. Проблема в правилах атрибутов. Правило должно иметь возможность анализировать оба
@ATTRIBUTE num NUMERIC
@ATTRIBUTE test {привет, мир}
typedef std::string::iterator string_iter_t;...
592 просмотров
schedule
03.12.2022
Как проверить алгебраические утверждения с помощью boost::spirit?
Я пытаюсь расширить пример калькулятора , чтобы вместо разбора и оценки алгебраического выражения синтаксический анализатор определял, является ли алгебраическое утверждение истинным или нет. Под этим я подразумеваю такие операторы, как 1 + 5 * 5 -...
557 просмотров
schedule
20.04.2023
Парсер Boost.Spirit не соответствует
Мне трудно понять, почему следующий синтаксический анализатор не может проанализировать test . После вызова qi::phrase_parse , result истинно, it2 указывает на конец строки, но mynr по-прежнему 0:
std::string test = "#define SOMEMACRO...
353 просмотров
schedule
30.07.2022
разобрать строку в структуру с помощью Boost Spirit
У меня есть следующий код, который мне нужен для анализа строки и перемещения ее в структуру, определенную следующим образом:
#include "boost\spirit\include\classic.hpp"
#include "boost\spirit\include\qi.hpp"
#include...
771 просмотров
schedule
26.08.2022
Ошибка анализа грамматики с помощью Spirit::Qi
Я новичок в Spirit::Qi и пытаюсь написать простой парсер Wavefront Obj. Я следовал руководствам с сайта документации Boost::Spirit ( ссылка ), и у меня работает большинство встроенных правил. Я начал экспериментировать с грамматиками, но не могу...
555 просмотров
schedule
27.01.2024
Получение boost::spirit::qi для использования контейнеров stl
Я пытаюсь что-то разобрать с помощью библиотеки qi boost.spirit, и у меня возникла проблема. Согласно Spirit docs , a >> b должен создать что-то с типом tuple<A, B> . Но это boost::tuple (он же вектор слияния), а не std::tuple...
1414 просмотров
schedule
26.07.2023
Почему Boost.Spirit корректно разбирает идентификатор в std::string, а не в адаптированную структуру, состоящую исключительно из std::string?
Я определил правило для идентификатора: начинать с буквенного символа, за которым следует любое количество буквенно-цифровых символов. У меня разные результаты, когда я анализирую непосредственно std::string по сравнению с адаптированной...
962 просмотров
schedule
07.11.2022