Désambiguer les expressions avec les opérateurs voisins de la même associativité et de la même priorité
dire que j'ai une expression comme suit (où ⨁
et ⨂
sont des opérateurs binaires qui ont le même niveau de priorité mais pas la même associativité):
x ⨁ y ⨂ z
est-ce que y
appartiendrait à ⨁
ou ⨂
, et sur la base de quels critères?
2
demandé sur
Aadit M Shah
2013-02-27 20:41:26
1 réponses
selon le algorithme de triage D'Edsgar Dijkstra si deux opérateurs voisins dans une expression ont le même niveau de priorité alors l'expression est désambiguée basée sur l'associativité du second opérateur.
- si le second opérateur est laissé associatif, alors l'opérande appartient au premier opérateur.
- si le second opérateur est de droite associatif alors l'opérande appartient à la deuxième opérateur.
Cas 1: ⨂
est associativité à gauche. L'expression est évaluée à:
(x ⨁ y) ⨂ z
Cas 2: ⨂
est en droit associatif. L'expression est évaluée à:
x ⨁ (y ⨂ z)
1
répondu
Aadit M Shah
2013-02-27 16:41:26