В число участвующих операторов входят ++
, --
, +
и -
. Некоторые паратезы и пробелы помогут здесь:
a = ((b++)++) + (b--) - (c--);
Я не знаю, как именно работает синтаксический анализ, но нет двусмысленности (ОК, да, смотрите ответ Динго), поэтому я думаю, что это можно сделать с помощью простых правил, таких как:
- Один или несколько символов составляют имя переменной, самый простой тип "выражения"
- Операторы
+
и -
объединяют два "выражения"
- Операторы
++
и --
являются суффиксами к «выражению»
Чтобы устранить неоднозначность, вы можете дать ++
и --
более высокий приоритет, чем +
и -
.