Wie wird a ~ b ~ c^d ausgewertet, wenn beide Operatoren die gleiche Priorität haben und ~ und^links bzw. rechts assoziativ sind. Kann jemand es erklären? DankeVorrang und Assoziativität in Operationen in Compilern
0
A
Antwort
0
Es ist nicht. Vorrang und Assoziativität sind Möglichkeiten, Grammatiken zu disambiguieren, und wenn Sie Ihre Fähigkeit einschränken, sie zu verwenden, haben Sie mehrdeutige Grammatiken. Umgekehrt bedeutet die Entscheidung für einen Parserbaum, dass dieses Problem nicht existiert. Wenn Sie beispielsweise b ~ c^d als (b ~ c)^d analysieren, hat entweder ~ eine höhere Priorität oder^assoziativ.