Analise semantica com ANTLR  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
Mikhas
Virtual Machine Man
[Avatar]

Membro desde: 17/06/2008 11:10:50
Mensagens: 677
Localização: São Paulo
Offline

Oi galera!

Alguem ja montou algum analisador semantico com o ANTLR?
Eu gostaria de um exemplo para me ajudar. Eu não quero uma analise completa, quero apenas que, ao analisar a fonte de uma classe, eu consiga extrair quais os atributos, metodos, interfaces e a classe pai.

Grato

Refractor 1.6 - Easy reflection framework
Agora muito mais rapido!
Raze - The fastest CSS selector engine




[Email] [MSN]
partenon
JavaChild
[Avatar]
Membro desde: 27/06/2010 15:08:10
Mensagens: 103
Localização: Brno, Czech Republic
Offline

O Hibernate usa ANTLR para fazer os parsers de HQL. Voce pode dar uma olhada nos fontes

http://anonsvn.jboss.org/repos/hibernate/core/trunk/core/src/main/antlr/hql.g

http://www.google.com/profiles/partenon
[WWW]
entanglement
GUJ Hacker

Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline

Para isso não é necessário usar o Antlr. Você pode simplesmente pegar o código compilado mesmo (.class) e analisá-lo só com reflection puro. Algumas coisas talvez você precise do ASM, http://asm.ow2.org

Se precisar de uma gramática pronta do java para Antlr (note que a gramática do Java* é bem difícil mesmo!) , acho que há uma em:

http://openjdk.java.net/projects/compiler-grammar/


* A gramática do Java 1.0 era bem boboca, tanto é que o compilador era feito à mão, usando recursive descent mesmo. Hoje em dia o compilador da Sun continua sendo feito à mão (argh) e isso deve deixar o Maurizio Cimadamore ( http://blogs.sun.com/mcimadamore/ ) meio zoado com esse fato de ter de tomar conta da manutenção do compilador.

Mikhas
Virtual Machine Man
[Avatar]

Membro desde: 17/06/2008 11:10:50
Mensagens: 677
Localização: São Paulo
Offline

É que na verdade eu vou utilizar Javascript para analisar o codigo.

Eu ja compilei o analisador lexico e sintatico com o ANTLR para javascript. Agora falta compreender o código.

Refractor 1.6 - Easy reflection framework
Agora muito mais rapido!
Raze - The fastest CSS selector engine




[Email] [MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team