Download 5.2 Componentes Lexicos, Patrones y Lexemas...
Description
UNIDAD V
ITCDJ
5.2 COMPONENTES LÉXICOS, PATRONES Y LEXEMAS En la fase de análisis, los términos componentes léxicos (token), patrón y lexema se emplean con significados específicos. Un analizador léxico, inicialmente lee los lexemas y le asigna un significado propio. • Componente léxico es la secuencia lógica y coherente de caracteres relativo a una categoría: identificador, palabra reservada, literales (cadena/numérica), operador o carácter de puntuación, además de que un componente léxico puede tener uno o varios lexemas. • Patrón es una regla que genera la secuencia de caracteres que puede representar a un determinado componente léxico (expresión regular). • Lexema es una cadena de caracteres que concuerda con un patrón que describe un componente léxico (valor de cadena). Ejemplo de una cadena de código: const pi = 3.1416;
El analizador léxico recoge información sobre los componentes léxicos en sus atributos asociados. Los tokens influyen en las decisiones del análisis sintáctico, y los atributos, en la traducción de los tokens. En la práctica los componentes léxicos suelen tener solo un atributo. Para efectos de diagnostico, puede considerarse tanto el lexema para un identificador como el numero de línea en el que se encontró por primera vez. Esta información puede ser almacenada en la tabla de símbolos para el identificador (estructura de datos).
LENGUAJES Y AUTOMATAS I
1
UNIDAD V
ITCDJ
Para la cadena E=M*C**2 de ejemplo, los componentes léxicos y los valores de atributo asociado son: Tome en cuenta que ciertas parejas no necesitan un valor de atributo. Los atributos relacionados con ese token deberán ser conservados y transferidos a alguna estructura de datos para que sean empleados en las siguientes etapas del análisis
LENGUAJES Y AUTOMATAS I
2
UNIDAD V
Patrón: es una expresión regular.
Token
ITCDJ
: es la categoría léxica asociada a un patrón. Cada
token
se
convierte en un número o código identificador único. En algunos casos, cada número tiene asociada información adicional necesaria para las fases posteriores de la etapa de análisis. El concepto de
token
coincide
directamente con el concepto de terminal desde el punto de vista de la gramática utilizada por el analizador sintáctico.
Lexema: Es cada secuencia de caracteres concreta que encaja con un patrón. P.ej: “8", “23" y “50" son algunos lexemas que encajan con el patrón (‘0'|’1'|’2'| ... |’9')+. El número de lexemas que puede encajar con un patrón puede ser finito o infinito, p.ej. en el patrón ‘W’‘H’‘I’‘L’‘E’ sólo encaja el lexema “WHILE”.
Una vez detectado que un grupo de caracteres coincide con un patrón, se considera que se ha detectado un lexema. A continuación se le asocia el número de su categoría léxica, y dicho número o
token
se le pasa al sintáctico junto con
información adicional, si fuera necesario. Por ejemplo, si se necesita construir un analizador léxico que reconozca los números enteros, los números reales y los identificadores de usuario en minúsculas, se puede proponer una estructura como:
Thank you for interesting in our services. We are a non-profit group that run this website to share documents. We need your help to maintenance this website.