Вопросы по теме 'boost-spirit-lex'

Я не могу получить семантические действия в функциях лексера Boost Spirit для компиляции
Итак, я использую boost 1.47.0 и пытаюсь собрать лексер. Моя цель — добавить к некоторым токенам моего лексера семантическое действие, содержащее spirit::lex::_pass = spirit::lex::pass_flags::pass_ignore . Однако мне не удалось скомпилировать...
653 просмотров
schedule 16.05.2023

Boost Spirit lex записывает значение токена обратно во входной поток
Мне интересно, есть ли в boost::spirit::lex способ записать значение токена обратно во входной поток (возможно, после редактирования) и снова выполнить повторное сканирование. То, что я в основном ищу, - это функциональность, подобная той, которую...
433 просмотров
schedule 16.01.2023

Spirit Lex: Какое определение токена сгенерировало этот токен?
Извините, если это вопрос новичка, но мне нужно знать, какое определение токена создало определенный токен. Когда я печатаю идентификатор токена, я просто получаю целое число. Мне нужно знать, какое регулярное выражение сгенерировало этот токен....
812 просмотров
schedule 23.06.2023

Проблемы с boost::spirit::lex и пробелами
Я пытаюсь научиться использовать boost::spirit. Для этого я хотел создать какой-нибудь простой лексер, объединить их, а затем начать парсить с помощью Spirit. Я попытался изменить пример, но он не работает должным образом (результат r неверен)....
1189 просмотров
schedule 15.08.2022

Проблемы с boost::spirit::lex - знаки пунктуации
Я хочу создать lex::token_def‹>, содержащий последовательности символов, такие как '[' или ']' или '&>' Я попытался экранировать необходимые символы: namespace lex = boost::spirit::lex; enum LexerIDs { ID_IDENTIFIER, ID_WHITESPACE, ID_INTEGER,...
152 просмотров
schedule 27.06.2022

Почему это правило boost :: spirit :: qi не соответствует вводу?
Я попытался продолжить работу над своим предыдущим примером и расширить правила. Моя проблема в том, что правила, использующие ID_IDENTIFIER, не работают, хотя я знаю, что лексер работает (с использованием модульных тестов). Вот пример:...
226 просмотров

как избавиться от escape-символа в токене с spirit::lex?
Я хочу токенизировать собственное расширение синтаксиса SQL. Это включает в себя распознавание экранированной двойной кавычки внутри строки с двойными кавычками. Например. в MySQL эти две строковые лексемы эквивалентны: """" (вторая двойная...
666 просмотров
schedule 28.02.2023

Boost::Spirit::Lex; Как указать токен ||?
Итак, мой вопрос довольно прост, в моем классе лексера (расширяющем lex::lexer<T> ) у меня есть следующее; this->self.add ... ("&&", AND_AND) ("||", OR_OR) ... Внутри моего конструктора, который отлично...
68 просмотров
schedule 29.06.2023

лексер boost spirit в потоке недостаточно рано выполняет токенизацию (слишком много упреждающих действий?)
Я использую лексер boost::spirit::lex для токенизации входного потока, используя Spirit::istream_iterators, как описано в Использование Boost.Spirit.Lex и итераторов потока . Моя проблема в том, что lex::tokenize, похоже, не выводит токен как...
178 просмотров
schedule 11.09.2022

Как использовать boost::spirit::qi с std::vector‹token_type› вместо std::string
В приложении я в основном хочу иметь фазу «предварительного синтаксического анализа», когда я настраиваю поток токенов до того, как анализатор Qi сможет его увидеть. Одним из способов сделать это было бы иметь какой-то «адаптер лексера», который...
348 просмотров

Не могу скомпилировать boost spirit example4.cpp
Я продолжаю изучать библиотеку Boost Spirit, и у меня возникла проблема с примером, который я не смог скомпилировать. Исходный код примера вы можете найти здесь: место источника . Также вы можете посмотреть этот код и скомпилировать результат на...
939 просмотров