• Jueves 9 de Mayo de 2024, 20:07

Autor Tema:  Analizador Lexico en java  (Leído 3676 veces)

megan-01

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Analizador Lexico en java
« en: Lunes 31 de Mayo de 2010, 02:35 »
0
hola podrian ayudarme con un analizador lexico en java que lea un archivo de texto y reconzca los siguientes tokens identificadores numericos >,<,<=,etc ,cadena de caracteres,comentarios y numeros reales,*,+,-/ y los muestre clasificados por lexemas.
tengo el siguiente codigo pero falta completarlo ya que presenta errores.AGRADECERIA MUCHO SU AYUDA...

public class Analizador {
   
    public static void main(String args)throws IOException{
        FileReader fr =  new FileReader("archivo.txt");
        BufferedReader br = new BufferedReader(fr);
        int esDigito=0;
       
        int x;
        char c;
        String lexema="";
        do{
            do{
                x=br.read();
            c=(char)x;
        }while(c==' '|| c=='t' || c=='n');
           if(esLetra(c)){
               do{

                   lexema=lexema+c;
                   x=br.read();
                   c=(char)x;
               }
               while(esLetra(c) || esDigito(c));
                   System.out.println("IDENTIFICADOR :"+lexema);
                   lexema="";

               }
               else
               if(esDigito(c))
               {
                   do{
                       lexema=lexema+c;
                        x=br.read();
                        c=(char)x;
                   }while(esDigito(c));
                   System.out.println("NUMERO"+lexema);
                   lexema="";
               }
               else
                   if(c=='>')
                   {
                       x=br.read();
                       c=(char)x;
                       if(c=='='){
                           System.out.println("MAYOR O IGUAL: >=");
                               x=br.read();
                                c=(char)x;
                       }
                       else
                           System.out.println("MAYOR : >");
                   }
            while(x!=-1);
            br.close();
        }
}