Definición de "grupos" de tokens

Estoy trabajando en un analizador para un lenguaje simple usando JavaCC.

En mi sección de declaración de tokens, tengo algo como esto

< CONSTANT: < INTEGER > | < FLOAT_NUMBER > | < BOOLEAN > >

< INTEGER: "0" | ("-")? ["1"-"9"](["0"-"9"])* | "0x" (["0"-"9"] | ["a"-"f"]  | ["A"-"F"])+ >
< FLOAT_NUMBER: ("-")? (["0"-"9"])+ "." (["0"-"9"])+ ("E" ("-")? (["0"-"9"])+)? ("D")? >
< BOOLEAN: "true" | "false">

CONSTANT, debido a su orden, es de mayor prioridad que INTEGER. Sin embargo, hay partes de la gramática donde necesito una INTEGER, específicamente. En estos casos, el analizador genera una excepción porque INTEGERse analizó como a CONSTANT.

Una solución simple es eliminar el CONSTANTtoken y buscarlo y reemplazarlo (< INTEGER > | < FLOAT_NUMBER > | < BOOLEAN >). Sin embargo, esto se siente bastante torpe.

¿Hay alguna manera de definir CONSTANTsimplemente una agrupación de otras fichas, de modo que CONSTANTno sea una ficha en sí misma sino una abreviatura (< INTEGER > | < FLOAT_NUMBER > | < BOOLEAN >)?

Gracias por tu tiempo.

Respuesta 1

¿Cuál es la mejor manera de incrementar el tiempo de caducidad de los objetos en Memcache usando GAE en Java? Intentaré configurar el objeto nuevamente, pero ¿este es el enfoque correcto?

Tengo las clases de recursos de Jersey agrupadas dentro de un archivo WAR como JAR más grande que ahora reside debajo de la carpeta WEB-INF / lib en Websphere Application Server. Tengo la entrada web.xml correcta (WEB-INF / ...

Toda la información que encuentro sobre el uso de JavaPlot trata sobre cómo crear trazados y ejecutarlos desde un nivel de código Java. Esto está bien, pero ya tengo algunos archivos de script utilizados que hacen lo que quiero ...

Tengo una solicitud de Hibernate que me devuelve una lista de elementos para mostrar. Necesito verificar si el usuario actual puede ver cada elemento devuelto. Puedo hacer algo así para (Elemento e: elementos) ...