Analizador Lexico (NetBeans)
Enviado por 19971975 • 15 de Mayo de 2015 • 575 Palabras (3 Páginas) • 938 Visitas
package analizadorlexico;
/*ANALIZADOR LEXICO */
/*@author PEDRO DAMIAN GOMEZ FONSECA*/
/*@author ARLEN GUADALUPE ECHEVERRIA LUGO*/
/*@author JAZMIN ALONDRA PUGA CARRILLO*/
import java.util.regex.Matcher;
/*Libreria que se Encarga de Leer el Patron*/
import java.util.regex.Pattern;
/*Libreria que se Encarga de Definir el Patron*/
import javax.swing.JOptionPane;
/*Libreria que se Encarga de Mostrar las Ventanas*/
public class Analizador_Lexico {
/*Expresion Regular*/
/*String PalabraReservada = "(while|do|if|else|for|System.out.println|int|String)" ;
String Variable = "|([a-zA-Z]+)" ;
String Operador = "|([++]+)" ;
String Numero = " |([0-9]+)" ;
String Parentesis = "|([(|)]+)" ;
String Llaves = "|([{|}]+)" ;
String Simbolo = "|(;)" ;
String Patron = PalabraReservada + Variable + Operador + Numero + Parentesis + Llaves + Simbolo ;*/
String Patron = ("(while|do|if|else|for|System.out.println|int|String)|([a-zA-z]+)|([>|<|=]+)|([0-9]+)|([(|)]+)|([{|}]+)|(;)");
String Texto ;
String Cadena ;
public Analizador_Lexico () {
/*Estructuras*/
pideCodigo();
muestraExpresion();
}
private void pideCodigo(){
/*Ventana para Ingresar el Codigo*/
Texto = JOptionPane.showInputDialog(null,"Escribe el Codigo:");
}
private void muestraExpresion(){
/*Compila la Expresion Regular*/
Pattern p = Pattern.compile (Patron);
/*Compila ela Expresion Regular y Analiza el Texto*/
Matcher matcher = p.matcher(Texto);
while ( matcher.find () ) {
/*Funcion Find para encontar las concidencias de las palabras reservadas*/
/*Grupo 1*/ String Token_1 = matcher.group ( 1 ) ; /*Primer Token de la Expresion Regular*/
if ( Token_1 != null ) { System.out.println ( "Palabra Reservada: " + Token_1 ) ; }
/*Grupo 2*/ String Token_2 = matcher.group ( 2 ) ; /*Segundo Token de la Expresion Regular*/
if ( Token_2 != null ) { System.out.println ( "Variables: " + Token_2 ) ; }
/*Grupo 3*/ String Token_3 = matcher.group ( 3 ) ; /*Tercer Token de la Expresion*/
if ( Token_3 != null ) { System.out.println ( "Operador: " + Token_3 ) ; }
/*Grupo 4*/ String Token_4 = matcher.group ( 4 ) ; /*Cuerto Token de la Expresion*/
if ( Token_4 != null ) { System.out.println ( "Numero: "
...