Вопросы по теме 'boost-spirit'
Каковы недостатки фреймворка парсера-генератора Spirit от boost.org?
В нескольких вопросах я видел рекомендации для Spirit фреймворк генератора парсеров с сайта boost.org , но потом в комментариях ворчат люди, использующие Spirit, которые не счастливы. Не могли бы эти люди встать и объяснить остальным из нас, в...
9463 просмотров
schedule
19.07.2023
остановка синтаксического анализатора при обнаружении ошибки в семантическом действии
Я хочу остановить синтаксический анализатор токенов, когда код семантического действия обнаружит проблему.
IF x > 10
синтаксически правильно, но если x не существует, синтаксический анализатор должен остановиться
Правило грамматики и...
568 просмотров
schedule
07.12.2022
Есть ли способ составить отдельно скомпилированные грамматики boost::spirit::qi?
Грамматики парсера Boost Spirit Qi замечательны, и я все время использую их для мелких вещей. Однако бывают случаи, когда я хотел бы иметь возможность составлять отдельные грамматики.
Это легко сделать все-в-одном в одном компиляторе, #включив...
232 просмотров
schedule
15.02.2023
Я не могу получить строковое значение токена
Я пытаюсь реализовать Lexer для небольшого языка программирования с помощью Boost Spirit.
Мне нужно получить значение токена, и я получаю исключение bad_get:
завершение вызывается после создания экземпляра 'boost::bad_get' what():...
1904 просмотров
schedule
03.08.2022
Как использовать класс только с одним атрибутом в AST с Boost Spirit?
Я хочу преобразовать файл в AST с помощью Boost Spirit.
Корень моего AST — это класс только с одним атрибутом:
typedef boost::variant<FunctionDeclaration, GlobalVariableDeclaration> FirstLevelBlock;
struct Program {...
163 просмотров
schedule
15.06.2023
Как избежать копирования атрибутов с помощью генераторов кармы
Я использую карму для создания представлений больших структур, но структуры копируются во время генерации. Я думаю , что они должны быть, поэтому мне было интересно, как этого избежать.
Быстрый пример ниже печатает «Копировать!», поскольку...
533 просмотров
schedule
20.10.2022
Разбор строки как списка с помощью boost :: spirit
У меня есть ситуация, когда я анализирую ввод в карту векторов boost :: Spirit.
Он работает хорошо, но я столкнулся с ситуацией, когда мне нужно предоставить фиксированную строку внутри для определенного случая пользовательского ввода, чтобы...
3667 просмотров
schedule
29.05.2022
Простой парсер и генератор
Мне нужно проанализировать и сгенерировать некоторые тексты из и в объекты С++.
Синтаксис:
command #param #param #param
Существует набор команд, некоторые из них не имеют параметров и т. д. Параметрами в основном являются числа.
Вопрос...
383 просмотров
schedule
25.06.2022
Есть ли способ сопоставить содержимое токена строки spirit::lex как литерал в грамматике spirit::qi
Я пишу DSL и использую лексер Boost Spirit для токенизации моего ввода. В моей грамматике мне нужно правило, подобное этому (где tok — лексер):
header_block =
tok.name >> ':' >> tok.stringval > ';' >>...
561 просмотров
schedule
12.04.2022
Как использовать синтаксический анализатор qi :: symbols для сопоставления токенов из лексера духа с помощью no_case?
У меня есть лексер, основанный на spirit::lexertl , который производит токены, определенные с помощью lex::token_def<std::string> . Я хотел бы использовать qi::symbols<> таблицу для сопоставления токенов в этой таблице, используя...
471 просмотров
schedule
07.07.2022
Как обобщить синтаксический анализатор для получения списков в произвольном порядке?
У меня есть простой синтаксический анализатор, который может анализировать списки целых чисел или строк в кавычках.
Если я выполню SIMPLE_CASE , где я принимаю входные данные:
std::string input1 = "{ INT: 42, 24 STR: \"Smith\", \"John\" }";...
320 просмотров
schedule
14.04.2022
Совместимость атрибутов правила
Я пытаюсь написать синтаксический анализатор, который считывает текстовый файл с объявлениями переменных и экземплярами и создает таблицу переменных, содержащую все объявленные переменные со связанными с ними значениями.
Файл выглядит следующим...
68 просмотров
schedule
24.04.2022
Не удается найти причину отсутствия проанализированных атрибутов в парсере Qi JSON
Проблема :
Не удается найти причину отсутствия проанализированных атрибутов в синтаксическом анализаторе Qi JSON. Парсер успешно анализирует входную строку, но структура выходных данных, json_object, содержит только первый атрибут...
576 просмотров
schedule
08.02.2023
волна повышения или дух для парсера glsl
Я хочу проанализировать пользовательский тег в коде OpenGL Shading Language (GLSL), который очень похож на C. Общий вариант использования будет выглядеть так:
#version 150
@bind ProjectionMatrix
uniform mat4 projMatrix;
@bind ViewMatrix
uniform...
739 просмотров
schedule
13.02.2023
Boost::spirit::qi, определяющий калькулятор нулевых значений
Я пытаюсь написать синтаксический анализатор математических выражений, в которых именованные переменные являются нулевыми в boost::spirit (версия 1_51_0), в которой я совершенно новичок. Я определяю typedef boost::function<double()> Value ,...
419 просмотров
schedule
26.06.2023
не может скомпилировать пример boost-spirit для изменения значения токена с использованием актера Phoenix
Когда я пытаюсь скомпилировать приведенный ниже код (используя пример из boost\spirit\home\lex\argument.hpp: value_setter ), я получаю следующую ошибку компилятора:
c:\program files (x86)\boost\boost_1_50\boost\range\iterator.hpp(63) : error...
390 просмотров
schedule
10.09.2022
Как получить доступ к данным вложенных объектов в boost::spirit::karma?
В ItemList , содержащем списки объектов Item , как мне получить доступ к объектам Item в генераторе?
Следующий пример кода компилируется в VC9 (с соответствующим образом настроенными каталогами включения и ссылки). Я не знаю, как настроить...
204 просмотров
schedule
25.11.2022
boost::spirit::qi::double_ и boost::spirit::qi::int_
Как разобрать строку, которая может содержать либо double, либо int, в зависимости от того, установлена ли точка. Например. 6.0 имеет тип double, а 6 — тип int. Правило было бы
rule<it,boost::variant<int,double>,skipper> r =...
422 просмотров
schedule
11.10.2022
Boost.Spirit: настройка под грамматики во время синтаксического анализа
Чтобы справиться с большим временем компиляции и повторным использованием грамматик, я разбил свою грамматику на несколько суб-грамматик, которые вызываются последовательно. Одна из них (назовем ее: грамматика SETUP) предлагает некоторую конфигурацию...
483 просмотров
schedule
17.09.2022
boost :: spirit :: karma вывод строки в кавычках
Я пытаюсь избежать строки в кавычках, используя boost :: spirit :: karma. Это нормально работает, если это просто строка. Однако для строки в boost :: variant в std :: vector это не так. Однако простая печать строки работает, я не совсем понимаю,...
693 просмотров
schedule
29.01.2023