Análisis Léxico Arboles de Análisis Sintáctico Recortados Leonel Morales Díaz [email_address] Copyright 2008 by Leonel Morales Díaz – Ingeniería Simple. Derechos reservados Disponible en: http://www.ingenieriasimple.com/compiladores
Analizar Léxico Arbol de Análisis Sintáctico x++ Programa Instrucción Variable x ++ ¿Variable?
Producción de variable Variable  ->  Inicial   Resto Inicial  -> _ |  Letra Resto  ->  Letra   Resto  |  Especial   Resto Número   Resto  | nil Letra  -> [a..z] Especial  -> _ | -
Analizador Léxico Transformar no terminal en terminal Programa  ->  Instrucción  | {  Rutina  } Rutina  ->  Instrucción  ;  Instrucción  | Instrucción  ;  Rutina Instrucción  -> nil |  Variable  ++ |  Variable  -- | While  Prueba  do  Programa Prueba  ->  Variable  <> 0 |  Variable  = 0 Variable  -> var (terminal)
Analizador Léxico Variable  -> var (terminal) Compone lexema “ _ammm-8ab” Lo transforma en var El árbol sintáctico no crece más
Funciones Analizador Léxico Eliminar espacios Eliminar comentarios Constantes Reconoce identificadores Reconoce palabras clave Palabras clave no pueden ser identificadores
Ejemplos Cuenta =  Cuenta+  Incremento ; id = id + id ; id=id+id; If a >= b then If id mayorig b then
Tabla de símbolos Registrar todo los id Funciones: Inserta(s,t) s es la cadena (Cuenta = ...) t es el componente léxico (id) Busca(s) Verdadero si s existe en la tabla Falso si s no existe
Tabla de símbolos Manejo de palabras reservadas char while; int for; Dos opciones Meter todas las palabras clave en tabla Hacer que las funciones las reconozcan
Palabras reservadas Bien definidas desde el inicio

Analisis Lexico Ii

  • 1.
    Análisis Léxico Arbolesde Análisis Sintáctico Recortados Leonel Morales Díaz [email_address] Copyright 2008 by Leonel Morales Díaz – Ingeniería Simple. Derechos reservados Disponible en: http://www.ingenieriasimple.com/compiladores
  • 2.
    Analizar Léxico Arbolde Análisis Sintáctico x++ Programa Instrucción Variable x ++ ¿Variable?
  • 3.
    Producción de variableVariable -> Inicial Resto Inicial -> _ | Letra Resto -> Letra Resto | Especial Resto Número Resto | nil Letra -> [a..z] Especial -> _ | -
  • 4.
    Analizador Léxico Transformarno terminal en terminal Programa -> Instrucción | { Rutina } Rutina -> Instrucción ; Instrucción | Instrucción ; Rutina Instrucción -> nil | Variable ++ | Variable -- | While Prueba do Programa Prueba -> Variable <> 0 | Variable = 0 Variable -> var (terminal)
  • 5.
    Analizador Léxico Variable -> var (terminal) Compone lexema “ _ammm-8ab” Lo transforma en var El árbol sintáctico no crece más
  • 6.
    Funciones Analizador LéxicoEliminar espacios Eliminar comentarios Constantes Reconoce identificadores Reconoce palabras clave Palabras clave no pueden ser identificadores
  • 7.
    Ejemplos Cuenta = Cuenta+ Incremento ; id = id + id ; id=id+id; If a >= b then If id mayorig b then
  • 8.
    Tabla de símbolosRegistrar todo los id Funciones: Inserta(s,t) s es la cadena (Cuenta = ...) t es el componente léxico (id) Busca(s) Verdadero si s existe en la tabla Falso si s no existe
  • 9.
    Tabla de símbolosManejo de palabras reservadas char while; int for; Dos opciones Meter todas las palabras clave en tabla Hacer que las funciones las reconozcan
  • 10.
    Palabras reservadas Biendefinidas desde el inicio