Professional Documents
Culture Documents
INTRODUCCION
Lexemas:
Son caracteres o conjuntos de caracteres (palabras) que
pertenecen al lxico del lenguaje.
Expresiones Regulares (Patrones):
Definen las reglas que permiten identificar los componentes
lxicos o tokens.
Tokens:
Son los componentes lxicos generados por el analizador
Lexicogrfico.
Atributos:
Son informacin adicional para cada componente lxico que
sern utilizadas en el anlisis semntico y/o en la fase de
sntesis (ej. Lexema, Tipo, Valor, Lnea).
Depende del token.
INTRODUCCION
INTRODUCCION
%%
[b\ t]+ $ ;
[b\ t] + printf ( );
Diferentes usos:
Transformaciones simples.
Anlisis.
Estudios estadsticos.
INTRODUCCION
EXPRESIONES DE LEX
Cada expresin regular contiene:
caracteres de texto.
abcdefghijklmnopqrstuvwxyz
1234567890
caracteres operadores.
\ [ ] ^ - ? . * + | ( ) $ / { } % < > Comodn, cualquier carcter menos
el salto de \n.
? Opcional.
* Repeticin de 0 a veces.
+ Repeticin de 1 a veces.
| Disyuncin entre dos expresiones regulares.
() Agrupamiento.
^ primera de la lnea.
$ ltima de la lnea.
Ejemplo:
xyz++
xyz++
xyz\+\+
Resultado:
xyz++
Escapes Normales con la barra invertida.
\n
newline
\t
tabulador
\b
backspace
\\
barra invertida
ESPECIFICACIN DE CLASES DE
CARACTERES DEL LEX
[ abc ]
CARACTERES ESPECIALES
barra invertida ( \ )
El guin ( - )
El signo de intercalacin ( ^ )
Ejemplo
[ a-z0-9<>_ ]
[ -+0-9 ]
[ ^abc ]
ESPECIFICAR EXPRESIONES
OPCIONALES
Ejemplo:
ab?c
Resultado:
ac
abc.
ESPECIFICACIN DE EXPRESIONES
REPETIDAS
ESPECIFICACIN DE ALTERACIN Y DE
AGRUPAMIENTO
ESPECIFICACIN DE
SENSITIVIDAD DE CONTEXTO
Estas rdenes son una forma de cambiar el ejemplo anterior para hacer
justamente eso. Despus de contar cada expresin, sta se desecha;
siempre que sea apropiado, la otra expresin se contar. En este
ejemplo, naturalmente, el usuario podra tener en cuenta que she
incluye a he, pero no viceversa, y omitir la accin REJECT en he; en
otros casos, no sera posible decir qu caracteres de input estaban en
ambas clases.
Considere las dos rdenes
a [ bc ] + { ... ; REJECT;}
a [ cd ] + { ... ; REJECT;}
Si el input es ab, slo coincide la primera orden, y en ad slo coincide la
segunda. La cadena de caracteres del input accb, cuatro caracteres
coinciden con la primera orden, y despus la segunda orden con tres
caracteres. En contrate con esto, el input accd coincide con la segunda
orden en cuatro caracteres y despus la primera orden con tres.
ESPECIFICACIN DE DEFINICIONES
FUENTE
ESPECIFICACIN DE
DEFINICIONES FUENTE
ESPECIFICACIN DE
DEFINICIONES FUENTE
ESPECIFICACIN DE
DEFINICIONES FUENTE
ESPECIFICACIN DE
DEFINICIONES FUENTE
ESTRUCTURA DE UN PROGRAMA EN
LEX
Seccin de Definiciones
<Expresin Regular>
letras ([a-z]|[A-Z]+)
ESTRUCTURA DE UN PROGRAMA EN
LEX
Seccin reglas
-Identificar los componentes bsicos que debe validar el
analizador lxico.
<patrn> {<accin a seguir>}
ESTRUCTURA DE UN PROGRAMA EN
LEX
Seccin subrutinas
-Solo codificacin en C
-Al menos se codifica la funcin main()
-Se puede codificar otras funciones o subrutinas
-La funcin main() debe invocar al menos la
funcin yylex();
-yylex(); => ejecuta el analizador lxico
Compilador
LEX
pclex prog.l
Resultado compilacin en lex va a ser equivalente a cdigo
en lenguaje C
prog.c
Compilador
C
prog.obj
prog.exe
EJERCICIO #1
EJERCICIO #2