Boost-Spirit – вопросы и ответы

62
голоса
1
ответ
Поэтому я начал играть с библиотекой Boost Spirit и ее совершенно потрясающей! Но по пути я столкнулся с множеством ошибок - многие от моего имени за то, что не полностью прочитали документацию. Но...
2 дня, 17 часов назад Adam Wilhelm
51
голос
1
ответ
В грамматике, которую я реализую, есть элементы, разделенные пробелами. С помощью анализатора пропусков пробелы между элементами пропускаются автоматически, но это также не позволяет пробелу, чего ...
2 дня, 19 часов назад pschulz
50
голосов
1
ответ
Поэтому мой вопрос довольно прост, в моем классе lexer (расширение lex::lexer<T> ) у меня есть следующее; this->self.add ... ("&&", AND_AND) ("||", OR_OR) ... Внутри моего конструк...
2 дня, 21 час назад Skeen
93
голоса
1
ответ
У меня есть простой синтаксический анализатор конфигураций, созданный из spirit:: lex и spirit:: qi. Когда лексер достигает шаблона include "path" , я хочу, чтобы текст файла был включен. Как вы зн...
2 дня, 23 часа назад Brynn Mahsman
49
голосов
1
ответ
Я пытаюсь проанализировать файлы следующего вида: // comment bla bla [sectionname] key = value key2=value2 // comment key = value [anothersection] ... используя следующий код. К сожалению, он сообщ...
3 дня, 1 час назад Baradé
51
голос
1
ответ
Я пытаюсь внедрить правило в моей грамматике qi boost spirit, которая будет вести себя как QUOTE на Lisp-подобном языке. Что-то вроде: QUOTE (abc) Идея заключается в том, что что-либо между закрыва...
3 дня, 2 часа назад pt3dNyc
82
голоса
1
ответ
У меня возникают проблемы с получением небольшой грамматики духа/ци, которую нужно скомпилировать. Я использую boost 1.43 и g++ 4.4.1. входной грамматический заголовок: ошибка сборки, кажется, указ...
3 дня, 19 часов назад lurscher
63
голоса
1
ответ
У меня есть boost :: variant в моей программе, который принимает типы double , uint16_t , std::string и т.д. Я их uint16_t , и я бы хотел использовать boost::karma для генерации/печати. Я новичок в...
3 дня, 23 часа назад squareskittles
72
голоса
1
ответ
Я новичок в использовании qi и столкнулся с трудностями. Я хочу проанализировать ввод, например: X + Y + Z, A + B В два вектора строк. У меня есть код, но только в том случае, если грамматика анали...
3 дня, 23 часа назад Christopher Mauney
51
голос
1
ответ
Учитывая следующие действия struct Data { double d; void operator()( double dd, boost::spirit::qi::unused_type, boost::spirit::qi::unused_type ) { d = dd; } }; struct Printer { void operator()( dou...
4 дня, 4 часа назад mkluwe
50
голосов
1
ответ
Следующая программа занимает 10 секунд для компиляции. Когда я parenProcess правило parenProcess ниже на '(' >> process >> ')' компилятор тратит процессор, но, похоже, не заканчивается....
4 дня, 20 часов назад senevoldsen
62
голоса
1
ответ
Я новичок в boost:: spirit. Я написал программу для синтаксического анализа SQL-запроса, например "select * from table where conditions". Скомпилировать его не удалось. Сообщалось о больших ошибках...
4 дня, 21 час назад 大宝剑
51
голос
1
ответ
Можно ли использовать boost :: spirit :: qi для синтаксического анализа следующего? A_B --> (A, B) A_B_C --> (A_B, C) A_B_C_D --> (A_B_C, D) A_B_C_D_E --> (A_B_C_D, E) Я хотел бы генери...
6 дней, 2 часа назад John
51
голос
1
ответ
Кажется, что что-то изменилось по духу :: x3, что ломает мой маленький маленький синтаксический анализатор. Он работал отлично, когда я перенес его из Qi (после того, как начальные исправления x3 в...
6 дней, 21 час назад Uncle Entity
71
голос
1
ответ
У меня есть простой синтаксический анализатор, который может анализировать списки ints или цитируемых строк. Если я использую SIMPLE_CASE , где я принимаю вход: std::string input1 = "{ INT: 42, 24 ...
1 неделя назад kfmfe04
52
голоса
1
ответ
[Замененный код с полным обновлением программы и версий] Нижеприведенный код не работает под Windows со следующим сообщением (извините Французский, я не знаю, как заставить Visual C++ работать на а...
1 неделя назад Kleag
52
голоса
1
ответ
Сохранение результата повторения в std :: vector приводит к ошибке компиляции: /usr/include/boost/spirit/home/qi/detail/pass_container.hpp:172:12: error: ambiguous class template instantiation for ...
1 неделя назад Baradé
62
голоса
1
ответ
У меня есть эти данные в моем файле: #TITLE:Destiny; #SUBTITLE:; #ARTIST:Smiley; #BACKGROUND:bg.png; #SAMPLESTART:43.960; #SAMPLELENGTH:12.000; Я хочу проанализировать его с помощью AST в такой стр...
1 неделя назад Alex Kremer
53
голоса
1
ответ
Я использую синтаксический анализатор Boost Spirit, и при анализе парсера семантические действия отражаются на экземпляре класса ParserActions. Вот код для синтаксического анализатора (соответствую...
1 неделя, 1 день назад myahya
52
голоса
1
ответ
Я пишу небольшой инструмент для анализа простых замещений типа B как часть исследовательской работы колледжа. Код успешно анализирует тестовые входы формы mySubst: = var1 + var2. Однако я получаю в...
1 неделя, 1 день назад Decmac04
51
голос
1
ответ
Я написал рабочий маркерный парсер на основе кода, показанного на примере духа lex 4 Одно из моих правил выглядит так: set_name = ( tok.set_ >> tok.name_ >> tok.identifier ) [
1 неделя, 1 день назад ravenspoint
64
голоса
1
ответ
Я подготовил небольшую контрольную программу для измерения различных способов анализа. Проблема связана с огромным снижением производительности при использовании потока и пользовательской функции д...
1 неделя, 2 дня назад Pablo
74
голоса
1
ответ
Я пытаюсь изучить boost:: spirit для разбора грамматики, но мне трудно понять, как использовать библиотеку. В принципе, если синтаксический анализатор попадает в "Тест" во входном потоке, я бы хоте...
1 неделя, 2 дня назад namezero
105
голосов
1
ответ
У меня есть работающая грамматика, подобная следующей: stock_price = symbol_ >> date_ >> price_; stock_prices_ = stock_price_ >> stock_prices_ | eps; grammar_ = lit( "PRICES" ) &g...
1 неделя, 2 дня назад statguy
51
голос
1
ответ
У меня есть файл, содержащий данные в форме: fractal mand1 { ;lkkj;kj; } fractal mand2 { if (...) { blablah; } } fractal julia1 { a = ss; } Я хочу извлечь имя контейнера данных, поэтому я хочу полу...
1 неделя, 3 дня назад Jepessen
72
голоса
1
ответ
Я пытаюсь использовать Spirit для разбора выражений формы Module1.Module2.value (любое число разделимых точек с идентификатором, затем точка, затем строчный идентификатор стиля OCaml). Мое текущее ...
1 неделя, 3 дня назад More Axes
64
голоса
1
ответ
У меня это есть, в моем boost :: spirit grammar; paren = (qi::token(LEFT_PAREN) >> character >> qi::token(RIGHT_PAREN)) [ build_paren ] ; character = qi::token(CHARACTER) [ build_charac...
1 неделя, 4 дня назад Skeen
82
голоса
1
ответ
Я пишу синтаксический анализатор, чтобы найти выражения конкатенации строк. У меня есть ряд строк, которые заключены в круглые скобки, возникшие в основном из вызова функции. Например, ("one"+"two"...
1 неделя, 4 дня назад triclosan
65
голосов
1
ответ
Используя Boost.Spirit, можно ли доставить терминальный токен на несколько действий, и если да, то какой будет синтаксис? Например, предположим, что у меня есть два правила: правило 1, которое потр...
1 неделя, 4 дня назад tgoodhart
71
голос
1
ответ
Если существует структура struct price { int chicken; int cow; bool in_stock; std::string place; }; который адаптируется с использованием boost:: fusion. Если есть необходимость проанализировать ег...
1 неделя, 4 дня назад programmist
102
голоса
1
ответ
boost_1_47_0/libs/spirit/example/lex/strip_comments_lexer.cpp Не снимать комментарии в стиле C. Зачем?
1 неделя, 5 дней назад knkd
63
голоса
1
ответ
Я хочу проанализировать строку с последовательностью двойных пар в std:: map с Boost Spirit. Я адаптировал пример из http://svn.boost.org/svn/boost/trunk/libs/spirit/example/qi/key_value_sequence.c...
1 неделя, 5 дней назад Jens Luedicke
51
голос
1
ответ
Я получаю "qi :: _ 10 не является членом qi" ошибка при составлении грамматики для ци. Есть ли способ увеличить максимально допустимый?
1 неделя, 5 дней назад Danny
62
голоса
1
ответ
Я слышал, что дух действительно быстрый при преобразовании строки в int. Однако я не могу создать простую функцию, которая может это сделать. Что-то вроде int string_to_int (string & s) { /*???...
1 неделя, 5 дней назад rahul
72
голоса
1
ответ
Я бы хотел проанализировать CSV, используя контекстную грамматику. У меня есть реализация в C++, но я хочу масштабировать CFG до более сложных проблем, но сначала мне нужно решить непростую задачу....
1 неделя, 5 дней назад user805547
72
голоса
1
ответ
Мне нужно проанализировать выражение EBNF с помощью Boost:: Spirit. period ::= date_part [time_part] , date_part [time_part] time_part ::= hours:minutes[:seconds] date_part ::= day.month.year Напри...
1 неделя, 6 дней назад adil
52
голоса
1
ответ
У меня есть правило, которое должно вернуть Boost.Fusion ASSOC_STRUCT. Я пытаюсь назначить _val результаты, проанализированные синтаксическими анализаторами правил, но я не могу заставить его работ...
1 неделя, 6 дней назад engineerX
53
голоса
1
ответ
Рассмотрим следующую программу: using FooVariant = boost::variant<std::string, int>; using FooOptional = boost::optional<FooVariant>; template<typename OutputIt = boost::spirit::ostr...
2 недели назад Addy
51
голос
1
ответ
Я пытаюсь разобрать 2 разных типа строк и присваивать значения в структуры. Для производительности я стараюсь использовать подталкивающие подушки. строки могут быть следующих типов Animal Type | An...
2 недели назад Sanjit
80
голосов
1
ответ
У меня есть еще одна проблема с блоком с Spirit Qi. Я реализовал обработку ошибок в functor-структуре с именем error_handler. Это передается конструктору грамматики по ссылке (см. Пример MiniC для ...
2 недели назад namezero
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема