Результаты поиска по запросу "boost-spirit"

1 ответ

повысить дух разбора с источником

Я хотел бы иметь возможность анализировать число, сохранять его исходный источник и отслеживать его положение в источнике, сохраняя его в самой структуре. Это то, что я до сих пор: #include <boost/config/warning_disable.hpp> ...

1 ответ

Анализатор Boost Spirit с унаследованными атрибутами - простой пример не скомпилируется

Я пытаюсь написать синтаксический анализатор для C-подобного языка с boost :: spirit, который использует унаследованные атрибуты для передачи информации о переменной области видимости. Например, «namespace a {var b}» будет передавать «a» в ...

1 ответ

повышение духа V2 ци ошибка, связанная с уровнем оптимизации

Я разрабатываю свой код в свободное время. Желательно в режиме отладки. Недавно, когда я пытался собрать релизную версию, я получил ошибку (время выполнения, вывод:1\n2\n тогда ж, болезнь). Я нашел фрагмент кода (ниже), который содержит ошибку, и ...

ТОП публикаций

1 ответ

Я не могу получить строковое значение токена

Я пытаюсь реализовать Lexer для небольшого языка программирования с Boost Spirit. Я должен получить значение токена и получить исключение bad_get: прекращение вызывается после создания экземпляра 'boost :: bad_get' what (): boost :: bad_get: не ...

2 ответа

Boost Spirit Qi: опустить элемент в парсере Kleene Star

Я хочу разобрать специальные конструкции и выбросить остальные. Но я не хочу использовать шкипера. Я хочу получить вектор этих конструкций, поэтому я использую парсер Kleene Star в качестве основного правила. Но каждый раз, когда что-то ...

1 ответ

Boost Spirit: «Семантические действия - зло»?

Читать и смотреть эту презентацию: http://boost-spirit.com/home/2011/06/12/ast-construction-with-the-universal-tree/ [http://boost-spirit.com/home/2011/06/12/ast-construction-with-the-universal-tree/] Я обнаружил это утверждение - в основном нам ...

2 ответа

повышение :: дух :: ци

Рассмотрим следующий код: (Boost.Spirit 2.5.1) qi::parse(str.begin(), str.end(), (+qi::alpha)[[](const string& s){cout << s<< '\n';}] >> (*(qi::char_(',') | qi::char_('\''))) >> qi::uint_[[](int integer){cout << integer << '\n';}]);[[](int ...

5 ответов

Анализатор логических выражений (грамматика) в c ++

Я хочу разобрать логическое выражение (в C ++). Форма ввода: a and b xor (c and d or a and b);Я просто хочу разобрать это выражение в дереве, зная правило приоритета (не, и, или не, или). Поэтому приведенное выше выражение должно выглядеть ...

1 ответ

Как добавить символы qi :: в грамматику <Iterator, double ()>?

Я пытаюсь использовать библиотеку Boost.Spirit (V. 2.5) для создания мини-калькулятора. Функции, которые я хочу реализовать: - базовое исчисление (+, -, /, *), которое работает - некоторые функции (например, min, max), которые тоже работают - ...

1 ответ

Ошибка компиляции с boost :: spirit parser

У меня странная проблема с калькулятором, созданным с использованием boost :: spirit. Предполагается, что этот калькулятор принимает строку в качестве аргумента, представляющего серию арифметических выражений, разделенных запятыми, например «a + ...