next up previous contents
Next: A.1.2 Un ejemplo sencillo Up: 5.2 Las reglas léxicas Previous: 5.2.2 Las condiciones de

5.2.3 Implementación de las reglas léxicas

El procedimiento mediante el cual se pueden implementar en Flex las reglas léxicas es el siguiente:

  1. Utilizar reglas sin condición de arranque para reconocer los lexemas, los cuales constituirán los patrones de tales reglas.
  2. Definir una condición de arranque para cada grupo de reglas léxicas. Utilizar los sufijos como patrones de las reglas incluidas en esa condición.
  3. En las acciones que se disparan por el reconocimiento de un lexema, incluir un BEGIN a la condición de arranque que represente al grupo en el cual se crean las palabras derivadas de ese lexema.
  4. En las acciones de las reglas con condiciones de arranque se puede tomar una de las siguientes alternativas:
    1. Incluir un BEGIN a una condición de arranque que indique los sufijos que deben ser reconocidos a continuación. Esto se utiliza, por ejemplo, cuando después de reconocer el género de un sustantivo es preciso reconocer su número.
    2. Si no es necesario comprobar la existencia de más sufijos, dar por terminado el reconocimiento de la palabra.

Todas las condiciones de arranque deberán ser exclusivas, puesto que que con ello evitamos el problema de un posible reconocimiento de una palabra dentro de otra.

Es conveniente considerar la existencia de una condición ERROR, a la que se envíe el analizador cuando una palabra no pueda ser reconocidagif. Cuando el analizador entra en este estado de error, debe actuar en modo pánicogif [Aho et al. 90], saltando todos los caracteres siguientes hasta que encuentra un carácter de sincronización, que en nuestro caso será un separador.

La utilización de condiciones de arranque es similar a definir un miniautómata para examinar las reglas léxicas.



Miguel A. Alonso Pardo
Thu Nov 20 16:47:01 CET 1997