Рассмотрим рекурсивные строки правил здесь. Когда входными токенами являются AA, есть ли здесь конфликт уменьшения сдвига? Я полагаю, что это так, поскольку после первого токена A указатель будет находиться в начале в первом туле и после строк во втором правиле. Когда появляется второй токен А, первое правило может быть уменьшено или второе правило может быть смещено. Так что я считаю, что здесь есть конфликт уменьшения сдвига, верно?
/* print-int.y */
%token INTEGER NEWLINE A B
%%
lines: A | lines A
;
;
%%
#include "lex.yy.c"
yyerror(char *s) { printf("%s", s); }
main() {
return yyparse();
}
Кроме того, если токен былне А, а правило гласит: rule2 : A;
, будет ли еще конфликт, иными словами, должны ли конфликты происходить на токенах, могут ли они происходить и на правилах?