Pergunta

Eu preciso construir rapidamente um analisador para uma versão muito simplificada de um html-like Markup Language em Java. Em python, gostaria de usar a biblioteca pyparsing para fazer isso. Existe algo semelhante para Java? Por favor, não sugerem bibliotecas já lá fora, para html parsing, o meu pedido é um trabalho escolar que irá demonstrar andando uma árvore de objetos e serialização de texto usando padrão do visitante, então eu não estou pensando em termos reais aqui. Basicamente tudo o que preciso aqui é tags, atributos e nós de texto.

Foi útil?

Solução

Outro gerador de bom analisador é ANTLR , que pode ser o que você está procurando .

Outras dicas

Pode ser um exagero para o seu uso, mas javacc é um excelente gerador de analisador de força industrial. Eu usei este programa / biblioteca várias vezes, sua aprendizagem confiável e vale a pena, especialmente se você estiver indo para o trabalho com linguagens e compiladores. Aqui está a descrição do programa a partir do site listado acima:

Java Compiler Compiler [tm] (JavaCC [tm]) é o gerador de analisador mais popular para uso com aplicações Java [TM]. Um gerador de analisador é uma ferramenta que lê uma especificação de gramática e converte-lo para um programa Java que pode reconhecer partidas com a gramática. Além do próprio gerador de analisador, JavaCC fornece outros recursos padrão relacionados à geração de parser como a construção da árvore (através de uma ferramenta chamada JJTree incluído com JavaCC), ações, depuração, etc.

Uma busca rápida para geradores de analisador em Java produz JParsec . Eu nunca usei isso - mas foi inspirada por uma biblioteca de Haskell, então, por definição, deve ser bom: -)

Gosto JParsec (que eu só descobri graças a Torsten), porque ele não gera código ... :-) Talvez menos eficiente, mas o suficiente para pequenas tarefas.
Eu encontrei uma biblioteca semelhante, JTopas .

Há uma boa lista de analisador (geradores ou não) a Java Fonte .

Há um grande número escolhas para stringhandling em java. Talvez os java.util.Scanner e java.util.StringTokenizer Classes muito básicas são úteis para você?

Outra boa opção é talvez biblioteca the org.apache.commons.lang.text. http: //commons.apache. org / lang / apidocs / org / apache / commons / lang / text / package-summary.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top