Bom dia pessoal, estou fazendo um trabalho da faculdade onde tenho que desenvolver um simulador de compilador, aqui está o código do compilador.java:
public class compilador {
private static final long serialVersionUID = 1L;
// Função LerCaracter()
Tela tela = new Tela();
char LerCaracter(){
char c = 0 ;// inicializa a variavel c
String texto = tela.edtCodigo.getText();// a variavel texto pega o conteúdo do JTextArea
// o edtCodigo é onde eu vou digitar o código para ser analisado
// e o edtResultado irá mostrar o resultado
for(int i=0;i<texto.length();i++){
c = texto.charAt(i);// o c recebe cada letra que tem no texto
}
return c;
}
void Lex(){
char c = 0 ;
int aux = 1, estado = 0 ;
while(aux == 1){// while
switch(estado){// switch de estados
case 0: c = LerCaracter() ;// le o caracter
switch(c){// switch de caracter
case ' ': estado = 0 ; break ;
case '\n': estado = 0 ; break ;
case '\t': estado = 0 ; break ;
case '=': estado = 1 ; break ;
}// fim do swtich de caracter
case 1: c = LerCaracter() ;
if(c == '='){
tela.edtResultado.setText("Operador de igual encontrado");
continue ;
}
else{
if(c == ' '){
tela.edtResultado.setText("Atribuição encontrada") ;
continue ;
}
}
}// fim do switch de estados
aux = 0 ;
}// fim do while
}// fim da função Lex()
}
O código está simplificado, só verifica se há operador de igualdade ou atribuição.
Só que quando eu digito “==” no edtCodigo e clico no botão analisar não aparece nada no edtResultado.
Alguém pode me ajudar?
Obrigado