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

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
7
0
1 448
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

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

Другой хороший выбор - это, возможно, библиотека the org.apache.commons.lang.text. http://commons.apache.org/lang/apidocs/org/apache/commons/lang/text/package-summary.html

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

Java Compiler Compiler [tm] (JavaCC [tm]) is the most popular parser generator for use with Java [tm] applications. A parser generator is a tool that reads a grammar specification and converts it to a Java program that can recognize matches to the grammar. In addition to the parser generator itself, JavaCC provides other standard capabilities related to parser generation such as tree building (via a tool called JJTree included with JavaCC), actions, debugging, etc.

JavaCC УДИВИТЕЛЬНЫЙ. Также посмотрите книгу Тома Коупленда (Centennial Books)

Bryan Hunt 22.02.2012 22:01
Ответ принят как подходящий

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

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

Вроде очень интересно, с отходом от генераторов кода ... Спасибо за ссылку.

PhiLho 29.11.2008 22:05

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

На Исходный код Java есть хороший список парсеров (генераторы или нет).

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