Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema2 AnalizadorLexico JFlex PDF
Tema2 AnalizadorLexico JFlex PDF
JFlex - Diap. 1
JFlex - Diap. 3
Contenidos
Introduccin
Especificacin lxica
Cdigo de usuario
Opciones y declaraciones
Reglas lxicas
Funciones en JFlex
JFlex, un generador de
analizadores lxicos
JFlex - Diap. 4
Introduccin
Introduccin
JFlex
JFlex - Diap. 5
yylex
.java
JFlex - Diap. 6
JFlex - Diap. 7
Introduccin
Contenidos
Diferentes usos:
Transformaciones simples
Anlisis
Estudios estadsticos
La velocidad suele ser proporcional a la cantidad
de caracteres en la entrada. El nmero o la
complejidad de la reglas slo influyen sobre el
tamao del autmata.
Introduccin
Especificacin lxica
Cdigo de usuario
Opciones y declaraciones
Reglas lxicas
Funciones en JFlex
JFlex - Diap. 9
Especificacin lxica
JFlex - Diap. 10
Cdigo de usuario
Formato general:
{Cdigo de usuario}
lxico.
%%
{Opciones y declaraciones}
%%
{Reglas lxicas}
10
JFlex - Diap. 11
JFlex - Diap. 12
Opciones y declaraciones
Especificacin lxica
Formato general:
Contenido:
Opciones del cdigo generado
Cdigo fuente especfico
Macros y estados
{Cdigo de usuario}
%%
{Opciones y declaraciones}
%%
{Reglas lxicas}
Universidad Rey Juan Carlos, rea de Lenguajes y Sistemas.
11
12
JFlex - Diap. 13
Opciones y declaraciones
Opciones y declaraciones
JFlex - Diap. 14
13
14
JFlex - Diap. 15
Opciones y declaraciones
Especificacin lxica
Formato general:
Macros y estados:
Macros definiciones regulares.
{Cdigo de usuario}
DigitoHex = [0-9a-fA-F]
NumeroBinario = b [01]+
%%
{Opciones y declaraciones}
JFlex - Diap. 16
%%
{Reglas lxicas}
15
16
JFlex - Diap. 17
Reglas lxicas
Reglas lxicas
Formato:
expresin
{ acciones }
a | b Unin
a b
Concatenacin
a*
Repeticin 0 o N veces
a+
Repeticin 1 o N veces (= a a*)
a?
Opcionalidad
!a
Negacin
~a
Cualquier cosa que termine en a.
Funcionamiento:
Cuando se detecta un lexema que cumple el
patrn definido en la expresin se ejecutan
las acciones asociadas (cdigo java)
Universidad Rey Juan Carlos, rea de Lenguajes y Sistemas.
JFlex - Diap. 18
17
18
JFlex - Diap. 19
Reglas lxicas
Reglas lxicas
Cadena de caracteres
[]
Clases de caracteres
Utilizacin de estados:
<estado1,estado2,>
[^]
{acciones}
expresin
Algunas predefinidas:
.
[:letter:]
JFlex - Diap. 20
19
20
JFlex - Diap. 21
Reglas lxicas
Reglas lxicas
JFlex - Diap. 22
21
22
JFlex - Diap. 23
Contenidos
Funciones de JFlex
yytext() Devuelve el lexema reconocido.
yylength() Devuelve el la longitud del lexema.
yycharat( int n ) Devuelve el ensimo carcter
del lexema reconocido.
yypushback( int n ) Considera los n ltimos
Introduccin
Especificacin lxica
Cdigo de usuario
Opciones y declaraciones
Reglas lxicas
Funciones en JFlex
JFlex - Diap. 24
23
24