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.

  1. si le second opérateur est laissé associatif, alors l'opérande appartient au premier opérateur.
  2. 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