He aqui el codigo (Java)
public class EvaluaExpresion {
public char token;
private int i;
public EvaluaExpresion(String datos) {
//token=lex();
i=1;
token=datos.charAt(i);
}
private void simboloL(){
boolean sal=false;
while(!sal){
if(token=='#')
sal=true;
else{
simboloI();
if (token!=';')
System.out.println("Se esperaba ';'");
else{
i++;
token=datos.charAt(i);
}
}
}
}
private void simboloI(){
if(token=='x'){
i++;
token=datos.charAt(i);
if(token!='=')
System.out.println("Se esperaba '='");
else{
i++;
token=datos.charAt(i);
simboloE();
}
}
/* if(token==sim.ESCRIBE){
token=lex();
if(token!=sim.PIZQ)
System.out.println("Se esperaba '('");
else{
token=lex();
simboloE();
if(token!=sim.PDER)
System.out.println("Se esperaba ')'");
else
token=lex();
}
}
else
System.out.println("Se esperaba 'ESCRIBE'"); */
}
private void simboloE(){
boolean sal=false;
while(!sal){
simboloT();
if((token=='+') ||(token=='-')){
i++;
token=datos.charAt(i);
}
else
sal=true;
}
}
private void simboloT(){
boolean sal=false;
while(!sal){
simboloF();
if((token=='*') ||(token=='/')){
i++;
token=datos.charAt(i);
}
else
sal=true;
}
}
private void simboloF(){
if(token==sim.NUM)
do
token=lex();
whilw
else
if(token==sim.ID)
token=lex();
else
if (token==sim.PIZQ){
token=lex();
simboloE();
if(token==sim.PDER)
token=lex();
else
System.out.println("Se esperaba ')'");
}
else
System.out.println("Se esperaba '('");
}
public static void main(String args[]){
new Sintaxis("3+4/2");
}
}




