Я создаю грамматику с использованием JavaCC и сталкиваюсь с небольшой проблемой. Я пытаюсь разрешить любой допустимый символ в расширенном наборе ASCII, который должен быть распознан результирующим компилятором. После того, как смотреть на тех же примерах JavaCC (прежде всего пример, показывающий саму JavaCC Grammer) я создал следующий токен признать свои символы:Признание расширенных символов с использованием JAVACC
< CHARACTER:
( (~["'"," ","\\","\n","\r"])
| ("\\"
(["n","t","b","r","f","\\","'","\""]
| ["0"-"7"] (["0"-"7"])?
| ["0"-"3"] ["0"-"7"] ["0"-"7"]
)
)
)
>
Если я правильно понять это должно быть соответствие по восьмеричном представлении всех символов ASCII от 0-377 (который охватывает все 256 символов в расширенном наборе ASCII). Это выполняется как ожидается для всех символов клавиатуры (a-z, 0-9,?,./Etc) и даже для большинства специальных символов (©, ¬ ®). Однако, когда я пытаюсь разобрать символ «товарный знак» (™), мой анализатор постоянно выдает исключение «Конец файла», что указывает на то, что он не может распознать символ. Есть ли какой-то очевидный способ, чтобы я мог улучшить свое определение персонажа, чтобы можно было принять символ товарного знака?