У меня возникла проблема с моим проектом JavaCC. Я пытаюсь распознать объявление переменной, которое имеет возможный префикс переменной, вид и имя переменной (id). Но парсер распознает первое слово как добрый и не переходит к остальной части линии.JavaCC распознает токен в токене
Он говорит:
Exception in thread "main" ParseException: Encountered " <KIND> "char "" at line 2, column 9.
Was expecting one of:
<VARIABLE> ...
вот как мои жетоны объявлены
TOKEN :
{
<START: "start"> {debugStream.println("start");}
| <END: "end"> {debugStream.println("end");}
| <VARIABLE: ("variable" <KIND> <ID>) | (<KIND> <ID>)> {debugStream.println("variable decl");}
| <KIND: "integer"|"real"|"logic"|"char"|"text"> {debugStream.println("kind");}
| <ID: (["a"-"z","_"])+> {debugStream.println("id");}
}
Я также попытался поставить тип и идентификатор в special_tokens, то анализатор идет без ошибок, но дон 't распознавать объявление переменной.
Edit:
вот входной строки
start
char sex
integer num
end
Вы не сказали, что определение «ТИПА». Также вы можете показать строку ввода. –
извините, что @ TheodoreNorvell. Я редактировал сообщение, чтобы добавить строку ввода. Это очень простой. И нет ТИПА, это была просто опечатка. – bfagundes