Analisador Sintatico/Semantico em java  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
acmprotector
Thread.start()
[Avatar]

Membro desde: 13/09/2010 17:59:36
Mensagens: 40
Offline

Alow pessoal.

Alguem tem um exemplo em java para fazer compilador que reconheca expressoes logicas da linguagem java, onde operandos podem ser variaveis ou constante e operadores podem ser aritmeticos, logicos ou relacionais..



valew.

Programar aprende-se programando...
claudemiro
Entusiasta Java
[Avatar]

Membro desde: 02/10/2011 16:56:29
Mensagens: 17
Localização: Teresina - PI
Offline

Da uma olhada nesse material http://createyourproglang.com/. É pago mas vale muito apena. É implementado uma linguagem parecida com Ruby que roda diretamente na JVM.
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

A seguir, estou postando um exemplo.

O parser gerado a partir dessa gramática do ANTLR reconhece expressões matemáticas.

Foram implementados 5 operadores, onde os '+' e '-' tem menor precedência e os '*', '/', e '^' (exponenciação) tem maior precedência. O parser reconhece também expressões com parênteses.

No final do post estou postando o link para você baixar a gramática, o parser gerado e um exemplo de uso, dentro de um projeto do NetBeans com o ANTLR já inserido.

A medida que o parser interpreta a expressão, ele já vai executando as operações apropriadas. Não é apenas um parser que diz se determinada expressão faz ou não parte da linguagem, mas também um pequeno interpretador.

Essa é a gramática:


Esse é o código para usar o parser gerado:


Download: http://www.4shared.com/file/Oc21SoID/Parser_Expressoes.html

[]'s

This message was edited 2 times. Last update was at 06/11/2011 22:25:50


Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
acmprotector
Thread.start()
[Avatar]

Membro desde: 13/09/2010 17:59:36
Mensagens: 40
Offline

Valeu mesmo pela dica pessoal. Vou implementar no meu projecto e qualquer duvida posto aqui...



Programar aprende-se programando...
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team