RE:Ayuda para construccion de un compilador en jav
Hola de nuevo: tengo un problema con mi analizador sintàctico y quisiera que me ayudaran a resolver dicho problema.. aqui les mendo el codigo que tengo
import java.io.*;
public class PruebaLecturaH{
FileReader archivo;
public int ncars;
String palabra,error="";
//char[] buffer = new char[100];
String ERROR[]={"ERROR DE SINTAXIS"};
public void Lectura()
{
try
{
System.out.print("Nombre del archivo: ");
String nom=Leer.dato();
archivo=new FileReader(nom);
System.out.println("\n\t\tCompilado por KINplus");
System.out.println("\n\t\tHerramienta completada con exito");
while((ncars=archivo.read())!=-1)
{
if(ncars==105)
{
GENERAL(ncars);
if(error!="")
System.out.println("ERROR: "+ error);
break;
}
}
}
catch(FileNotFoundException fnfe){ System.out.println(fnfe);/* Archivo no encontrado */ }
catch (IOException ioe){ System.out.println(ioe);/* Error al leer */ }
}// fin metodo
//-------------------------------------------------//
public void GENERAL (int ncars)
{
try
{
palabra=""+(char)ncars;
int contador=0;
char a[],b[];
while ((ncars=archivo.read())!=32)
{
palabra=palabra +(char)ncars;
}
a="iniciar".toCharArray();
b=palabra.toCharArray();
if (a.length==b.length)
{
for (int i=0; i<a.length; i++)
{
if (a[i]==b[i])
contador++;
}
}
if(contador!=a.length)
error=error+ERROR[0] + "**" +palabra+ "**";
// NOM_PROGRAMA();
while((ncars=archivo.read())!=-1)
{
if(ncars==112)
{
// VAR(ncars);
Para(ncars); // aqui agrego la maquina de abajo
break;
}
}
}
catch(IOException e)
{
System.out.println( e.getMessage());
}
}//fin metodo
// esta es la maquina que tengo que agragar
public void Para(int ncars)
{
try{
palabra=""+(char)ncars;
int contador=0;
char a[],b[];
while ((ncars=archivo.read())!=32)
{
palabra=palabra +(char)ncars;
}
a="para".toCharArray();
b=palabra.toCharArray();
if (a.length==b.length)
{
for (int i=0; i<a.length; i++)
{
if (a[i]==b[i])
contador++;
}
}
if(contador!=a.length)
error=error+ERROR[0] + "**" +palabra+ "**";
//NOM_PROGRAMA();
while((ncars=archivo.read())!=-1)
{
if(ncars==118)
{
//VAR(ncars);
break;
}
}
}// fin try
catch(IOException e)
{
System.out.println( e.getMessage());
}// fin catch
}// fin metodo
//------------------------------------------------------------------------------------------------------------
public static void main(String []args)
{
PruebaLecturaH obj=new PruebaLecturaH();
obj.Lectura();
}
/***********************************************************************/
}
necesito saver como comparar las longitudes de las palabras reservadas con las que tengo en mi archivo de texto. el archivo de texto se llama: t.txt y debe contener las palabras: iniciar nomprog.
y hasta ahi si jala pero al momento de agragar otra maquina , y al ejecutarlo, se traba el programa. y no aparece el mensaje de oprimir una tecla para continuar.