Как я заставляю yacc сказать мне ожидаемый лексем / ток

Например, для правила:

%token TOKEN
%%
foo: TOKEN;

%%

Учитывая, что TOKEN является лексемным токеном, тогда, когда я разбираю:

tokken

это покажет Syntax error expected TOKEN recive tokken есть способ изменить это так, чтобы имя TOKEN не указывало на лексем так: Syntax error expected token recive tokken ?

0

Решение

Ну, после некоторых глубоких исследований я выяснил это так:

На объявлении токена:

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 что сложнее понять.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]