Что это значит в yacc? - PullRequest
       4

Что это значит в yacc?

0 голосов
/ 13 марта 2011
%right <code> UNARY PLUSPLUS MINUSMINUS

Ответы [ 2 ]

0 голосов
/ 13 марта 2011

Наверное, Бизон, руководство поможет.Это объявление указывает, что токены UNARY PLUSPLUS MINUSMINUS являются ассоциативными справа.<code> указывает тип семантического значения этих токенов.
В этом случае я предполагаю union, как в исходном коде объявлено следующее:

%union {
  ...
  <some-type> code;
  ...
}

Надеюсь, это поможет

0 голосов
/ 13 марта 2011

Если у вас есть предупреждения сдвига / уменьшения, это означает, что есть момент, когда парсер может либо добавить токен в стек, либо уменьшить его, используя какое-то правило.По умолчанию он выбирает «сдвиг», это говорит о том, что вместо этого следует уменьшать этот токен.

Как правило, если у вас нет действительно странной грамматики, по умолчанию это сдвиг - это то, что вы хотите (я могуЯ не думаю ни о каком случае, где бы я хотел, чтобы он уменьшился, но его есть по какой-то причине ...).

Обычно вы просто хотите сказать% left вместо определенных токенов, просто радиснятие предупреждений о сдвиге / уменьшении

...