ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Cofigurar Flex En Windows


Enviado por   •  22 de Enero de 2014  •  1.150 Palabras (5 Páginas)  •  294 Visitas

Página 1 de 5

Cómo configurar Flex en Windows

¿A cuántos de nosotros, durante nuestras carreras en la Universidad, nos han pedido como proyecto hacer un analizador léxico, hacer un compilador o cosas afines?, ¿A cuántos de nosotros se nos pasó el tiempo, y sobre la hora queremos desarrollar estos proyectos desde cero? ¿A cuántos de nosotros nos fascinaría estructurar nuestro propio lenguaje o quizás desarrollar nuestro propio compilador? ... Pues en este post les presentó la herramienta básica de quien se aventura (y también para quién solo está de pasada) en este maravilloso mundo de los compiladores y otros programas que no son exactamente compiladores, pero que presentan algunas características de estos como los coloreadores de código.

Flex es una herramienta para generar escáneres, es decir programas que reconocen patrones léxicos en un texto. En otras palabras, flex se encarga de convertir esos patrones léxicos en tokens que pueden servir para estructurar una gramática (en el caso de un compilador) o para colorear código (En caso de un coloreador de código).

A continuación mostraré un ejemplo de script para flex:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62 %{

#include <stdio.h>

#include <conio.h>

int num_lineas = 0, num_caracteres = 0;

%}

%option noyywrap

%option yylineno

letra [a-zA-Z]

digito [0-9]

binario [0-1]

ignora " "|\t|\n

operarit *|+|-|/

operlog &|$

comparador <|>|<=|>=|==|!=

%%

{ignora}+ {;}

{letra}({letra}|{digito})* {printf("IDENTIFICADOR\n");}

{letra}+ {printf("CADENA\n");}

{binario}+ {printf("BOOLEANO\n");}

{digito}+ {printf("ENTERO\n");}

{digito}+"."{digito}+ {printf("REAL\n");}

{comparador} {printf("COMPARADOR\n");}

":=" {printf("ASIGNADOR\n");}

";" {printf("PUNTO_COMA\n");}

"!=" {printf("DIFERENCIA\n");}

"," {printf("COMA\n");}

"==" {printf("IGUAL\n");}

"." {printf("PUNTO\n");}

">=" {printf("MAYOR_IGUAL\n");}

"<=" {printf("MENOR_IGUAL\n");}

...

Descargar como (para miembros actualizados) txt (5 Kb)
Leer 4 páginas más »
Disponible sólo en Clubensayos.com