2009-12-01 7 views

Antwort

3

Es ist mehrdeutig, aber es ist kein Problem, weil ein gut erzogener LALR-Parser-Generator die Mehrdeutigkeit auflösen wird, indem er die Verschiebung anstelle der Reduzierungswahl wählt. Das ist was du willst - das "else" wird mit der vorherigen "if" Anweisung verglichen. Die Schlussfolgerung ist also: Es gibt kein Problem. Sie müssen nur die Standardauswahl verstehen, die der Parser-Generator für alle Verschiebungs-Reduzierungs-Ambiguitäten vornimmt. Dieser Standardwert kann durch Disambiguierungsregeln oder etwas wie den Operator "% prec" in "yacc" überschrieben werden.
Aber das ist ein fortgeschrittenes Thema.

+0

Großartige Informationen! Ich habe stattdessen deine Antwort akzeptiert, weil ich ausgefeilter bin. – Flavius

5

Nein, die baumelnden anderes Problem eine Zweideutigkeit, so dass keine Menge von Look-Ahead hilft.