Подтвердить что ты не робот

Есть ли легкий парсерный/парный анализатор данных в C или С++?

Я рассматриваю возможность интеграции парсинга multipart form-data в модуле веб-сервера, чтобы я мог избавиться от бэкэнд-веб-приложений (часто написанных на динамических языках) от разбора самих многостраничных данных. Многогранная грамматика (RFC 2046) выглядит нетривиальной, и если я ее реализую вручную, многие вещи могут пойти не так. Есть ли уже хороший, легкий парсер/форма-данные, написанный на C или С++? Я ищу один без внешних зависимостей, кроме стандартной библиотеки C или С++. Мне не нужна обработка вложений электронной почты или буферизованные классы ввода-вывода или время выполнения переносимости или что-то еще, просто разбор массива/формы данных.

Вещи, которые я рассмотрел:

  • GMime - зависит от glib, поэтому не уходи.
  • libapreq - слишком большой, зависит от APR, плохо документирован, нет модульных тестов.

Я также смотрел на запись парсера с Ragel, но я не могу понять, как это сделать, потому что грамматика не статична: граница может меняться произвольно.

4b9b3361

Ответ 1

Я знаю, что этот вопрос уже пару лет, но мне было нужно то же самое и в итоге использовал это:

https://github.com/iafonov/multipart-parser-c

Ответ 2

Да, там. Не секрет, что это мое. Не стесняйтесь использовать его. Ссылка: MPFDParser. Он вообще не имеет зависимостей.

Ответ 3

mimetic утверждает, что поддерживает его. Я думаю, что GNU cgicc также может поддерживать его.

Ответ 4

cgicc поддерживает его... Но написано довольно плохо и реле на буфере ввода в памяти.

Ответ 5

это может не ответить на ваш вопрос напрямую, но вы считали hiphop для php из facebook?

он преобразует ваш php-код в С++, затем компилируется с g++.

может сэкономить ваше время на то, чтобы написать что-нибудь самостоятельно.