• Asignatura: Matemáticas
  • Autor: lopezcruzalicia7
  • hace 6 años

Monartio ocond
Codiso lex​

Respuestas

Respuesta dada por: sebastianguardalesxd
0

Respuesta:

no entender :v

Explicación paso a paso:

Respuesta dada por: Anónimo
0

Respuesta:

El lex es un generador de programas diseñado para el proceso léxico de

cadenas de caracteres de input. El programa acepta una especificación, orientada

a resolver un problema de alto nivel para comparar literales de caracteres, y

produce un programa C que reconoce expresiones regulares. Estas expresiones

las especifica el usuario en las especificaciones fuente que se le dan al lex. El

código lex reconoce estas expresiones en una cadena de input y divide este input

en cadenas de caracteres que coinciden con las expresiones. En los bordes entre

los literales, se ejecutan las secciones de programas proporcionados por el

usuario. El fichero fuente lex asocia las expresiones regulares y los fragmentos

de programas. Puesto que cada expresión aparece en el input del programa

escrito por el lex, se ejecuta el fragmento correspondiente.

El usuario proporciona el código adicional necesario para completar estas

funciones, incluyendo código escrito por otros generadores. El programa que

reconoce las expresiones se genera en forma de fragmentos de programa C del

usuario, El lex no es un lenguaje completo sino un generador que representa una

cualidad de un nuevo lenguaje que se añade al leguaje de programación C.

El lex convierte las expresiones y acciones del usuario (llamadas fuente

en este capítulo) en un programa C llamado yylex. El programa yylex reconoce

expresiones en un flujo (llamado input en este capítulo) y lleva a cabo las

acciones especificadas para cada expresión a medida que se va detectando.

Considere un programa para borrar del input todos los espacios en blanco

y todos los tabuladores de los extremos de las líneas. Las líneas siguientes:

%%

[b\ t]+ $ ;

es todo lo que se requiere. El programa contiene un delimitado %% para marcar

el principio de las órdenes, y una orden. Esta orden contiene una expresión que

coincide con una o más apariciones de los caracteres espacio en blanco o

tabulador (escrito \ t para que se vea con mayor claridad, de acuerdo con la

convención del lenguaje C) justo antes del final de una línea. Los corchetes

indican la clase del carácter compuesto de espacios en blanco y tabuladores; el +

indica uno o más del item anterior; y el signo de dólar ($) indica el final de la

línea. No se especifica ninguna acción, por lo tanto el programa generado por el

lex ignorará estos caracteres. Todo lo demás se copiará . Para cambiar cualquier

cadena de caracteres en blanco o tabuladores que queden en un solo espacio en

blanco, añada otra orden:

%%

[b\ t]+$ ;

[b\ t] + printf (“ ”);

Explicación paso a paso:

Preguntas similares