Ассоциативность унарного оператора

При построении унарного оператора в дереве я обычно рисую его как дерево родитель-потомок, например:

-4

  (-)
   |
   |
   4

А при рисовании бинарного оператора в дереве у него будет левый и правый узел, что-то вроде:

2-4

   -
  / \
 2   4

Для меня это имеет смысл, когда должна быть ассоциативность с несколькими операторами, даже = будет иметь левый и правый:

a=4

     =
    / \
   /   \
a (lv)  4 (rv)

Но я действительно не понимаю, почему унарный оператор — если в дереве синтаксического анализа есть только один дочерний элемент — имеет концепцию ассоциативности. Почему, например, унарный плюс/минус должен быть правоассоциативным, а не просто «неассоциативным» или «не имеет значения»?

Вот также полезный ответ: https://stackoverflow.com/a/14084830/12283181. А также:

Спецификация ассоциативности является избыточной для унарных операторов и показана только для полноты: унарные префиксные операторы всегда связывают справа налево (sizeof +*p равно sizeof(++(*p))), а унарные постфиксные операторы всегда связывают слева направо. -right (a[1][2]++ равно ((a[1])[2])++). Обратите внимание, что ассоциативность имеет смысл для операторов доступа к членам, даже если они сгруппированы с унарными постфиксными операторами: a.b++ анализируется (a.b)++, а не a.(b++).

Источник: C++ Operator Precedence



person carl.hiass    schedule 17.01.2021    source источник
comment
В чем именно заключается ваш вопрос?   -  person rici    schedule 17.01.2021
comment
Кроме того, я должен сказать, что ответ, на который вы ссылаетесь, * бесполезен. Это только запутывает проблему. Почти любой из других ответов более полезен, хотя теперь, когда я перечитал их все, я все еще неравнодушен к своему собственному ответу< /а>   -  person rici    schedule 17.01.2021
comment
@rici, возможно, но ответ немного выше моего понимания, поэтому мне понадобится небольшая помощь, чтобы упростить его для себя.   -  person carl.hiass    schedule 18.01.2021
comment
@rici на самом деле лучший вопрос / продолжение для вас, а не жалобы, если бы вы могли предложить ресурс (книгу или что-то еще), который был бы полезен для изучения некоторых концепций, которые вы упоминаете в своих двух ответах, поскольку то, что вы упоминаете, является немного выше моего текущего уровня понимания синтаксического анализа/c?   -  person carl.hiass    schedule 18.01.2021
comment
Если вас действительно интересует практический синтаксический анализ, я бы обратился к Дику Грюну Практическое руководство по методам синтаксического анализа, которое, помимо того, что оно соответствует своему подзаголовку, содержит хорошее резюме различных алгоритмы разбора. Но если вам удастся сформулировать актуальный вопрос, я попытаюсь на него ответить. (Возможно, ответ прост. Ассоциативность — это свойство бинарных инфиксных операторов, а не общая концепция синтаксического анализа.)   -  person rici    schedule 18.01.2021