JavaCC - Análisis Léxico: Clases de expresiones regulares

Tipos de Expresiones Regulares que definen los tokens

Existen cuatro tipos de producciones compuestas por expresiones regulares:

regexpr_kind ::= "TOKEN"
| "SPECIAL_TOKEN"
| "SKIP"
| "MORE"
Tipo de expresión Entidades que describe
TOKEN Las expresiones regulares de este tipo describen los tokens de la gramática. El token manager crea un objeto Token por cada match de tal expresión regular y lo retorna al parser.
SPECIAL_TOKEN Las expresiones regulares de este tipo describen los tokens especiales, los cuales son como los tokens, salvo que no tienen significancia durante el parsing, es decir que las producciones BNF los ignoran. Sin embargo, los tokens especiales son pasados al parser para que las acciones del parser puedan accederlos. Para pasarlos, se los asocia al próximo token usando el campo "specialToken" de la clase Token.
Los tokens especiales son muy utilizados en el procesamiento de entidades léxicas tales como los comentarios, que si bien no tienen significancia para el parsing, son una parte importante del archivo de entrada.
SKIP Las expresiones regulares de este tipo indican qué expresiones deben ser ignoradas por el token manager. Por ejemplo, los fines de línea (\n), las tabulaciones (\t), etc.
MORE A veces es utilizada para construir gradualmente un token. Los matches que se van obteniendo se almacenan en un buffer hasta que se encuentra el siguiente TOKEN o SPECIAL_TOKEN. Luego, todos los matches almacenados en el buffer y el TOKEN/SPECIAL_TOKEN hallado son concatenados juntos para formar un TOKEN/SPECIAL_TOKEN que es pasado al parser. Si siguiera una expresión regular SKIP, el contenido del buffer sería descartado