Сдвиг уменьшить конфликт - PullRequest
0 голосов
/ 11 апреля 2011

У меня проблемы с пониманием проблемы сдвига / уменьшения конфликта с YACC.Может кто-нибудь разобрать эту проблему и объяснить мне, используя пример с висящим другом?

Спасибо!

1 Ответ

1 голос
/ 11 апреля 2011

Проблема висящего остального в основном означает, что что-то вроде:

if (x) then if (y) then a; else b;

может быть проанализировано как

if (x) then { 
    if (y)  {
        then a;
        else b;
    }
}

или как

 if (x) then { 
     if (y) 
         then a; 
 } 
 else b;

Для большинства языков требуетсяпервый - и это именно то, что делает yacc, так что это редко является реальной проблемой (на самом деле конфликты S / R от yacc вызывают лишь очень редкие проблемы).

...