errores lexicos

Embed Size (px)

Citation preview

  • 8/3/2019 errores lexicos

    1/6

    EXPOSICIN:MANEJO DE ERRORES LEXICOS.

    CATEDRATICO:ING. DAVID SALOMON DE LA O.

    NOMBRE DE LOS ALUMNOS:JUANA MARIA NAVA GUTIERREZ

    NICOLAS PEREZ VELAZCO.

    MATEO DIAZ LOPEZ.

  • 8/3/2019 errores lexicos

    2/6

    MANEJO DE ERRORES LXICO

    ANALISADOR LXICO

    Es la primera fase de la compilacin

    Leer caracteres de entrada y generar como salidaSecuencia de componentes lxicos

    Elimina espacios en blanco

    Elimina comentarios

    Proporciona informacin acerca de errores lxicos

  • 8/3/2019 errores lexicos

    3/6

    COMO MANEJAR ERRORESCOMO MANEJAR ERRORES

    U

    n compilador es un sistema que en la mayora de loscasos tiene que manejar una entrada incorrecta.

    Es indispensable lo siguiente:

    El compilador debe ser capaz de detectar errores en laentrada;

    El compilador debe recuperarse de los errores sin perderdemasiada informacin;

    El compilador debe producir un mensaje de error quepermita al programador encontrar y corregir fcilmente los

    elementos (sintcticamente) incorrectos de su programa.

  • 8/3/2019 errores lexicos

    4/6

    Recuperacin en modo pnico: este tipo de estrategia esla ms comn. Consiste en que cuando se detecta unacadena no reconocible, se siguen leyendo caracteres hastaque se vuelve a detectar un token vlido.

    Borrar un carcter extrao.Insertar un carcter que falta (e.g. reemplazar 2C por 2*C).Reemplazar un carcter incorrecto por otro correcto (e.g.Reemplazar INTEJER por INTEGER si el lugar en dondeaparece el primer lexema no es el indicado para un

    identicador). Intercambiar dos caracteres tokens,adyacentes (e.g. I INTEGER por INTEGER I).

    MANEJO DE ERRORES LEXICOSMANEJO DE ERRORES LEXICOS

  • 8/3/2019 errores lexicos

    5/6

    La recuperacin de errores durante el AL puedeproducir otros en las siguientes fases.

    var numero : integer;

    beginnum?ero:=10;end

  • 8/3/2019 errores lexicos

    6/6

    El compilador podra producir los siguientesmensajes de error:

    ERROR LXICO: carcter no reconocido (?)ERROR SEMNTICO: identicador no declarado (num)ERROR SINTCTICO: falta operador entreidenticadoresERROR SEMNTICO: identicador no declarado (ero)

    Otras veces novar i,j: integer;

    begini:=1;?

    j:=2;end