AnáLisis LéXico

Post on 06-Jul-2015

13.177 views 4 download

Transcript of AnáLisis LéXico

Análisis léxicoAnálisis léxico•El análisis léxico es el proceso de convertir un flujo de caracteres de entrada en un flujo de palabras o elementos.•Los elementos son grupos de caracteres con significancia.•El análisis léxico es la primera etapa de:•La indización automática•El proceso de peticiones.

Teoría de Autómatas y Compiladores

Leopoldo Capa

Análisis léxicoAnálisis léxico

Función principal: generar una lista ordenada de tokens, a partir de los caracteres de entrada.

Esos tokens son usados por el AS para construír el árbol sintáctico.

El AL es un módulo subordinado al correspondiente del AS.

Funciones adicionales del AL.◦ Funciones adicionales del AL◦ Eliminación de caracteres espúreos Asistencia en el informe de errores elaborado por el AS

◦ Cuenta de números de línea con comentarios, macros

◦ Manejo de algunos errores En PASCAL el lexema 0:5 pertenecería al lenguaje y :5 no.

Exceder el número de caracteres máximo para un identificador.

Componentes léxicos, lexemas yComponentes léxicos, lexemas ypatronespatrones LEXEMA PATRÓN

COMPONENTE LÉXICO Precio Secuencia de letras

Identificador 128 Secuencia de dígitos

Constante numérica

= Carácter “=” Asignación

Un patrón es una regla que describe el conjunto de lexemas que puede representar a un conjunto léxico

Los componentes léxicos se tratan como terminales de la gramática del lenguaje fuente

• La devolución de un componente léxico se hace a través de un número entero

Especificación de componentesEspecificación de componentesléxicosléxicos

• Expresiones regulares (patrón).• Cada patrón concuerda con una serie de cadenas.

• Las expresiones regulares dan el nombre al conjunto de cadenas con que concuerdan.

Expresiones regularesExpresiones regulares

• Se construyen a partir de otras expresiones

regulares más simples• Cada expresión regular r, representa unlenguaje L(r)• Letra a u b u c u … u z• Dígito 1 u 2 u 3 u … u 0• Identificador letra(letra u dígito)*

Definiciones regularesDefiniciones regulares

• Dan nombres a las expresiones regulares• Nos permiten referenciarlas

recursivamente• Digito 1|2|3|4|5|6|7|8|9|0• Entero dígito+• Decimal .dígito+ | .dígito+E(+|-| )

dígito+• Real entero (decimal | )

AbreviaturasAbreviaturas

• * cero o más casos• + uno o más casos• [a-zA-Z] mayúsculas y minúsculas• [0-9] dígitos• ? Cero o un caso• Digito [0-9]• Entero digito+• Decimal .digito+exponente?• Exponente (E|e) (+|-)?digito+• Real entero decimal?

• Digito [0-9]• Entero digito+• Decimal .digito+exponente?• Exponente (E|e) (+|-)?digito+• Real entero decimal?