Machine-translated by Google. Questions are authored in English.
Top

Discussion

Declaring an operator left associative causes the generator to

  • A.report an error whenever the operator appears twice
  • B.give the operator higher precedence than all the others
  • C.reduce rather than shift when precedences are equal
  • D.shift rather than reduce when precedences are equal

Answer: C

Correct answer: reduce rather than shift when precedences are equal

Reducing on equal precedence closes off the expression already on the stack before the new operator is considered, so a − b − c groups as (a − b) − c. Shifting instead would defer the reduction and give right association, which is the declaration used for exponentiation and assignment.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.