Ajuda com compilador

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

Creio que a logica de LerCaracter() não esteja muito correta.

Ele da um loop por cada caracter da String texto, mas retorna sempre a ultima.

Use um StringReader ( http://java.sun.com/javase/6/docs/api/java/io/StringReader.html ) para ler um caracter de cada vez de uma string.