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

1 ответ

Итак, если вы были мной, а вы (казалось бы) заботитесь о производительности и использовании памяти, перейдите НАЗАД к старому ответу. Если вам нужна помощь в переводе этого на VS2010, спросите об этом.

аюсь (пока) заполнить несколько векторов данными, проанализированными из журнала. Ключ в том, чтобы сделать это максимально быстро и эффективно, поэтому я хотел бы собрать все данные за один проход (не «или» между правилами). Я обнаружил ...

2 ответа

Ой, не видел вас последний комментарий ... да, мой вектор тоже должен быть динамичным. Случай использования требует этого (по крайней мере, чтобы получить общее решение). Я планирую использовать Boost.Any или, возможно, сделать свою собственную версию на основе этой концепции, которая немного лучше соответствует моим потребностям. Короче говоря, есть много «текстовых файлов» различных форматов, которые я хочу проанализировать и из которых я хочу создавать данные трендов. Я бы предпочел написать и скомпилировать один раз, а затем использовать файлы конфигурации, чтобы добавить поддержку новых форматов файлов, а не всегда добавлять больше кода.

у написать функцию на C ++, чтобы заменить sscanf, который назначает совпадения для итератора. В принципе, я хочу что-то вроде: string s = "0.5 6 hello"; std::vector<boost::any> any_vector; sscanv(s, "%f %i %s", any_vector); cout << "float: " ...

1 ответ

Извините за поздний ответ и спасибо, что нашли время, чтобы ответить! Жаль, что это ограничение. Ваше исправление на месте. Да, когда я пытался упростить свой код, грамматика стала бессмысленной. Еще раз спасибо.

ал с калькулятором Boost.Spirit X3, когда столкнулся с ошибкой, но не смог разобраться. Я свернул программу, чтобы уменьшить сложность, по-прежнему выбрасывая ту же ошибку. Скажем, я хочу проанализировать входные данные как список ...

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

0 ответов

повышение духа on_error не сработало

^ Нет, это не так. Это было частью проблемы, но если просмотреть код, как сейчас, он уже делает то, что показывает указанный вопрос / ответ ... и ошибки все еще не вызваны. У меня есть этот синтаксический анализатор повышения для строкового ...

2 ответа

@ ravenspoint Я думаю, это переломный момент для меня: я использую Дух ловко. Я редко трачу много времени на разработку парсера. Я имел обыкновение возвращаться, когда использовал CoCo / R и flex. Это было в основном потому, что я смешивал разбор с обработкой кода. Можно сказать, что я «адаптировал» свой рабочий процесс, но я не жалею об этом. Это также означает, что Дух может быть довольно расстраивающим, если вы еще не (очень) испытали это :(

-нибудь идеи по сокращению boost :: spirit времени компиляции? Я только что портировал флекс парсер для boost :: spirit. У EBNF есть около 25 правил. Результат работает хорошо, а производительность во время выполнения - хорошая. Проблема в ...

1 ответ

Приносим извинения за опоздание почти на 2 года. Теперь я пришел, чтобы проверить это решение, и оно прекрасно работает!

ыло интересно, есть ли способ в Boost.Spirit.Qi динамически комбинировать произвольное количество правил во время выполнения. Внутренняя работа Boost.Spirit все еще остается для меня загадкой, но поскольку правила реализованы в виде объектов, это ...

1 ответ

Просто обновление: пример был переименован в SVN в колдовский2.

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

1 ответ

Пример Boost.Spirit mini_xml2.cpp не может быть скомпилирован C ++ 11, Boost 1.55

компилятор c ++ 0x не может скомпилировать пример boost.spiritmini_xml2.cpp [http://www.boost.org/doc/libs/1_55_0/libs/spirit/example/qi/mini_xml2.cpp](и никаких ошибок от не с ++ 0x компилятора) $> c++ -std=c++0x mini_xml2.cpp (errors) $> c++ ...

2 ответа

AST и приоритет оператора в определении правила

Привет[¹] У меня есть простой парсер (см. Ниже). Он намеревается анализировать условные выражения (реляционные арифметические операции и их логические комбинации). В приведенном там примере он успешно анализирует A> 5, но затем ...

1 ответ

в boost :: spirit :: lex, первый раз занимает больше времени, следующий раз будет намного короче

Я передаю серию текста в мой sip-анализатор. Первый занимает больше всего времени, независимо от того, какой из них первый. Интересно, есть ли какая-либо работа по инициализации, когда spirit :: lex выполняет первый анализ? template <typename ...