Analise semantica com ANTLR

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

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

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

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.

É 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.