Lex

Páginas: 4 (872 palabras) Publicado: 5 de noviembre de 2015
Lex/Yacc
http://www.medinaweb.com/programas/documents/tut
oriales/lex_yacc/core/lex.html

Lex. Conceptos básicos
• Lex: herramienta para construir analizadores
léxicos (1ª. Fase)
• Requiere escribiruna especificación léxica, a
través de la creación un conjunto de patrones
(Expresiones Regulares)
• Lex no produce un programa compilado, lo que
hace es traducir las especificaciones a lenguaje C
•Incluye una rutina llamada yylex(), que es
utilizada para iniciar el análisis de la entrada

Lex. Conceptos Básicos
• La entrada es tomada de yyin, que por defecto
su valor es stdin, es decir, lapantalla o
terminal. Este valor puede ser modificado por
cualquier apuntador a un archivo.
• La entrada se puede leer también desde un
arreglo de caracteres u otros medios, lo que
implica implementaralgunas funciones de lex.

Un ejemplo sencillo
%%
. printf("%c",yytext[0]);
%%

* Guardar como ejem0.l

$ lex ejem0.l
$ gcc -o ejem0 lex.yy.c -ll
$ ./ejem0
Ejemplo de Lex
Ejemplo de Lex
^C$

Ejemplo:Reconoce cualquier numero entero y
cualquier palabra formada por letras mayúsculas o
minúsculas de la «a» a la «z» (ejem1.l)
• Definiciones o
declaraciones:
%{
#include
int palabra=0, numero=0;
%}Numero-?[0-9]+
Palabra [a-zA-Z]+

1. Declaraciones en C
– Son aquellas
encerradas entre %
{ %}

2. Declaraciones de lex
– Están formados por un
nombre o identificador
y su respectiva
expresión regular Ejemplo: Reconoce cualquier numero entero y
cualquier palabra formada por letras mayúsculas o
minúsculas de la «a» a la «z» (ejem1.l)
• Reglas:
"bye"{bye();return 0;}
"quit" {bye();return 0;}
"resume"{bye();return 0;}
{Palabra} {printf("Se leyo la
palabra : %s", yytext);palabra++;}
{Numero} {printf("Se leyo el
numero : %d",
atoi(yytext));numero++;}
. printf("%s",yytext[0]);

• Las reglas Lextienen el
siguiente formato:
{código en C}

• La primera columna son las
expresiones regulares
• En la segunda columna se
escriben acciones en C
• Cada que se acepta una
cadena se...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Lexar
  • lexa
  • Lex
  • Lexo
  • Dura lex, sed lex
  • lex dura lex
  • dura lex, dura lex
  • lex mercatoria

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS