Код парсера с открытым исходным кодом для разметки Mediawiki [закрыто]

StackOverflow https://stackoverflow.com/questions/324758

Вопрос

Меня интересует выборочный анализ XML-разметки Mediawiki для создания настраиваемой HTML-страницы, которая представляет собой некое подмножество HTML, созданное реальным механизмом рендеринга PHP Mediawiki.

Я хочу его для BzReader, автономной программы чтения сжатых дампов Mediawiki, написанной на C#.Таким образом, синтаксический анализатор C# был бы идеален, но может помочь любой хороший код.

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

Итак, знает ли кто-нибудь какую-нибудь базу, с которой я мог бы начать, которая была бы лучше, чем взлом PHP-кода Mediawiki?

Это было полезно?

Решение

Список анализаторов можно найти в http://www.mediawiki.org/wiki/A альтернативной_парсерам, но парсер ac # там не включен ...

Другие советы

Обновлять
Имейте в виду, что Screwturn не придерживается синтаксиса Mediawiki, а использует свой собственный вариант, который немного отличается.

Синтаксис Mediawiki не подходит для парсера LALR (или даже LL*), поскольку в его определении много двусмысленностей, а также поддерживается HTML.Есть обсуждение по этому поводу в этом вопросе, вы, по сути, вынуждены писать свой собственный парсер и токенизатор, а не просто писать для него BNF-файл, а затем использовать ANTLR/Gold/Irony.

Roadkill вики использует Креольский парсер для анализа Mediawiki, но с ограниченной поддержкой.


Screwturn выпускается под лицензией GPL и имеет парсер C#:

Вам нужен класс Core.Formatter, который имеет множество регулярных выражений для выполнения своей работы:

public static class Formatter {

}

Это не самый красивый код, «но он работает».

scroll top