Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 1

public void analizarSintacticoWhile(String expr){

System.out.println("********************");
System.out.println("Analisis sintáctico: ");
String salida=expr;
int errorSint=0;
for (int i = 0; i < salida.split(" ").length; i++) {
//Se declaran los patrones para ser recorridos
Pattern p= Pattern.compile("[^while][[0-9]+[\\+|\\-|\\*|\\/][0-9]]+[)$]");
Matcher m =p.matcher(salida.split(" ")[i]);
if(salida.split(" ").length>0){
if(salida.split(" ")[i].contains("while")==true){
String palabra="";
if(salida.split(" ")[i].contains("while")){
palabra="while";
}

if(m.find()==true&&palabra.length()>0){
System.out.println(salida.split(" ")[i]+"Análisis sintáctico
de la palabra"
+ " reservada "+palabra+" es correcta");
}
else if(m.find()==false&&palabra.length()>0){
System.err.println(salida.split(" ")[i]+"Se esperaban
sentencias dentro de "
+ ""+palabra+" o valores numéricos");
}
}
if(salida.split(" ")[i].contains("+")==true|salida.split(" ")
[i].contains("-")==true|
salida.split(" ")[i].contains("*")==true|salida.split(" ")
[i].contains("/")==true){
p=Pattern.compile("[^[0-9]+[\\+|\\-|\\*|\\/][0-9]+]*");
m=p.matcher(salida.split(" ")[i]);
if(m.find()){
errorSint=1;
System.out.println(salida.split(" ")[i]+" Sintaxis matemática
correcta");

}else{
errorSint=2;
System.err.println(salida.split(" ")[i]+"La sintaxis metemática es
incorrecta");
}
}
else{
errorSint=0;
}
if(salida.split(" ")[i].contains("while")==false){
System.err.println(salida.split(" ")[i]+" Error de sintaxis, lenguaje
desconocido");
}
}
}
}

You might also like