Thursday, July 14, 2005

Lenguaje de Programacion y Sintaxis!

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Map;
import java.util.TreeMap;
import java.util.Vector;

import mathExpr.ExpressionConfiguration; //llamando la clase matematica
import mathExpr.evaluator.realEvaluator.Real; //llamando la clase matematica
import mathExpr.evaluator.realEvaluator.RealType; //llamando la clase matematica

public class MyCompiler extends Thread{ //extendiendo la clase de hilo para llamar los programas externos
private Map simpleVars = new TreeMap(); //Almacena los tipos de variables en un treemap
private Vector filesLines = new Vector(); //guarda las lineas del archivo que hay parseados
private String pathAndProgram = new String(); //Ruta de los programas que son ejecutados en memoria.
private StringBuffer salida = new StringBuffer(); //captura la salida de los resultados y errores del programa
public MyCompiler() { } //Constructor default de la clase MyCompiler
public MyCompiler( String file, GUICompiler gui ) //Constructor que recibe la ruta del archivo y una instancia de la clase GUI.
{
this.parseFile( file ); //llama a parsefile para parsear los archivos.
this.distLexico(); //hace la distrubucion del lexico del lenguaje creado.
gui.setMsg( salida.toString() ); //Pone los mensajes en pantalla de salida en el frame.
}
private String getAnyType(String val) //Metodo que retorna el tipo de una variable si es doble, entero, float, etc.
{
StringBuffer strbuff = new StringBuffer();
int i = 0;
while( val.codePointAt(i) != 32 )
{
strbuff.append( (char)val.codePointAt(i) );
i++;
}
return strbuff.toString();
}
private void setTypeVars(String type, String val) //Este algoritmo guarda en la variable simpleVars las varibles por separado.
{
String[] contenExpresion = val.split("[\\ ]{1,}");
salida.append( "Variable : " + contenExpresion[1].trim() );
if ( type.equals("entero") )
simpleVars.put(contenExpresion[1], Integer.parseInt( contenExpresion[3].trim() ));
else if ( type.equals("cadena") )
simpleVars.put(contenExpresion[1], contenExpresion[3].trim() );
else if ( type.equals("doble") )
simpleVars.put(contenExpresion[1], Double.parseDouble( contenExpresion[3].trim() ));
}
public Object getsimpleVars( Object varname ) //Retorna de simpleVars las variables que le pedimos como un objeto.
{
return this.simpleVars.get(varname);
}
private String[] valuesDefinied() //Retorna las definiciones de los tipos de variables en entero, cadena y doble como tipo de datos.
{
return new String[]{"entero","cadena", "doble"};
}
private String mkOperation( String Expresion ) //con mkOperacion se realizan las operaciones matematicas de las variables o numeros.
{
String capNumber = new String(Expresion);
String arrayNumber[] = Expresion.split("[\\ ]{0,}[\\+\\-\\*\\/][\\ ]{0,}");
for(int y=0; y}
}
}
}

0 Comments:

Post a Comment

<< Home