Java - Ayuda para construccion de un compilador en java

 
Vista:

Ayuda para construccion de un compilador en java

Publicado por Hector Manuel Rodriguez Gallin (3 intervenciones) el 24/10/2006 20:54:16
Hola, necesito ayuda para la construccion de un compilador en java espero que me puedan ayudar o si mepudieran mandar un codigo esqueleto de al menos el analizador léxico, sintáctico y semántico
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Ayuda para construccion de un compilador en jav

Publicado por camus (240 intervenciones) el 24/10/2006 23:29:23
Hola, creeme que en un foro pocos te enviaran el código de lo que necesitas, más bien deberias intentar programar algo y depués pedir ayuda sobre lo que te atores, ya que de esta manera tendras más posibilidades de que alguien te ayude

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda para construccion de un compilador en jav

Publicado por Hector Manuel Rodriguez G. (3 intervenciones) el 25/10/2006 00:07:53
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.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda para construccion de un compilador en jav

Publicado por luis (57 intervenciones) el 25/10/2006 04:15:57
donde declaras esta variable donde creas el objeto??????

PruebaLecturaH.java:16: cannot resolve symbol
symbol : variable Leer
location: class PruebaLecturaH
String nom=Leer.dato();
^
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda para construccion de un compilador en jav

Publicado por Hector Manuel Rodriguez G. (3 intervenciones) el 25/10/2006 14:37:38
Aaa:... se objeto se crea asi: Leer leer=new Leer() . donde leer es el objeto creado de la clase Leer y dentro de esa clase existen varios metodos para escribir desde el teclado. Dichos metodos se mandan llamar segun el tipo de dato a introducir desde el teclado: ejemplo: <variable=Leer.datoInt()> aqui les mando la clase Leer la cual debe de estar en la misma carpeta del programa a ejecutar:

//esta es la calse Leer()
import java.io.*;
public class Leer{
public static String dato(){
String sdato = "";
try{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader flujoE = new BufferedReader(isr);
sdato = flujoE.readLine();
}
catch(IOException e){
System.err.println("*Error: " + e.getMessage());
}
return sdato;
}

public static short datoShort(){
try{
return Short.parseShort(dato());
}
catch(NumberFormatException e){
return Short.MIN_VALUE;
}
}

public static int datoInt(){
try{
return Integer.parseInt(dato());
}
catch(NumberFormatException e){
return Integer.MIN_VALUE;
}
}

public static long datolong(){
try{
return Long.parseLong(dato());
}
catch(NumberFormatException e){
return Long.MIN_VALUE;
}
}

public static float datoFloat(){
try{
Float f = new Float(dato());
return f.floatValue();
}
catch(NumberFormatException e){
return Float.NaN;
}
}

public static double datoDouble(){
try{
Double d = new Double(dato());
return d.doubleValue();
}
catch(NumberFormatException e){
return Double.NaN;
}
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda para construccion de un compilador en jav

Publicado por fernanda fernandez (2 intervenciones) el 20/05/2018 21:54:21
lograste hacerlo pasame tu codigo por favor es que debo hacerlo y no tengo ningun carajo de idea graciasss
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda para construccion de un compilador en jav

Publicado por Ascari Romo (36 intervenciones) el 27/10/2006 02:32:01
Hola:

Como dice camus nadie te pasara el codigo de un compilador por un foro.

Sin embargo te puedo ayudar con varias cosas. Primeramente necesitas auxiliarte de algun analizador lexico sintactico, tal es el caso de javacc. Es un potente analizador que te genera en codigo Java las gramaticas de un alfabeto siguiendo la teoria de las Gramaticas.

Actualmente Javacc esta en su version 4. Lo descargas, y dentro esta un archivo .class el cual debes ejecutar desde la linea de comandos:

java JavaCC_4

para arrancar el instalador.

Javacc es un metacompilador, por lo cual necesitas documentarte bien para conocer la sintaxis y poder crear tus propias gramaticas.

Este programa te maravillara si lo sabes usar.

Recibe un cordial saludo!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda para construccion de un compilador en jav

Publicado por fernanda fernandez (2 intervenciones) el 20/05/2018 22:09:06
es que no es solo eso lo necesito hacer por interfaz por eso necesito ayuda para el codigo al menos guiarme
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar