Приоритет и ассоциативность операций в компиляторах

Как оценивается a~b~c^d, когда оба оператора имеют одинаковый приоритет, а ~ и ^ являются лево- и право-ассоциативными соответственно. Может кто-нибудь объяснить. Спасибо


person ben gates    schedule 30.04.2016    source источник


Ответы (1)


Это не так. Приоритет и ассоциативность — это способы устранения неоднозначности грамматик, и если вы ограничите свои возможности их использования, вы вернетесь к неоднозначным грамматикам. И наоборот, решение об одном дереве синтаксического анализа означает, что этой проблемы не существует. Например, если вы анализируете b~c^d как (b~c)^d, то либо ~ имеет более высокий приоритет, либо ^ является левоассоциативным.

person robot1208    schedule 30.06.2016