Вопросы по теме 'boost-spirit-qi'
Использование указателя на парсер в boost :: spirit
В основном я занимаюсь парсером выражений. Поскольку мне нужна как можно более высокая производительность, и, согласно документации, построение грамматики может быть довольно медленным, я хотел бы повторно использовать грамматику и связать таблицу...
762 просмотров
schedule
09.11.2021
Boost :: Spirit :: Qi Автоматические правила и условные действия
Это, вероятно, до жалости простой вопрос, тем более что я уже некоторое время успешно использую QI для анализа простых структур и, вероятно, уже должен знать ответ, но он ускользает от меня, несмотря ни на что ...
Допустим, у нас есть такой...
628 просмотров
schedule
12.09.2021
boost :: spirit добавить вектор
У меня проблема с вставкой данных в вектор с помощью phoenix::insert . Код должен анализировать ввод, такой как «(move x y z - loc r - robot item)», в struct Predicate с именем «move» и 3 переменными типа loc , 1 переменной типа robot и 1...
1111 просмотров
schedule
17.10.2021
Изменение порядка подправил внутри правила в грамматике boost :: spirit приводит к ошибке segfault
Предупреждение; пока я пытался сократить код до минимума. Мне еще нужно было включить совсем немного, чтобы обеспечить наличие необходимой информации.
Этот код компилирует файлы и запускается, что приводит к синтаксической ошибке;
name =...
283 просмотров
schedule
20.11.2021
boost spirit istream_iterator слишком много потребляет из потока
Рассмотрим следующий пример, извлеченный из более сложного кода:
#include <boost/fusion/adapted.hpp>
#include <boost/fusion/include/std_pair.hpp>
#include <boost/phoenix.hpp>
#include <boost/spirit/include/qi.hpp>
#include...
425 просмотров
schedule
03.12.2021
Boost Spirit Qi: ошибка компиляции при небольшом изменении правила
Я пишу небольшой компилятор просто для удовольствия и использую Boost Spirit Qi для описания своей грамматики. Теперь я хочу внести небольшие изменения в грамматику, чтобы подготовить некоторые дальнейшие дополнения. К сожалению, эти изменения не...
92 просмотров
schedule
06.11.2021
spirit x3 не может распространять атрибуты типа optional ‹vector›
Простой парсер, как на Coliru . Синтаксический анализатор -(+x3::alpha) должен иметь возможность распространять атрибут типа boost::optional<std::string> , как это делает Qi. Но не компилируется.
std::string const input = "abc";...
292 просмотров
schedule
09.09.2021
Атрибуты оператора последовательности и списка в boost.spirit qi?
Я хочу разобрать что-то вроде
"{xxxx}
{xxxx}"
который разделяется eol на vector<vector<wchar_t>> : ({xxxx},{xxxx}) , так что "{" и "}" остаются вместе с внутренними символами. Мой код:
#define BOOST_SPIRIT_UNICODE
#include...
152 просмотров
schedule
23.09.2021
Boost Spirit получить все совпадение в виде струны
Я пытаюсь определить свою собственную грамматику, используя структуру духа ускорения, и я определяю такое правило сопоставления:
value = (
char_('"') >>
(*qi::lexeme[
char_('\\') >> char_('\\') |...
2277 просмотров
schedule
21.02.2022
Как передать итератор функции в духе ци
template <typename Iterator>
struct parse_grammar
: qi::grammar<Iterator, std::string()>
{
parse_grammar()
: parse_grammar::base_type(start_p, "start_p"){
a_p = ',' > qi::double_;
b_p = *a_p;...
1630 просмотров
schedule
28.02.2022
Ошибки компиляции шаблона с Boost::Spirit::Qi для простой грамматики
Я пытаюсь разобрать грамматику:
@ ( )
используя Boost::Spirit::Qi.
Я получил синтаксический анализ, работающий с phrase_parse , и теперь я создаю класс грамматики (шаг за шагом).
Вот мои сообщения об ошибках из Visual Studio 2010 (в...
725 просмотров
schedule
02.03.2022
Лексер Boost Spirit констатирует перекрестное опыление
Я пытаюсь использовать состояния лексера для контекстно-зависимого синтаксического анализа, но кажется, что разные состояния лексера перекрестно опыляются. Вот очень простой пример
#include <boost/config/warning_disable.hpp>
#include...
296 просмотров
schedule
08.03.2022
Как назначить результат объекта функции локальному объекту в семантическом действии boost :: spirit
Я не совсем уверен, почему следующий код дает мне следующую ошибку в GCC 4.6.3
нет совпадения для 'operator =' in 'boost :: spirit :: _ a = boost :: phoenix :: function :: operator () (const A0 &) const [с A0 = boost :: phoenix :: worker>, F =...
490 просмотров
schedule
11.03.2022
Boost Spirit: семантические действия - зло?
Чтение и просмотр этой презентации: http://boost-spirit.com/home/2011/06/12/ast-construction-with-the-universal-tree/ Я обнаружил это утверждение - в основном нам предлагается не использовать смысловые действия.
Должен признать, что я уже...
5389 просмотров
schedule
18.03.2022
Обработка исключения в семантических действиях
Рассмотрим следующий парсер:
class test
{
public:
static test from_string(const string &str); //throws!
};
template <typename Iterator = string::const_iterator>
struct test_parser : grammar<Iterator, test(), blank_type>
{...
199 просмотров
schedule
20.03.2022
строка цитаты синтаксического анализа boost не работает
Это мой граммер
unesc_char.add(L"\\a", L'\a')(L"\\b", L'\b')(L"\\f", L'\f')(L"\\n", L'\n')
(L"\\r", L'\r')(L"\\t", L'\t')(L"\\v", L'\v')(L"\\\\", L'\\')
(L"\\\'", L'\'')(L"\\\"", L'\"');
unesc_str = '\"' >>...
128 просмотров
schedule
21.03.2022
Сбой компиляции при добавлении qi::lexeme к правилу в духе qi
Я пишу грамматику на С++, используя Spirit Qi из библиотеки Boost. Мне, как новичку в этом языке, было сложно привыкнуть к синтаксису и особенностям библиотеки, но теперь я вроде как понимаю, как она работает.
У меня возникает ошибка при...
228 просмотров
schedule
24.03.2022
Определение функции в правиле духа дает предупреждение
Функция qi :: repeat (1,2) в правиле предупреждает меня, и я не хочу игнорировать это предупреждение, поэтому я хочу оптимизировать этот код, например, отделяя правило от метод парсинга.
qi :: фразе_parse делает то же самое, что и в правиле...
71 просмотров
schedule
28.03.2022
Захват строки до конца строки с помощью Boost.Spirit.Qi
Я пытаюсь написать пользовательскую структуру для захвата строки до EOL или EOS как часть более крупной грамматики, но я не смог ее скомпилировать. Я следовал коду руководства , но Я не мог понять ошибки в приведенном ниже фрагменте.
#include...
43 просмотров
schedule
06.04.2022
Разбор списка токенов с разделителями с использованием Boost Spirit Qi
Используя boost::spirit::qi, я пытаюсь разобрать строки, состоящие из метки, за которой следует переменное количество токенов с разделителями. Я вызываю грамматику с помощью phrase_parse и использую предоставленный синтаксический анализатор blank...
1216 просмотров
schedule
11.04.2022