Есть ли библиотека, похожая на pyparsing в Java? [закрыто]

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

Вопрос

Мне нужно быстро создать синтаксический анализатор для очень упрощенной версии языка разметки, похожего на html, в Java. В Python я бы использовал библиотеку pyparsing для этого. Есть ли что-то подобное для Java? Пожалуйста, не предлагайте библиотеки, которые уже существуют для разбора html, мое приложение представляет собой школьное задание, которое будет демонстрировать обход дерева объектов и сериализацию в текст с использованием шаблона посетителя, поэтому я не думаю, что в терминах реального мира здесь. В основном все, что мне здесь нужно, это теги, атрибуты и текстовые узлы.

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

Решение

Еще один хороший генератор синтаксических анализаторов - это ANTLR , это может быть то, что вы ищете .

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

Может быть излишним для вашего использования, но javacc является отличным генератором синтаксического анализа промышленного уровня. Я использовал эту программу / библиотеку несколько раз, она надежна и заслуживает изучения, особенно если вы собираетесь работать с языками и компиляторами. Вот описание программы с сайта, указанного выше:

  

Компилятор Java Компилятор [tm] (JavaCC [tm]) является наиболее популярным генератором синтаксического анализатора для использования с приложениями Java [tm]. Генератор синтаксического анализатора - это инструмент, который читает спецификацию грамматики и преобразует ее в программу Java, которая может распознавать совпадения с грамматикой. В дополнение к самому генератору синтаксического анализатора JavaCC предоставляет другие стандартные возможности, связанные с генерацией синтаксического анализатора, такие как построение дерева (с помощью инструмента под названием JJTree, входящего в состав JavaCC), действия, отладка и т. Д.

Быстрый поиск генераторов синтаксического анализатора в Java дает JParsec . Я никогда не использовал его - но он вдохновлен библиотекой на Haskell, поэтому по определению это должно быть хорошо: -)

Мне нравится JParsec (который я только что обнаружил благодаря Торстену), потому что он не генерирует код ... :-) Возможно, менее эффективный, но достаточный для небольших задач.
Я нашел похожую библиотеку, JTopas .

Хороший список анализаторов (генераторов или нет) можно найти по адресу Исходный код Java .

В Java есть много вариантов для обработки строк. Может быть, вам помогут базовые классы java.util.Scanner и java.util.StringTokenizer ?

Другим хорошим выбором может быть библиотека org.apache.commons.lang.text . http: //commons.apache. орг / языки / apidocs / орг / Apache / Обще / языки / текст / пакет-summary.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top