SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Usando Flex M. Rico, 2011
Flex en Windows (1/4) Usa MinGW (http://www.mingw.org/) Descarga e instala mingwgetinst (mingw-get-inst-20110211.exe)
Flex en Windows (2/4) Tras la instalación, ejecuta la aplicación MinGW Shell
Flex en Windows (3/4) Comprueba que están instalados: gcc flex Vim
Flex en Windows (4/4) ¿Dónde están los archivos? Si MinGW está instalado en C:/MinGW El directorio home se encuentra en C:inGWsys.0ome Flex genera un ejecutable Windows (.exe) que se puede ejecutar independientemente de MinGW Como un .exe cualquiera.
Usando flex. Ejemplo simple (1/2) simple.flex %%usernameprintf( "%s", "mariano" ); simple.text Esto es una prueba Linea 2. Linea 3 con un username y alguna cosa mas. Ultima linea.
Usando flex. Ejemplo simple (2/2) Lee simple.flex y genera el código C del parser en el fichero lex.yy.c Crea el parser compilando el fichero lex.yy.cc y linkando con la librería de flex (-L indica la ubicación de la librería de flex) El parser lee de stdin el texto a parsear, por eso se usa la pipa < Este parser sustituye username por mariano
Ejemplo simple2 (1/2) /* Esto es un comentario */ %{ /* Necesario para la funcionatof */ #include <math.h> %} DIGITO    [0-9] ID        [a-z][a-z0-9]* %% {DIGITO}+  { printf("Entero: %s (%d)", yytext, atoi(yytext));            } {DIGITO}+"."{DIGITO}* { printf("Un decimal: %s (%g)", yytext, atof(yytext));            } {ID}       printf("Un identificador: %s", yytext); "/*"[^]*"*/"    /* fuera comentarios de una linea */ [ ]+         /* fuera espacios o retornos o tabuladores */ .               printf("Caracter raro: %s", yytext); %% main (intargc, char** argv){   ++argv, --argc; /* me salto el nombre del prog */ if (argc > 0){ yyin = fopen(argv[0], "r");   }else{ yyin = stdin;   } yylex(); } Sección de definiciones simple2.flex Sección de reglas En lugar de stdin, que lea de un fichero (argumento de flex) Sección de ejecución
Ejemplo simple2 (2/2) Genero el código C del parser Genero el parser Contenido del fichero de prueba Resultado de la ejecución
Ejemplo email (1/2) email.flex /* Esto es un comentario */ %{ /* Necesario para la funcionatof */ #include <math.h> %} USER        [a-z][a-z0-9]* HOST        [a-z][a-z0-9]* %% {USER}"@"{HOST} { printf("Un email: %s ", yytext);            } [ ]+         /* fuera espacios o retornos o tabs*/ .               /*printf("Caracter raro: %s", yytext);*/
Ejemplo email (2/2) Genero el código C del parser Genero el parser Contenido del fichero de prueba Resultado de la ejecución
Mail mejorado El anterior no consideraba los dominios separados por . Sólo contemplaba algo@algo
Contador de palabras y caracteres contador.flex /* Contador tipo wc de Unix */ %{ intchars = 0; intwords = 0; intlines = 0; %} %% [a-zA-Z]+  { words++; chars += strlen(yytext); }          { chars++; lines++; } .          { chars++; } %% main(intargc, char **argv){ yylex(); printf("%8d%8d%8d", lines, words, chars); }
Más en… http://catalog.compilertools.net/

Weitere ähnliche Inhalte

Was ist angesagt?

Introduccion a la programacion
Introduccion a la programacionIntroduccion a la programacion
Introduccion a la programacionJose Marroquin
 
Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)katherine revelo gomez
 
Protocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modemProtocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modemMirna L. Torres Garcia
 
3 5 comprension y modelado de los sistemas organizacionales
3 5 comprension y modelado de los sistemas organizacionales3 5 comprension y modelado de los sistemas organizacionales
3 5 comprension y modelado de los sistemas organizacionalesGiovani Ramirez
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesHumano Terricola
 
Análisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoAnálisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoangiepao1717
 
11. modelos según roger s
11.  modelos según roger s11.  modelos según roger s
11. modelos según roger sYvan Mayta
 
Gestión de Proyectos de Software - Unidad II: Calidad en el Software
Gestión de Proyectos de Software - Unidad II: Calidad en el SoftwareGestión de Proyectos de Software - Unidad II: Calidad en el Software
Gestión de Proyectos de Software - Unidad II: Calidad en el SoftwareJosé Antonio Sandoval Acosta
 
REGISTRO DE BANDERAS
REGISTRO DE BANDERASREGISTRO DE BANDERAS
REGISTRO DE BANDERASFabian Rojas
 
4.4 Acceso a sistema de archivos
4.4 Acceso a sistema de archivos4.4 Acceso a sistema de archivos
4.4 Acceso a sistema de archivosJesus Garcia
 
Aplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datosAplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datosK Manuel TN
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria EstaticaJ M
 

Was ist angesagt? (20)

Introduccion a la programacion
Introduccion a la programacionIntroduccion a la programacion
Introduccion a la programacion
 
Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)Arquitectura flujo de datos(filtros y tuberías)
Arquitectura flujo de datos(filtros y tuberías)
 
Protocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modemProtocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modem
 
3 5 comprension y modelado de los sistemas organizacionales
3 5 comprension y modelado de los sistemas organizacionales3 5 comprension y modelado de los sistemas organizacionales
3 5 comprension y modelado de los sistemas organizacionales
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
 
Análisis léxico y análisis sintáctico
Análisis léxico y análisis sintácticoAnálisis léxico y análisis sintáctico
Análisis léxico y análisis sintáctico
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
11. modelos según roger s
11.  modelos según roger s11.  modelos según roger s
11. modelos según roger s
 
Jerarquia de chomsky
Jerarquia de chomskyJerarquia de chomsky
Jerarquia de chomsky
 
TALLER FLEX Y BISON
TALLER FLEX Y BISONTALLER FLEX Y BISON
TALLER FLEX Y BISON
 
Gestión de Proyectos de Software - Unidad II: Calidad en el Software
Gestión de Proyectos de Software - Unidad II: Calidad en el SoftwareGestión de Proyectos de Software - Unidad II: Calidad en el Software
Gestión de Proyectos de Software - Unidad II: Calidad en el Software
 
REGISTRO DE BANDERAS
REGISTRO DE BANDERASREGISTRO DE BANDERAS
REGISTRO DE BANDERAS
 
4.4 Acceso a sistema de archivos
4.4 Acceso a sistema de archivos4.4 Acceso a sistema de archivos
4.4 Acceso a sistema de archivos
 
Segmentacion de memoria
Segmentacion de memoriaSegmentacion de memoria
Segmentacion de memoria
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Aplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datosAplicaciòn de las estructuras de datos
Aplicaciòn de las estructuras de datos
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria Estatica
 

Andere mochten auch

Instalacion de Flex, Bison y Mingw
Instalacion de Flex, Bison y MingwInstalacion de Flex, Bison y Mingw
Instalacion de Flex, Bison y MingwBayo Chicaiza
 
Compiladores - Flex y Bison
Compiladores - Flex y BisonCompiladores - Flex y Bison
Compiladores - Flex y BisonSteven Tabango
 
Tutorial Flex y Bison
Tutorial Flex y BisonTutorial Flex y Bison
Tutorial Flex y BisonShirlid .n
 
Compiladores flex bison
Compiladores flex bisonCompiladores flex bison
Compiladores flex bisonPancho Yepez
 
Herramientas flex y bison
Herramientas flex y bisonHerramientas flex y bison
Herramientas flex y bisonalexisdario
 
Incorporacion De Una Tabla De Simbolos Compiladores
Incorporacion De Una Tabla De Simbolos CompiladoresIncorporacion De Una Tabla De Simbolos Compiladores
Incorporacion De Una Tabla De Simbolos Compiladoresguest5fa3fc
 

Andere mochten auch (9)

Instalacion de Flex, Bison y Mingw
Instalacion de Flex, Bison y MingwInstalacion de Flex, Bison y Mingw
Instalacion de Flex, Bison y Mingw
 
Compiladores - Flex y Bison
Compiladores - Flex y BisonCompiladores - Flex y Bison
Compiladores - Flex y Bison
 
Tutorial Flex y Bison
Tutorial Flex y BisonTutorial Flex y Bison
Tutorial Flex y Bison
 
Compiladores flex bison
Compiladores flex bisonCompiladores flex bison
Compiladores flex bison
 
Herramientas flex y bison
Herramientas flex y bisonHerramientas flex y bison
Herramientas flex y bison
 
Incorporacion De Una Tabla De Simbolos Compiladores
Incorporacion De Una Tabla De Simbolos CompiladoresIncorporacion De Una Tabla De Simbolos Compiladores
Incorporacion De Una Tabla De Simbolos Compiladores
 
Administrador de Tabla de Símbolos
Administrador de Tabla de SímbolosAdministrador de Tabla de Símbolos
Administrador de Tabla de Símbolos
 
TABLA DE SIMBOLOS
TABLA DE SIMBOLOSTABLA DE SIMBOLOS
TABLA DE SIMBOLOS
 
INTRODUCCION A FLEX Y BISON
INTRODUCCION A FLEX Y BISONINTRODUCCION A FLEX Y BISON
INTRODUCCION A FLEX Y BISON
 

Ähnlich wie Usando Flex en Windows

Ähnlich wie Usando Flex en Windows (20)

CRUD básico con Symfony
CRUD básico con SymfonyCRUD básico con Symfony
CRUD básico con Symfony
 
procesos
procesosprocesos
procesos
 
Flex y Byson
Flex y BysonFlex y Byson
Flex y Byson
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasos
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
 
Clase3_Python-CTIC
Clase3_Python-CTICClase3_Python-CTIC
Clase3_Python-CTIC
 
Practica 5
Practica 5Practica 5
Practica 5
 
linux comando
linux comandolinux comando
linux comando
 
Comandos basicos linux
Comandos basicos linuxComandos basicos linux
Comandos basicos linux
 
Comando de linux
Comando de linuxComando de linux
Comando de linux
 
tutorial0.pdf
tutorial0.pdftutorial0.pdf
tutorial0.pdf
 
Comandos linux unix de manipulación de archivos y directorios
Comandos linux unix de manipulación de archivos y directoriosComandos linux unix de manipulación de archivos y directorios
Comandos linux unix de manipulación de archivos y directorios
 
Realidad Aumentada 01 documentacion tapir
Realidad Aumentada 01 documentacion tapirRealidad Aumentada 01 documentacion tapir
Realidad Aumentada 01 documentacion tapir
 
Programación en c primer programa en c
Programación en c primer programa en cProgramación en c primer programa en c
Programación en c primer programa en c
 
Estandar documentacion xml
Estandar documentacion xmlEstandar documentacion xml
Estandar documentacion xml
 
Perl4 io
Perl4 ioPerl4 io
Perl4 io
 
Manual Bàsic PS Tools
Manual Bàsic PS ToolsManual Bàsic PS Tools
Manual Bàsic PS Tools
 
Estructura de un programa en c
Estructura de un programa en cEstructura de un programa en c
Estructura de un programa en c
 
Redes
RedesRedes
Redes
 
Metasploit
MetasploitMetasploit
Metasploit
 

Mehr von Mariano Rico

Lexicalizing ontologies with Lemonade Tools
Lexicalizing ontologies with Lemonade ToolsLexicalizing ontologies with Lemonade Tools
Lexicalizing ontologies with Lemonade ToolsMariano Rico
 
Redes sociales en el ámbito investigador y académico
Redes sociales en el ámbito investigador y académicoRedes sociales en el ámbito investigador y académico
Redes sociales en el ámbito investigador y académicoMariano Rico
 
Plagio vs. Síntesis
Plagio vs. SíntesisPlagio vs. Síntesis
Plagio vs. SíntesisMariano Rico
 
Redes sociales en el ámbito académico y científico
Redes sociales en el ámbito académico y científicoRedes sociales en el ámbito académico y científico
Redes sociales en el ámbito académico y científicoMariano Rico
 
Presencia en la web: redes científicas y difusión de publicaciones
Presencia en la web: redes científicas y difusión de publicacionesPresencia en la web: redes científicas y difusión de publicaciones
Presencia en la web: redes científicas y difusión de publicacionesMariano Rico
 
DBpedia del idioma español
DBpedia del idioma españolDBpedia del idioma español
DBpedia del idioma españolMariano Rico
 
Curso LaTeX. UAM, 2012
Curso LaTeX. UAM, 2012Curso LaTeX. UAM, 2012
Curso LaTeX. UAM, 2012Mariano Rico
 
Curso Herramientas Avanzadas de Apoyo a la Investigación (versión 2011)
Curso Herramientas Avanzadas de Apoyo a la Investigación (versión 2011)Curso Herramientas Avanzadas de Apoyo a la Investigación (versión 2011)
Curso Herramientas Avanzadas de Apoyo a la Investigación (versión 2011)Mariano Rico
 
Introducción a LaTeX 2010
Introducción a LaTeX 2010Introducción a LaTeX 2010
Introducción a LaTeX 2010Mariano Rico
 
Curso HIAI Versión Julio 2009
Curso HIAI Versión Julio 2009Curso HIAI Versión Julio 2009
Curso HIAI Versión Julio 2009Mariano Rico
 
Curso "Herramientas Informáticas de apoyo a la investigación"
Curso "Herramientas Informáticas de apoyo a la investigación"Curso "Herramientas Informáticas de apoyo a la investigación"
Curso "Herramientas Informáticas de apoyo a la investigación"Mariano Rico
 

Mehr von Mariano Rico (12)

Lexicalizing ontologies with Lemonade Tools
Lexicalizing ontologies with Lemonade ToolsLexicalizing ontologies with Lemonade Tools
Lexicalizing ontologies with Lemonade Tools
 
Linked data con R
Linked data con RLinked data con R
Linked data con R
 
Redes sociales en el ámbito investigador y académico
Redes sociales en el ámbito investigador y académicoRedes sociales en el ámbito investigador y académico
Redes sociales en el ámbito investigador y académico
 
Plagio vs. Síntesis
Plagio vs. SíntesisPlagio vs. Síntesis
Plagio vs. Síntesis
 
Redes sociales en el ámbito académico y científico
Redes sociales en el ámbito académico y científicoRedes sociales en el ámbito académico y científico
Redes sociales en el ámbito académico y científico
 
Presencia en la web: redes científicas y difusión de publicaciones
Presencia en la web: redes científicas y difusión de publicacionesPresencia en la web: redes científicas y difusión de publicaciones
Presencia en la web: redes científicas y difusión de publicaciones
 
DBpedia del idioma español
DBpedia del idioma españolDBpedia del idioma español
DBpedia del idioma español
 
Curso LaTeX. UAM, 2012
Curso LaTeX. UAM, 2012Curso LaTeX. UAM, 2012
Curso LaTeX. UAM, 2012
 
Curso Herramientas Avanzadas de Apoyo a la Investigación (versión 2011)
Curso Herramientas Avanzadas de Apoyo a la Investigación (versión 2011)Curso Herramientas Avanzadas de Apoyo a la Investigación (versión 2011)
Curso Herramientas Avanzadas de Apoyo a la Investigación (versión 2011)
 
Introducción a LaTeX 2010
Introducción a LaTeX 2010Introducción a LaTeX 2010
Introducción a LaTeX 2010
 
Curso HIAI Versión Julio 2009
Curso HIAI Versión Julio 2009Curso HIAI Versión Julio 2009
Curso HIAI Versión Julio 2009
 
Curso "Herramientas Informáticas de apoyo a la investigación"
Curso "Herramientas Informáticas de apoyo a la investigación"Curso "Herramientas Informáticas de apoyo a la investigación"
Curso "Herramientas Informáticas de apoyo a la investigación"
 

Kürzlich hochgeladen

Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfMARIAPAULAMAHECHAMOR
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 

Kürzlich hochgeladen (20)

Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdf
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 

Usando Flex en Windows

  • 1. Usando Flex M. Rico, 2011
  • 2. Flex en Windows (1/4) Usa MinGW (http://www.mingw.org/) Descarga e instala mingwgetinst (mingw-get-inst-20110211.exe)
  • 3. Flex en Windows (2/4) Tras la instalación, ejecuta la aplicación MinGW Shell
  • 4. Flex en Windows (3/4) Comprueba que están instalados: gcc flex Vim
  • 5. Flex en Windows (4/4) ¿Dónde están los archivos? Si MinGW está instalado en C:/MinGW El directorio home se encuentra en C:inGWsys.0ome Flex genera un ejecutable Windows (.exe) que se puede ejecutar independientemente de MinGW Como un .exe cualquiera.
  • 6. Usando flex. Ejemplo simple (1/2) simple.flex %%usernameprintf( "%s", "mariano" ); simple.text Esto es una prueba Linea 2. Linea 3 con un username y alguna cosa mas. Ultima linea.
  • 7. Usando flex. Ejemplo simple (2/2) Lee simple.flex y genera el código C del parser en el fichero lex.yy.c Crea el parser compilando el fichero lex.yy.cc y linkando con la librería de flex (-L indica la ubicación de la librería de flex) El parser lee de stdin el texto a parsear, por eso se usa la pipa < Este parser sustituye username por mariano
  • 8. Ejemplo simple2 (1/2) /* Esto es un comentario */ %{ /* Necesario para la funcionatof */ #include <math.h> %} DIGITO [0-9] ID [a-z][a-z0-9]* %% {DIGITO}+ { printf("Entero: %s (%d)", yytext, atoi(yytext)); } {DIGITO}+"."{DIGITO}* { printf("Un decimal: %s (%g)", yytext, atof(yytext)); } {ID} printf("Un identificador: %s", yytext); "/*"[^]*"*/" /* fuera comentarios de una linea */ [ ]+ /* fuera espacios o retornos o tabuladores */ . printf("Caracter raro: %s", yytext); %% main (intargc, char** argv){ ++argv, --argc; /* me salto el nombre del prog */ if (argc > 0){ yyin = fopen(argv[0], "r"); }else{ yyin = stdin; } yylex(); } Sección de definiciones simple2.flex Sección de reglas En lugar de stdin, que lea de un fichero (argumento de flex) Sección de ejecución
  • 9. Ejemplo simple2 (2/2) Genero el código C del parser Genero el parser Contenido del fichero de prueba Resultado de la ejecución
  • 10. Ejemplo email (1/2) email.flex /* Esto es un comentario */ %{ /* Necesario para la funcionatof */ #include <math.h> %} USER [a-z][a-z0-9]* HOST [a-z][a-z0-9]* %% {USER}"@"{HOST} { printf("Un email: %s ", yytext); } [ ]+ /* fuera espacios o retornos o tabs*/ . /*printf("Caracter raro: %s", yytext);*/
  • 11. Ejemplo email (2/2) Genero el código C del parser Genero el parser Contenido del fichero de prueba Resultado de la ejecución
  • 12. Mail mejorado El anterior no consideraba los dominios separados por . Sólo contemplaba algo@algo
  • 13. Contador de palabras y caracteres contador.flex /* Contador tipo wc de Unix */ %{ intchars = 0; intwords = 0; intlines = 0; %} %% [a-zA-Z]+ { words++; chars += strlen(yytext); } { chars++; lines++; } . { chars++; } %% main(intargc, char **argv){ yylex(); printf("%8d%8d%8d", lines, words, chars); }