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

JAVA DATABASE CONNECTIVITY (JDBC)
  JAVA DATABASE CONNECTIVITY (JDBC)  JAVA DATABASE CONNECTIVITY (JDBC)
JAVA DATABASE CONNECTIVITY (JDBC)
MILAGRINAMAGUINAPRINCIPE
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del Software
T.I.C
 
Estructura del sistema operativo windows
Estructura del sistema operativo windowsEstructura del sistema operativo windows
Estructura del sistema operativo windowsomfib123
 
Modelado funcional casos de uso
Modelado funcional casos de usoModelado funcional casos de uso
Modelado funcional casos de uso
Robert Rodriguez
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalizacióncintiap25
 
Tipos y ámbitos de grupo (windows server
Tipos y ámbitos de grupo (windows serverTipos y ámbitos de grupo (windows server
Tipos y ámbitos de grupo (windows servercesartg65
 
Flex bison
Flex bisonFlex bison
Flex bison
Carlos Brusil
 
Clasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareClasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de software
ElvisAR
 
Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto de Software
Maricela Ramirez
 
5. Ejercicios normalización
5. Ejercicios normalización5. Ejercicios normalización
5. Ejercicios normalización
Marcelo Herrera
 
Noción de archivo real y virtual
Noción de archivo real y virtual Noción de archivo real y virtual
Noción de archivo real y virtual
Laura Guadalupe Rosado Hernández
 
programacion en lenguaje ensamblador con NASM
programacion en lenguaje ensamblador con NASMprogramacion en lenguaje ensamblador con NASM
programacion en lenguaje ensamblador con NASM
フ乇丂ひ丂
 
Algoritmos y mecanismos de sincronización basados en memoria compartida.
Algoritmos y mecanismos de sincronización  basados en memoria compartida. Algoritmos y mecanismos de sincronización  basados en memoria compartida.
Algoritmos y mecanismos de sincronización basados en memoria compartida.
Reina Del Sahara
 
Requerimientos Funcionales y no Funcionales
Requerimientos Funcionales y no FuncionalesRequerimientos Funcionales y no Funcionales
Requerimientos Funcionales y no Funcionales
sullinsan
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
jmachado614
 
Guardar y buscar en archivo de texto usando GUI con java en Net beans
Guardar y buscar en archivo de texto usando GUI con java en Net beansGuardar y buscar en archivo de texto usando GUI con java en Net beans
Guardar y buscar en archivo de texto usando GUI con java en Net beans
Emerson Garay
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos
Emmanuel Fortuna
 
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
Humano Terricola
 
SO Unidad 2: Mecanismos de comunicación y sincronización de procesos
SO Unidad 2: Mecanismos de comunicación y sincronización de procesosSO Unidad 2: Mecanismos de comunicación y sincronización de procesos
SO Unidad 2: Mecanismos de comunicación y sincronización de procesos
Franklin Parrales Bravo
 

La actualidad más candente (20)

JAVA DATABASE CONNECTIVITY (JDBC)
  JAVA DATABASE CONNECTIVITY (JDBC)  JAVA DATABASE CONNECTIVITY (JDBC)
JAVA DATABASE CONNECTIVITY (JDBC)
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del Software
 
Estructura del sistema operativo windows
Estructura del sistema operativo windowsEstructura del sistema operativo windows
Estructura del sistema operativo windows
 
Modelado funcional casos de uso
Modelado funcional casos de usoModelado funcional casos de uso
Modelado funcional casos de uso
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalización
 
Tipos y ámbitos de grupo (windows server
Tipos y ámbitos de grupo (windows serverTipos y ámbitos de grupo (windows server
Tipos y ámbitos de grupo (windows server
 
Flex bison
Flex bisonFlex bison
Flex bison
 
Clasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareClasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de software
 
Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto de Software
 
5. Ejercicios normalización
5. Ejercicios normalización5. Ejercicios normalización
5. Ejercicios normalización
 
Noción de archivo real y virtual
Noción de archivo real y virtual Noción de archivo real y virtual
Noción de archivo real y virtual
 
programacion en lenguaje ensamblador con NASM
programacion en lenguaje ensamblador con NASMprogramacion en lenguaje ensamblador con NASM
programacion en lenguaje ensamblador con NASM
 
Algoritmos y mecanismos de sincronización basados en memoria compartida.
Algoritmos y mecanismos de sincronización  basados en memoria compartida. Algoritmos y mecanismos de sincronización  basados en memoria compartida.
Algoritmos y mecanismos de sincronización basados en memoria compartida.
 
Requerimientos Funcionales y no Funcionales
Requerimientos Funcionales y no FuncionalesRequerimientos Funcionales y no Funcionales
Requerimientos Funcionales y no Funcionales
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Guardar y buscar en archivo de texto usando GUI con java en Net beans
Guardar y buscar en archivo de texto usando GUI con java en Net beansGuardar y buscar en archivo de texto usando GUI con java en Net beans
Guardar y buscar en archivo de texto usando GUI con java en Net beans
 
Estructura de Datos
Estructura de DatosEstructura de Datos
Estructura de Datos
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos
 
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
 
SO Unidad 2: Mecanismos de comunicación y sincronización de procesos
SO Unidad 2: Mecanismos de comunicación y sincronización de procesosSO Unidad 2: Mecanismos de comunicación y sincronización de procesos
SO Unidad 2: Mecanismos de comunicación y sincronización de procesos
 

Destacado

Instalacion de Flex, Bison y Mingw
Instalacion de Flex, Bison y MingwInstalacion de Flex, Bison y Mingw
Instalacion de Flex, Bison y Mingw
Bayo Chicaiza
 
Tutorial Flex y Bison
Tutorial Flex y BisonTutorial Flex y Bison
Tutorial Flex y Bison
Shirlid .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
 
Administrador de Tabla de Símbolos
Administrador de Tabla de SímbolosAdministrador de Tabla de Símbolos
Administrador de Tabla de Símbolos
Jonathan Muñoz Aleman
 
INTRODUCCION A FLEX Y BISON
INTRODUCCION A FLEX Y BISONINTRODUCCION A FLEX Y BISON
INTRODUCCION A FLEX Y BISON
Guissela Guerrero
 

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

CRUD básico con Symfony
CRUD básico con SymfonyCRUD básico con Symfony
CRUD básico con Symfony
Symfony Zaragoza
 
procesos
procesosprocesos
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasos
Soni BM
 
linux comando
linux comandolinux comando
tutorial0.pdf
tutorial0.pdftutorial0.pdf
tutorial0.pdf
JvAlvarado
 
Comando de linux
Comando de linuxComando de linux
Comando de linux
Ashley Stronghold Witwicky
 
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
karlosp316
 
Comandos basicos linux
Comandos basicos linuxComandos basicos linux
Comandos basicos linuxvictdiazm
 
Realidad Aumentada 01 documentacion tapir
Realidad Aumentada 01 documentacion tapirRealidad Aumentada 01 documentacion tapir
Realidad Aumentada 01 documentacion tapir
Agustín Hv
 
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
Free Lancer
 
Estandar documentacion xml
Estandar documentacion xmlEstandar documentacion xml
Estandar documentacion xml
Tohui
 
Manual Bàsic PS Tools
Manual Bàsic PS ToolsManual Bàsic PS Tools
Manual Bàsic PS Tools
preverisk Group
 
Estructura de un programa en c
Estructura de un programa en cEstructura de un programa en c
Estructura de un programa en cMary Guaman
 

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
 
tutorial0.pdf
tutorial0.pdftutorial0.pdf
tutorial0.pdf
 
Comando de linux
Comando de linuxComando de linux
Comando de linux
 
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
 
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 Tools
Mariano Rico
 
Linked data con R
Linked data con RLinked data con R
Linked data con R
Mariano 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émico
Mariano Rico
 
Plagio vs. Síntesis
Plagio vs. SíntesisPlagio vs. Síntesis
Plagio vs. Síntesis
Mariano 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ífico
Mariano 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 publicaciones
Mariano Rico
 
DBpedia del idioma español
DBpedia del idioma españolDBpedia del idioma español
DBpedia del idioma español
Mariano Rico
 
Curso LaTeX. UAM, 2012
Curso LaTeX. UAM, 2012Curso LaTeX. UAM, 2012
Curso LaTeX. UAM, 2012
Mariano 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 2010
Mariano Rico
 
Curso HIAI Versión Julio 2009
Curso HIAI Versión Julio 2009Curso HIAI Versión Julio 2009
Curso HIAI Versión Julio 2009
Mariano 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

c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
Martín Ramírez
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
jmorales40
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
Ruben53283
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
20minutos
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
DivinoNioJess885
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
Demetrio Ccesa Rayme
 
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptxCLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
LilianaRivera778668
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
Distea V región
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
JAVIER SOLIS NOYOLA
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Demetrio Ccesa Rayme
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Txema Gs
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
Alejandrogarciapanta
 
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Monseespinoza6
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
YasneidyGonzalez
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
Edurne Navarro Bueno
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
Profes de Relideleón Apellidos
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
LorenaCovarrubias12
 
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
sandradianelly
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
cintiat3400
 
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
rosannatasaycoyactay
 

Último (20)

c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
 
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de MadridHorarios Exámenes EVAU Ordinaria 2024 de Madrid
Horarios Exámenes EVAU Ordinaria 2024 de Madrid
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
 
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptxCLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
 
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdfINFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
INFORME MINEDU DEL PRIMER SIMULACRO 2024.pdf
 
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
 
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
 
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
 

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