Проблема висящего остального в основном означает, что что-то вроде:
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 вызывают лишь очень редкие проблемы).