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?

Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.LuiS YmAY
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...Hugo Alberto Rivera Diaz
 
Programación del lado del cliente
Programación del lado del clienteProgramación del lado del cliente
Programación del lado del clienteGabriel Mondragón
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingJonathan Bastidas
 
Arquitectura de la memoria flash
Arquitectura de la memoria flashArquitectura de la memoria flash
Arquitectura de la memoria flashYESENIA CETINA
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteJosé Antonio Sandoval Acosta
 
Componentes de eclipse
Componentes de eclipseComponentes de eclipse
Componentes de eclipsejaquiiMc
 
Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionIrving Che
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasJosé Antonio Sandoval Acosta
 
Automatas y compiladores clase1
Automatas y compiladores clase1Automatas y compiladores clase1
Automatas y compiladores clase1Germania Rodriguez
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasYESENIA CETINA
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARESAnel Sosa
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionjorge severino
 
automatas finitos
 automatas finitos automatas finitos
automatas finitosAnel Sosa
 

Was ist angesagt? (20)

Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.
 
Diagrama de Flujo de un Sistema Operativo
Diagrama de Flujo de un Sistema OperativoDiagrama de Flujo de un Sistema Operativo
Diagrama de Flujo de un Sistema Operativo
 
Compiladores, Analisis Lexico
Compiladores, Analisis LexicoCompiladores, Analisis Lexico
Compiladores, Analisis Lexico
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
 
Clasificacion de los sistemas operativos
Clasificacion de los sistemas operativosClasificacion de los sistemas operativos
Clasificacion de los sistemas operativos
 
Programación del lado del cliente
Programación del lado del clienteProgramación del lado del cliente
Programación del lado del cliente
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turing
 
Arquitectura de la memoria flash
Arquitectura de la memoria flashArquitectura de la memoria flash
Arquitectura de la memoria flash
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
 
Componentes de eclipse
Componentes de eclipseComponentes de eclipse
Componentes de eclipse
 
Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacion
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
 
Automatas y compiladores clase1
Automatas y compiladores clase1Automatas y compiladores clase1
Automatas y compiladores clase1
 
Calculadora
CalculadoraCalculadora
Calculadora
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARES
 
10 distribuciones linux
10 distribuciones linux10 distribuciones linux
10 distribuciones linux
 
Tipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacionTipos de gramatica y arboles de derivacion
Tipos de gramatica y arboles de derivacion
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 
Pruebas unitarias
Pruebas unitariasPruebas unitarias
Pruebas unitarias
 

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

ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.karlazoegarciagarcia
 
Abregú, Podestá. Directores.Líderes en Acción.
Abregú, Podestá. Directores.Líderes en Acción.Abregú, Podestá. Directores.Líderes en Acción.
Abregú, Podestá. Directores.Líderes en Acción.profandrearivero
 
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...GIANCARLOORDINOLAORD
 
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsxJuanpm27
 
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOCUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOEveliaHernandez8
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxNataliaGonzalez619348
 
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfBITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfsolidalilaalvaradoro
 
PRO FOLLETO CRESE -CENTROS DE INTERES.pdf
PRO FOLLETO CRESE -CENTROS DE INTERES.pdfPRO FOLLETO CRESE -CENTROS DE INTERES.pdf
PRO FOLLETO CRESE -CENTROS DE INTERES.pdfJulio Lozano
 
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2Eliseo Delgado
 
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...MagalyDacostaPea
 
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docxMagalyDacostaPea
 
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJOLeninCariMogrovejo
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...YobanaZevallosSantil1
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docxMagalyDacostaPea
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Carol Andrea Eraso Guerrero
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajeKattyMoran3
 
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)jlorentemartos
 
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfFichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfssuser50d1252
 

Kürzlich hochgeladen (20)

Sesión ¿Amor o egoísmo? Esa es la cuestión
Sesión  ¿Amor o egoísmo? Esa es la cuestiónSesión  ¿Amor o egoísmo? Esa es la cuestión
Sesión ¿Amor o egoísmo? Esa es la cuestión
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
 
Abregú, Podestá. Directores.Líderes en Acción.
Abregú, Podestá. Directores.Líderes en Acción.Abregú, Podestá. Directores.Líderes en Acción.
Abregú, Podestá. Directores.Líderes en Acción.
 
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
SESIÓN DE APRENDIZAJE Leemos un texto para identificar los sinónimos y los an...
 
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADOCUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
CUADERNILLO DE EJERCICIOS PARA EL TERCER TRIMESTRE, SEXTO GRADO
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
 
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfBITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
 
PRO FOLLETO CRESE -CENTROS DE INTERES.pdf
PRO FOLLETO CRESE -CENTROS DE INTERES.pdfPRO FOLLETO CRESE -CENTROS DE INTERES.pdf
PRO FOLLETO CRESE -CENTROS DE INTERES.pdf
 
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
 
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
 
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
 
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguaje
 
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
TEMA 13. LOS GOBIERNOS DEMOCRÁTICOS (1982-2018)
 
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfFichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
 

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); }