- PVSM.RU - https://www.pvsm.ru -

Google выпустила парсер HTML5 на чистом Си

Удачная возможность для веб-разработчиков выучить язык программирования Си — HTML5-парсер Gumbo [1], реализованный в виде небольшой библиотеки C99 без внешних зависимостей. Парсер создан как строительный блок для создания других инструментов и библиотек, таких как валидаторы, языки шаблонов, инструменты рефакторинга и анализа кода.

Особенности:

  • Полная совместимость со спецификациями HTML5 [2].
  • Устойчивость к некачественным входным данным.
  • Простые API, которые могут быть легко обработаны программами на других ЯП.
  • Поддержка исходных позиций и указателей в оригинальном коде, при навигации по дереву зависимостей.
  • Проходит все тесты html5lib-0.95 [3].
  • Проверен на более чем 2,5 млрд страниц в индексе Google.


Разработчики не ставят перед собой цели оптимизации парсера для производительности, его писали на Си не для того, чтобы повысить скорость исполнения кода в десятки раз.

В будущем планируется добавить поддержку самых свежих функций HTML5, поддержку парсинга фрагментов кода, полноценные отчёты об ошибках и проч.

Для использования синтаксического анализатора Gumbo, нужно включить файл gumbo.h, а затем вызвать gumbo_parse.

#include "gumbo.h"

int main(int argc, char** argv) {
  GumboOutput* output = gumbo_parse(argv[1]);
  // Do stuff with output->root
  gumbo_destroy_output(&kGumboDefaultOptions, output);
}

Примеры полезного использования см. здесь [4].

Программа опубликована под лицензией Apache 2.

Автор: alizar

Источник [5]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/open-source/40902

Ссылки в тексте:

[1] Gumbo: https://github.com/google/gumbo-parser#gumbo---a-pure-c-html5-parser

[2] спецификациями HTML5: http://www.whatwg.org/specs/web-apps/current-work/multipage/

[3] html5lib-0.95: https://github.com/html5lib/html5lib-tests

[4] здесь: https://github.com/google/gumbo-parser/tree/master/examples

[5] Источник: http://habrahabr.ru/post/190044/