JavaCUP - Análisis Léxico: Expresiones Regulares

Expresiones Regulares

Las expresiones regulares deberían carecer de espacios en blanco, dado que los mismos se interpretan como el final de la expresión regular corriente. Existe una excepción, y es cuando aparecen entre comillas dobles, caso en el que se interpretan como espacios en blanco.
El alfabeto de JLex es el conjunto de caracteres ASCII, entre los códigos 0 y 127 inclusive.

Los siguientes caracteres, en JLex son metacaracteres con significado especial en las expresiones regulares:

? * + | ( ) ^ $ . [ ] { } " \

Las expresiones regulares pueden relacionarse de distintas maneras:

ef Representa la concatenación de dos expresiones regulares e y f.
e|f La barra vertical (|) representa una opción entre las expresiones e y f.

Las siguientes secuencias de escape son las que pueden reconocerse y expandirse:

secuencia semántica
\b retroceso(Backspace)
\n nueva línea (newline)
\t tabulación (Tab)
\f Formfeed
\r retorno de carro
\ddd número formado por tres dígitos octales ddd
\xdd número formado por dos dígitos hexadecimales.
\udddd caracter Unicode que representa un número formado por dos dígitos hexadecimales.
\^C caracter de control.
\c A backslash followed by any other character c matches itself
$ El signo ($) denota el final de una línea. Si $ concluye una expresión reutlar, la expresión sólo es reconocida al final de la línea.
. El punto (.) reconoce cualquier caracter excepto la nueva línea, entonces es una expresión equivalente a [^\n].
{name} Las llaves denotan una expansión de macro, donde name es el nombre de la macro.
* El asterisco (*) representa la clausurea de Kleene y reconoce cero o más repeticiones de la expresión regular que lo precede.
+ El signo mas (+) reconoce una o más repeticiones de la expresión regular que lo precede, por lo que e+ es equivalente a ee*.
? El signo de pregunta (?) reconoce cero o una repetición de la expresión que lo precede.
(...) Los paréntesis se utilizan para agrupar expresiones regulares.
[...] Los corchetes denotan una clase de caracteres y reconocen cualquiera de los caracteres encerrados entre los mismos.

Los metacaracteres "..." pierden su significado cuando están entre comillas, mientras que la secuencia \" (que representa al caracter simple ") es la única excepción.