Jlex Tutorial

Páginas: 8 (1969 palabras) Publicado: 7 de noviembre de 2012
JLex
• Lex en Java
– JLex es un analizador Lexico en Java. – JLex fue desarrollado por Elliot Berk (Princeton University). • Mantenido por C. Scott Ananian.

JLex
Salvador Sánchez, Daniel Rodríguez Departamento de Ciencias de la Computación Universidad de Alcalá

http://www.cs.princeton.edu/~appel/modern/java/JLex/

Procesadores de lenguaje – JLex Salvador Sanchez, Daniel RodríguezInstalación JLex
• Java debe estar instalado.
– http://java.sun.com/ – J2SE(TM) Development Kit – (JRE – Java Runtime environment no es suficiente)

Generación y Ejecución del Analizador Léxico
• Generación del explorador (JLex -> Java):
– java JLex.Main fichero.lex

• Compilación del explorador (Java -> Byte-Code):
– javac fichero.lex.java

• • • • •

Escoger el directorio p.e.,[c:\java\ ] Creamos un subdirectorio llamado JLex en el directorio escogido en el punto 1. [c:\java\JLex] Copiamos el fichero Main.java en este subdirectorio. [c:\java\JLex\Main.java] Compilamos Main.java: javac Jlex\Main.java Añadir JLex a CLASSPATH

• Ejecurtar explorador
– java Yylex • (Yylex es el nombre por defecto)

Procesadores de lenguaje – JLex Salvador Sanchez, Daniel RodríguezProcesadores de lenguaje – JLex Salvador Sanchez, Daniel Rodríguez

Estructura de un fichero JLex
Código de usuario %% Directivas de JLex %% Reglas de expresiones regulares • Código de usuario, se copia directamente en el explorador generado. Esta sección se utiliza para incluir sentencias Java de importación y la definición de clases y tipos de datos que puedan ser de interés para la aplicación agenerar. • Sección de directivas se utiliza para particularizar algunas características del explorador generado y, también, es donde se declaran las macros y estados que se usarán en la definición de las reglas léxicas. • Sección de reglas léxicas, contiene las reglas léxicas que se utilizarán para generar el explorador.
Procesadores de lenguaje – JLex Salvador Sanchez, Daniel Rodríguez

CódigoGenerado
• El explorador se implementa con una clase que, por defecto, tiene el nombre Yylex.

Procesadores de lenguaje – JLex Salvador Sanchez, Daniel Rodríguez

Función yylex()

Función yylex( ) considerando la entrada por defecto
import java.io.*; // Sección de código de usuario (...) %% // Sección de directivas %{ public static void main (String argv[]) throws java.io.IOException {Yylex yy = new Yylex(System.in); while (yy.yylex() != -1) ; } %} (...) %% // Sección de reglas léxicas (...)

• La función yylex( ) implementa el autómata de la gramática. • Identifica el patrón que encaja con la entrada actual y retorna el testigo correspondiente al lexema identificado que, por defecto, es de tipo Yytoken.

Procesadores de lenguaje – JLex Salvador Sanchez, Daniel RodríguezProcesadores de lenguaje – JLex Salvador Sanchez, Daniel Rodríguez

Sección de reglas léxicas
• La 3ª sección del fichero de especificación contiene las reglas que extraen tokens del fichero de entrada. Cada regla consta de: •
1.Lista opcional de estados 2.Expresión regular 3.Acción léxica [Lista_de_Estados] [Expresión_Regular] [Acción_Léxica]

Metacaracteres
• Metacaracteres: ? * + | ( ) ^ $[ ] { } " \ • Para utilizarlos se puede:
– Delimitarlos con comillas. Ej.: "*" – Anteponer la barra invertida: Ej.: \* – Usar su código de carácter Ej.: • \ooo (3 dígitos en octal) • \x hh (2 dígitos hexadecimales) • \u hhhh (código unicode) – Caracteres especiles con secuencias de control: • \b Retroceso. • \n Nueva línea. • \t Tabulación. • \f Avance de línea. • \r Retorno de carro. • \^CCarácter de control

.

• Ej:
[a-zA-Z][a-zA-Z_0-9]* {System.out.println ("Identificador");)

Procesadores de lenguaje – JLex Salvador Sanchez, Daniel Rodríguez

Procesadores de lenguaje – JLex Salvador Sanchez, Daniel Rodríguez

Expresiones Regulares
• Todo carácter del lenguaje es una expresión regular que se representa a sí mismo, excepto el espacio en blanco (ya que es un delimitador)...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Jlex
  • Jlex
  • JLex y javaCUP
  • Tutoriales
  • tutorial
  • Tutorial
  • Tutorial
  • Tutorial

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS