Я пытаюсь придумать хороший способ анализа строк с использованием JavaCC без ошибочного сопоставления их с другим токеном. Эти строки должны содержать пробелы, буквы и цифры.
Мой идентификатор и числовой токен выглядят следующим образом:
<IDENTIFIER: (["a"-"z", "A"-"Z"])+>
<NUMBER: (["0"-"9"])+>
Мой текущий токен строки:
<STRING: "\"" (<IDENTIFIER> | <NUMBERS> | " ")+ "\"">
В идеале я хочу сохранить только то, что находится внутри кавычек. У меня есть отдельный файл, в котором я делаю фактическое сохранение переменных и значений. Мне убрать там кавычки?
Изначально у меня был такой метод в файле парсера:
variable=<INDENTIFIER> <ASSIGN> <QUOTE> message=<IDENTIFIER> <QUOTE>
{File.saveVariable(variable.image, message.image);}
Но, как вы могли догадаться, это не позволяло использовать пробелы или числа, если уж на то пошло. Для идентификаторов, таких как имена переменных, я хочу разрешить только буквы.
Итак, я просто хотел бы получить совет о том, как я могу захватить строковые литералы. В частности, я хотел бы сделать такие строки, как:
" hello", "hello ", " hello " and "\nhello", "hello\n", "\nhello\n"
допустимо в моем синтаксисе.