Escolar Documentos
Profissional Documentos
Cultura Documentos
SNEST
DGEST
PROGRAMACION DE SISTEMAS
ANALISIS LEXICO
P R E S E N T A: ARTURO AVILA ZAMORA HUGO RODRIGUEZ DESALES JULIO CESAR CARBAJAL GARCIA
Nombre: HOJUAR
Objetivo Desarrollar un compilador que sea capaz de leer funciones similares a las de java como el for, if else, una sola vez o de forma anidada. Alfabeto
Nombre Nmeros Abecedario minsculas Abecedario maysculas Parntesis abre Punto y coma Parntesis cierra Llave abre Llave cierra Asignacin Mayor que Menor que Arroba Mas Menos Por Entre Interrogacin Blanco Enter Tabulador Punto
Tabla de Tokens fijos Token INICIA FINALIZA SI ENTONCES MIENTRAS ( ; ) { } @ * / METODO VACIO RETORNA IMPRIME ENTERO DECIMAL Nombre Inicio Fin Si Entonces Mientras Parntesis abre Punto y coma Parntesis cierra Llave abre Llave cierra Arroba Por Entre Mtodo Sin retorno Retorna Imprime Tipo de dato entero Tipo de dato decimal Numero 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Tabla de Tokens variables Token Variable Entero Decimal O.R. (<, >, <>, <=, >=) = Incremento(++) Decremento(--) O.A. (+ - ) Comentario Nombre Variable Entero Decimal Operadores relacionales Asignacin Incremento Decremento Operadores aritmticos Comentario Numero 20 21 22 23 24 25 26 27 28
Tabla de Separadores Lexema \b \n \t ( Nombre Blanco Enter Tabulador Parntesis abre Numero
; ) { } @ * / < > + =
Punto y coma Parntesis cierra Llave abre Llave cierra Arroba Por Entre Menor Mayo Mas Menos Asignacin
7 8 9 10 11 12 13 21 25 24
Tipo de Datos Tipo ENTERO DECIMAL Descripcin Tipo de dato Entero Tipo de dato Decimal No. Token 18 19
Tabla de palabras reservadas Nombre INICIA FINALIZA SI ENTONCES MIENTRAS METODO VACIO RETORNA IMPRIME ENTERO DECIMAL Descripcin Inicio Fin Si Entonces Mientras Mtodo Sin retorno Retorna Imprime Entero Flotante
Tabla de errores Error Carcter Invalido Variable Invalida Entero Invalido Decimal invalido Comentario invalido Numero error 100 101 102 103 104
Autmatas
Tabla de Autmatas
l 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 14 2 2
09 4 3 3 4 6 6
> 7
< 9
= 10
+ 11
13
? 15
Token
Error
Estado Aceptacin
8 8 8
12
14
Carcter Invalido Variable Variable Invalida Variable Variable Invalida Entero Entero Invalido Decimal Invalido Decimal Decimal Invalido O.R. O.R. Invalido O.R. O.R. Invalido O.R. O.R. Invalido Asignacin Asignacin Invalida O.A. O.A. Invalida Incremento Incremento Invalido O.A. O.A. Invalida Decremento Decremento Invalido Comentario Comentario Invalido
1 1 1
1 1 1 1 1 1 1 1 1 1
inicia entero 345678987654XXX?XXXXX $$$$$$ ...999 45..7 AAAAA%%%% AAAA...%% ?DDDDDDD decimal 45678.90 finaliza entre
5678965 546.789 si(entero=0; entero<5; entero++){ r=r++; t==r+3/4*s; } termina <=>><><> hfsdkjhdsfkjdfs finaliza
ERROR
RENGLON 1 2 2 3 3 4 4 4 5 6 6 7 8 9 10 11 11 11 11 11 11 11 11 11 11 11 11 11
345678987654XXX?XXXXX 102 $$$$$$ ...999 45..7 AAAAA%%%% AAAA...%% ?DDDDDDD decimal 45678.90 Finaliza Entre 5678965 546.789 Si ( entero = 0 ; entero < 5 ; entero ++ ) 100 100 103 101 101 28 19 22 2 20 21 22 3 6 18 24 21 7 18 23 21 7 18 25 8 COMENTARIO TIPO DECIMAL DECIMAL FINALIZA VARIABLE ENTERO DECIMAL SI PARENTESIS QUE ABRE TIPO ENTERO ASIGNACION ENTERO PUNTO Y COMA TIPO ENTERO O_R ENTERO PUNTO Y COMA TIPO ENTERO INCREMENTO PARENTESIS
ENTERO INVALIDO CARACTER INVALIDO CARACTER INVALIDO DECIMAL INVALIDO VARIABLE INVALIDA VARIABLE INVALIDA
9 20 24 20 25 7 20 24 24 20 27 21 13 21 12 20 7 10 20 23 23 23 23 23 20 2
QUE CIERRA LLAVE QUE ABRE VARIABLE ASIGNACION VARIABLE INCREMENTO PUNTO Y COMA VARIABLE ASIGNACION ASIGNACION VARIABLE O_A ENTERO ENTRE ENTERO POR(O_A) VARIABLE PUNTO Y COMA LLAVE QUE CIERRA VARIABLE O_R O_R O_R O_R O_R VARIABLE FINALIZA
11 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 13 14 15 16 16 16 16 16 17 18