Você está na página 1de 3

c c  




 

El proceso del análisis léxico es leer caracteres de código fuente y los


transforma en unidades lógicas estas son llamadas   Los Tokens
pueden formar palabras a partir de caracteres en una oración en un lenguaje
natural como en inglé s o cualquier otro lenguaje , este debe indicar que
significa cada una de las palabras. Los tokens son también unidades lógicas
que pueden definirse como un tipo enumerado. 

Ejemplo de Tokens enumerador:

 !"#
$%&'&&()&)(&*& +
, -


Las categorías del Tokens.

1:./ 0 # % y '- que representan cadenas de


caracteres ³if´ y ³then´.
2: 1#/  #  ,#, (2y ( estos se
representan con los caracteres ³+´ y ³-´.
3:   #3, , ejemplo; )( e * que representan
números e identificadores.

Los tokens se deben de distinguir claramente de las cadenas de caracteres y


de las palabras reservadas para esto se debe denomi nar su 0 o
su #

Cualquier valor asociado a un token se denomina ,/",del token, y el valor de


cadena es un ejemplo de un atributo. En realidad el símbolo del token mismo
se puede ver simplemente como otro atributo, mientras que el tok en se puede
visualizar como la colección de todos sus atributos.

Un analizador léxico necesita calcular al menos tantos atributos de un token


como sean necesarios para permitir el procesamiento siguiente , un analizador
léxico podría utilizar el valor de ca dena de un identificador para introducirlo a la
tabla de símbolos, o podría pasarlo para introducirlo en una etapa posterior.
El analizador léxico posiblemente tendrá que calcular varios atributos para cada
token, a menudo es útil recolectar todos los atributos en un solo tipo de datos
estructurados, al que podríamos denominar como 4,  , . Un
registro asi se podría declarar en C como:

typedef struct

TokenType tokenval;

char * stringval;

int numval;

TokenRecord;

O posiblemente como una unión:

typedef struct

tokenType tokenval;

union

char * stringval;

int numval;

attribute;

TokenRecord;

Un arreglo más común es que el analizador léxico solamente devuelva el valor


del token y coloque los otros atributos en variables donde se pueda tener
acceso a ellos por otras partes del compilador. El analizador léxico funcionara
bajo el control de analizador sintáctico, devolviendo el siguiente token simple
desde la entrada bajo demanda mediante una función que tendrá un declarcion
similar a declaración en el lenguaje C.
La función 4, declarada de esta manera devolverá, cuando se le llame,
el siguiente token la entrada, y además calculará atributos adicionales, como el
valor de cadena del token.

Como ejemplo del funcionamiento del getT oken considere lasiguiente línea de
código fuente en C:

a [ index ] = 4 + 2

Suponga que esta línea de código se almacena en un buffer de entrada como


sigue, con el siguiente carácter de entrada indicado por la flecha:

YY YY YY Y Y Y Y Y Y Y Y YY Y YY Y YY
Y YY Y YY YY YY YY YY

Una llamada a getToken necesitara ahora saltarse los siguientes cuatro


espacios en blanco, reconocer la cadena ³a´ compuesta del carácter único a
como el token siguiente, y devolver el valor del token ID como el token
siguiente, dejando el buffer de entrada como se aprecia a continuación:

YY YY YY Y Y Y Y Y Y Y Y YY Y YY Y YY
Y YY Y YY YY YY YY YY

De esta manera, una llamada posterior a getToken comenzara de nuevo el


proceso de reconocimiento con el carácter de corchete izquierdo

Você também pode gostar