Page 68 - LENGUAJES FORMALES AUTOMATAS Y COMPILADOS
P. 68
68
ENTREGA V
EXPRESIONES REGULARES
La mayoría de los programas modernos, poseen las librerías pattern y matcher, que se utilizan
para detectar o aceptar cadenas en atención a un patrón dado. Tanto JAVA como Visual Basic,
PHP y demás tiene la capacidad de realizar esto con la teoría dada. Existen otros softwares para
crear y verificar la correcta construcción de expresiones regulares.
Programa que reconoce palabras reservadas, variables, etc. en JAVA.
PACKAGE ALGODEMI;
IMPORT JAVA.UTIL.REGEX.MATCHER;
IMPORT JAVA.UTIL.REGEX.PATTERN;
/**
*
* @AUTHOR LENOVO
*/
PUBLIC CLASS ALGODEMI {
/**
* @PARAM ARGS THE COMMAND LINE ARGUMENTS
*/
PUBLIC STATIC VOID MAIN(STRING[] ARGS)
{ STRING PATRON = ( "(WHILE) | ( ([A-ZA-Z])) | ([>|<|=]+) | ([0-9]+)| ([(|)]+) |([{|}]+) |(;)");
STRING TEXTOEX = "WHILE (X=0) < (Y=0)";
PATTERN P = PATTERN.COMPILE(PATRON);
MATCHER ESTO = P.MATCHER(TEXTOEX);
WHILE ( ESTO.FIND())
{ STRING TK1 = ESTO.GROUP(1);
IF (TK1 != NULL)
{ SYSTEM.OUT.PRINTLN("PALABARA RESERVADA " + TK1);
}
STRING TK2 = ESTO.GROUP(2);
IF (TK2 != NULL)
{ SYSTEM.OUT.PRINTLN("VARIABLE " + TK2);
}
STRING TK3 = ESTO.GROUP(3);
IF (TK3 != NULL)
{ SYSTEM.OUT.PRINTLN("OPERADOR " + TK3);
}
STRING TK4 = ESTO.GROUP(4);
IF (TK4 != NULL)
{ SYSTEM.OUT.PRINTLN("NUMERO " + TK4);
}
STRING TK5 = ESTO.GROUP(5);
IF (TK5 != NULL)
{ SYSTEM.OUT.PRINTLN("OPERADOR RELACIONAL " + TK5);
}
STRING TK6 = ESTO.GROUP(6);
IF (TK6 != NULL)
{ SYSTEM.OUT.PRINTLN("VARIABLE:" + TK6);
}
STRING TK7 = ESTO.GROUP(7);
IF (TK7 != NULL)
{ SYSTEM.OUT.PRINTLN("OPERADOR IGUAL " + TK7);
}
/* STRING TK8 = ESTO.GROUP(8);
IF (TK8 != NULL)
{ SYSTEM.OUT.PRINTLN("NÚMERO: " + TK8);
}*/
}
}
// TODO CODE APPLICATION LOGIC HERE
}