Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cap3 ICI445
Cap3 ICI445
Marzo, 2010
1/10
1. Introduccin
El analisis lxico corresponde a la primera fase de un compilador. Es la encargada de recibir el programa fuente y reconocer los tokens.
Programa Fuente
Analizador Lxico Tokens Analizador Sintctico Analizador Semntico Generador Cdigo Intermedio Optimizador Cdigo Intermedio Generador Cdigo Objeto Programa Objeto
2/10
Analizador Lxico
Nuevo Token?
Analizador Sintctico
Deteccin de errores lxicos Guardar informacin de los tokens, necesaria para el proceso de compilacin.
Nota El analizador lxico tambin se conoce como scanner, lexer o tokenizer.
3/10
Autmatas nitos...
a..z, A..Z, , , 0..9 q1 a..z, A..Z q2 ( ) : q5 = q6 q3
0..9
q0
q4
4/10
= = = = = = = = =
; ; ; ; ; ; ; ; ; ; ;
= "true" = "false"
5/10
Dgitos
DIGIT : 0..9;
Identicadores
IDENT options {testLiterals=true;} // Comprobar palabras reservadas : (LETTER|_) (LETTER|DIGIT|_)* ;
6/10
Parntesis
LEFT_PAREN RIGHT_PAREN LEFT_BRACE RIGHT_BRACE LEFT_BRACKET : : : : : ( ) { } [ ; ; ; ; ;
RIGHT_BRACKET //opcin para mensajes de error options { paraphrase="a right bracket (])"; } : ] ;
7/10
Operadores Relacionales
EQUAL NOT_EQUAL GR_EQUAL LE_EQUAL ... : : : : == != >= <= ; ; ; ;
8/10
Blancos
WS : (( | \t | \f) | ( \n | \r ) { newline(); } ) { _ttype = Token.SKIP; } ;
9/10
5. Ejercicios
Implemente el analizador lxico del lenguaje MiLe (Micro Lenguaje) Tokens
var begin end numeric string if else for in or and
Nmeros e identicadores
number ::= (digit)+ ("." (digit)+)? ident ::= (letter|_) (letter|digit|_)*
10/10