SlideShare una empresa de Scribd logo
1 de 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/

Más contenido relacionado

La actualidad más candente

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
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de ContextoBrayhan Acosta
 
DiseñO De Compilador
DiseñO De CompiladorDiseñO De Compilador
DiseñO De CompiladorBigbossH
 
Administración de Memoria en UNIX
Administración de Memoria en UNIXAdministración de Memoria en UNIX
Administración de Memoria en UNIXNatalia Ludeña
 
Interrupciones bios y irq
Interrupciones bios y irqInterrupciones bios y irq
Interrupciones bios y irqadolfoahumada94
 
Automatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxicoAutomatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxicoGermania Rodriguez
 
Lenguajes libre de contexto
Lenguajes libre de contextoLenguajes libre de contexto
Lenguajes libre de contextoVerónica Es'Loo
 
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
 
Protocolos de enrutamiento
Protocolos de enrutamientoProtocolos de enrutamiento
Protocolos de enrutamientoJOHN BONILLA
 
Compiladores - Flex y Bison
Compiladores - Flex y BisonCompiladores - Flex y Bison
Compiladores - Flex y BisonSteven Tabango
 
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO Guillermo Iván Prisco Pérez
 
RED NEURONAL Backpropagation
RED NEURONAL BackpropagationRED NEURONAL Backpropagation
RED NEURONAL BackpropagationESCOM
 
Manual Instalación JLex & CUP
Manual Instalación JLex & CUPManual Instalación JLex & CUP
Manual Instalación JLex & CUPrubeniii
 
Modelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosModelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosLuis Dario Gomez
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 

La actualidad más candente (20)

Flex bison
Flex bisonFlex bison
Flex bison
 
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
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de Contexto
 
DiseñO De Compilador
DiseñO De CompiladorDiseñO De Compilador
DiseñO De Compilador
 
Administración de Memoria en UNIX
Administración de Memoria en UNIXAdministración de Memoria en UNIX
Administración de Memoria en UNIX
 
Ensamblador y lenguaje c
Ensamblador y lenguaje cEnsamblador y lenguaje c
Ensamblador y lenguaje c
 
Interrupciones bios y irq
Interrupciones bios y irqInterrupciones bios y irq
Interrupciones bios y irq
 
Automatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxicoAutomatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxico
 
Lenguajes libre de contexto
Lenguajes libre de contextoLenguajes libre de contexto
Lenguajes libre de contexto
 
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
 
Análisis semántico
Análisis semánticoAnálisis semántico
Análisis semántico
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
Control de Flujo [Telecomunicaciones]
Control de Flujo [Telecomunicaciones]Control de Flujo [Telecomunicaciones]
Control de Flujo [Telecomunicaciones]
 
Protocolos de enrutamiento
Protocolos de enrutamientoProtocolos de enrutamiento
Protocolos de enrutamiento
 
Compiladores - Flex y Bison
Compiladores - Flex y BisonCompiladores - Flex y Bison
Compiladores - Flex y Bison
 
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
LENGUAJES LIBRES DE CONTEXTO Y GRAMATICA LIBRES DE CONTEXTO
 
RED NEURONAL Backpropagation
RED NEURONAL BackpropagationRED NEURONAL Backpropagation
RED NEURONAL Backpropagation
 
Manual Instalación JLex & CUP
Manual Instalación JLex & CUPManual Instalación JLex & CUP
Manual Instalación JLex & CUP
 
Modelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosModelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativos
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 

Destacado

Instalacion de Flex, Bison y Mingw
Instalacion de Flex, Bison y MingwInstalacion de Flex, Bison y Mingw
Instalacion de Flex, Bison y MingwBayo Chicaiza
 
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
 

Destacado (8)

Instalacion de Flex, Bison y Mingw
Instalacion de Flex, Bison y MingwInstalacion de Flex, Bison y Mingw
Instalacion de Flex, Bison y Mingw
 
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
 

Similar a Usando flex en Windows

Similar a 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 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
 
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
 
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
 

Más de 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
 

Más de 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"
 

Último

Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfAlfaresbilingual
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024IES Vicent Andres Estelles
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfUPTAIDELTACHIRA
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptxRigoTito
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxlclcarmen
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONALMiNeyi1
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 

Último (20)

Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .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); }