| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2010 10:01:44
|
Mikhas
Virtual Machine Man
![[Avatar]](/images/avatar/4388a23da67b154b780b78dd7ea4636e.jpg)
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
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2010 10:12:04
|
partenon
JavaChild
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2010 10:12:49
|
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.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2010 10:20:36
|
Mikhas
Virtual Machine Man
![[Avatar]](/images/avatar/4388a23da67b154b780b78dd7ea4636e.jpg)
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
|
|
|
 |
|
|