Estoy tratando de pensar en una buena forma de analizar cadenas utilizando JavaCC sin confundirlo por error con otro token. Estas cadenas deberían poder tener espacios, letras y números.Análisis de cadenas con JavaCC
Mi identificador y número de contadores son los siguientes:
<IDENTIFIER: (["a"-"z", "A"-"Z"])+>
<NUMBER: (["0"-"9"])+>
Mi token de cadena actual es:
<STRING: "\"" (<IDENTIFIER> | <NUMBERS> | " ")+ "\"">
Idealmente, quiero sólo para salvar la materia que hay dentro de las comillas. Tengo un archivo separado en el que hago el ahorro real de variables y valores. ¿Debo eliminar las citas allí?
en principio había un método en el archivo del analizador de la siguiente manera:
variable=<INDENTIFIER> <ASSIGN> <QUOTE> message=<IDENTIFIER> <QUOTE>
{File.saveVariable(variable.image, message.image);}
Pero, como puede imaginar, esto no permitía espacios o números para el caso. Para identificadores como nombres de variables, solo quiero permitir letras.
Así que, me gustaría obtener algunos consejos sobre cómo podría capturar literales de cadenas. En particular, me gustaría hacer cadenas como:
" hello", "hello ", " hello " and "\nhello", "hello\n", "\nhello\n"
válido en mi sintaxis.
Debería aceptar la respuesta de DerMike, parece ser bastante perfecta. –