Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wesley Silva

Desenvolver um compilador em java

Recommended Posts

Preciso de ajuda urgente.Estou desenvolvendo um compilador em java para a linguagem pascal, so que não estou conseguindo fazer algumas coisas, tipo:Pegar os caracter por caracter que foi digitado no textarea; Verficar se estes são caracter , se são dígitos ou se são pontos; Pegar também a linha e coluna que estão esses caracter; Por favor se alguém souber me ajuda desenvolver este compilador. Segue o código abaixo: /* * Compilador.java * * Created on 7 de Setembro de 2006, 19:32 */ package compilador; import java.awt.event.KeyEvent;import java.util.ArrayList;import java.util.Iterator;import javax.swing.JOptionPane;import javax.swing.text.BadLocationException; /** * * @author Wesley */public class Compilador extends javax.swing.JFrame { int cont; char caract; int linha, coluna; /** Creates new form Compilador */ public Compilador() { initComponents(); cont = 0; caract = ' '; linha = 0; coluna = 0; } private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here String texto = ""; String area = jTextArea1.getText(); for(int i = 0; i < area.length(); i++){ caract = area.charAt(i); try{ if((Character.isLetter(caract)) || (Character.isSpaceChar(caract))){ coluna ++; texto = texto + String.valueOf(caract); if ((Character.isSpaceChar(caract)) || caract == ':'){ jTextArea2.append("Texto: " + texto + " Linha: " + linha + " Coluna: " + coluna); jTextArea2.append("\n"); texto = ""; } if(Character.isWhitespace(caract)){ linha++; coluna = 0; } } if(texto != ""){ /* System.out.println("Texto: " + texto + " Linha: " + linha + " Coluna: " + coluna); System.out.println(""); texto = "";*/ } cont++; // } } catch(Exception ex){ } } }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, isso que você mandou aí em cima é tudo menos um compilador, para você criar um compilador é preciso várias etapas1 - Análise Léxica: Varrer a entrada e verificar se tudo o que foi inserido pertence à linguagem, além disso deve-se verificar se o que foi escrito é comentário ou não ........ ignorar caracteres tipo espaço e quebras de linha2 - Análise Sintática: Ler a BNF do java e e verificar se o arquivo corresponde à essa BNF, além disso deve criar a árvore sintática.3 - Análise Semântica: Ler a árvore semântica e verificar se tudo está semanticamente correto, por exemplo, se todas as variáveis estão declaradas e estão tipadas corretamente...4 - Geração da linguagem Obejto...O que estais fazendo acime está muito amadoresco, sugiro que dê uma olhada no JavaCC, que te auxilia a criar todos os passos que eu falei acima e já possui até a BNF do pascal pronta, teu professor vai gostar muito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.