|
P R O Y E C T O
ANALIZADOR LEXICO
|
|
Que es un analizador léxico Se encarga de buscar los componentes
léxicos o palabras que componen el programa fuente, según unas reglas o
patrones. La entrada del analizador léxico
podemos definirla como una secuencia de caracteres.
gramática (N, T, P, S) N ::= Símbolos no terminales. T ::= Símbolos terminales P ::= Reglas de producción S ::= Axioma inicial El analizador léxico tiene que dividir
la secuencia de caracteres en palabras con significado propio y después
convertirlo a una secuencia de terminales desde el punto de vista del
analizador sintáctico, que es la entrada del analizador sintáctico. El analizador léxico reconoce las
palabras en función de una gramática regular de manera que sus NO TERMINALES
se convierten en los elementos de entrada de fases posteriores. En LEX, por
ejemplo, esta gramática se expresa mediante expresiones regulares.
Figura 2
Interacción de un analizador léxico con el analizador
sintáctico Funciones del analizador léxico El analizador léxico es la primera
fase de un compilador. Su principal función consiste en leer los caracteres
de entrada y elaborar como salida una secuencia de componentes léxicos que
utiliza el analizador sintáctico para hacer el análisis. Esta interacción,
suele aplicarse convirtiendo al analizador léxico en una subrutina o
corrutina del analizador sintáctico. Recibida la orden "Dame el siguiente
componente léxico"del analizador sintáctico, el analizador léxico lee los
caracteres de entrada hasta que pueda identificar el siguiente componente
léxico. Otras funciones que realiza : • Eliminar los comentarios del
programa. • Eliminar espacios en blanco,
tabuladores, retorno de carro, etc, y en general, todo aquello que carezca
de significado según la sintaxis del lenguaje. • Reconocer los identificadores de
usuario, números, palabras reservadas del lenguaje, ..., y tratarlos
correctamente con respecto a la tabla de símbolos (solo en los casos que
debe de tratar con la tabla de símbolos). • Llevar la cuenta del número de línea
por la que va leyendo, por si se produce algún error, dar información sobre
donde se ha producido. • Avisar de errores léxicos. Por
ejemplo, si @ no pertenece al lenguaje, avisar de un error. • Puede hacer funciones de
preprocesador.
|