Construindo um compilador!

6 respostas
blima10

Pessoal,

Estou construindo um compilador e precisava do auxilio de como identificar constantes em meu codigo e torna cada cte encontrada em um objeto para que eu possa manipula-las.

obrigado pela atenção!

abraço

:smiley:

6 Respostas

Marky.Vasconcelos

Cara… se voce não explicar melhor é quase impossivel te ajudar.

Como voce esta fazendo esse compilador? É em java? ele le o que? como? sai o que?

ftabah

Para identificar constantes você precisa de um autômato. Na minha época de faculdade eu usei um switch case dentro de um loop recursivo e ao chegar em um estado final do autômato, ele criava um objeto relativo ao resultado.
Lembre-se que desenhar o autômato antes de começar a programar é muito importante, principalmente pra reduzir a probabilidade de erros no seu código.

Espero ter ajudado.
Abs

tinorberto

Fazer um compilador não e tão simples assim , são varios passos …procure um livro sobre compiladores , e ja te adiantando …e muito trabalhoso e o codigo fica muito grande , mesmo para uma linguagem relativamente pequena

blima10

É realmente trabalhoso!
Até agora meu programa reconhece dentro do código fornecido todas as palavras que estão contidas no meu arraylist de fixos e reconhece meu identificadores.
Agora o proximo passo é identificar as contantes, depois ignorar comentarios e depois reconhecer sequencia de carateres!

Ae termino o meu Analisador Léxico e parto para o Analisador Sintático!

acho que vou logo pros comentarios, depois volto pras constantes!

Obrigado pelo apoio pessoal!

Qualquer dúvida posto novamente aqui…

abraço…

maior_abandonado

blima10:
É realmente trabalhoso!
Até agora meu programa reconhece dentro do código fornecido todas as palavras que estão contidas no meu arraylist de fixos e reconhece meu identificadores.
Agora o proximo passo é identificar as contantes, depois ignorar comentarios e depois reconhecer sequencia de carateres!

Ae termino o meu Analisador Léxico e parto para o Analisador Sintático!

cara eu não estou bem certo se você sabe oq ue está fazendo…

o analisador léxico não reconhece nada disso… basicamente o que ele faz é separar todo o código, as palavras dele formando uma pilha, vc pode coloca num arraylist por exemplo, esse arraylist vai ser enviado pro analisador sintatico… o sintatico vai tentar formar a arvore gramatical usando os itens da pilha, as palavras, e passar essa arvre pro semantico, esse que por final vai dizer o que é definido como variavel, o que é uma função a se colocar na tabela de simbolos por exemplo…

enquanto você ainda está no léxico não só não precisa se preocupa com essas coisas como também não deve…

R

Se alguem estiver precisando de um projeto de um compilador me manda um email: [email removido] que eu também estou fazendo um compilador e já fiz até o analisador semântico.

Criado 6 de maio de 2009
Ultima resposta 5 de dez. de 2009
Respostas 6
Participantes 6