Есть ли библиотека, похожая на pyparsing в Java? [закрыто]
Вопрос
Мне нужно быстро создать синтаксический анализатор для очень упрощенной версии языка разметки, похожего на 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