Например, для правила:
%token TOKEN
%%
foo: TOKEN;
%%
Учитывая, что TOKEN является лексемным токеном, тогда, когда я разбираю:
tokken
это покажет Syntax error expected TOKEN recive tokken
есть способ изменить это так, чтобы имя TOKEN не указывало на лексем так: Syntax error expected token recive tokken
?
Ну, после некоторых глубоких исследований я выяснил это так:
На объявлении токена:
parser.y:
%token TOKEN "token"
%%
foo : TOKEN
Это делают когда пишешь tokken
поставленный token
сообщение об ошибке показывает, что найти в строке объявления токена (%token TOKEN "token"
). Я сделаю лучший пример:
parser.y:
%token TOKEN "token"%token PYC ";"
%%
foo : TOKEN PYC
если ваша программа token.
Тогда ошибка будет unexpected "." expecting ";"
.Без «;» на линии %token PYC ";"
тогда ошибка будет unexpected "." expecting PYC
что сложнее понять.
Других решений пока нет …