Удачная возможность для веб-разработчиков выучить язык программирования Си — HTML5-парсер Gumbo, реализованный в виде небольшой библиотеки C99 без внешних зависимостей. Парсер создан как строительный блок для создания других инструментов и библиотек, таких как валидаторы, языки шаблонов, инструменты рефакторинга и анализа кода.
Особенности:
- Полная совместимость со спецификациями HTML5.
- Устойчивость к некачественным входным данным.
- Простые API, которые могут быть легко обработаны программами на других ЯП.
- Поддержка исходных позиций и указателей в оригинальном коде, при навигации по дереву зависимостей.
- Проходит все тесты html5lib-0.95.
- Проверен на более чем 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); }
Программа опубликована под лицензией Apache 2.
ссылка на оригинал статьи http://habrahabr.ru/post/190044/
Добавить комментарий