Разбор выражения с бинарным префиксом, инфиксными и постфиксными операторами

Можно ли анализировать выражение (без двусмысленности), которое может содержать двоичный префикс, двоичный инфикс и двоичные постфиксные операторы (допустим, что все символы разные) с приоритетом между ними? Например:

a = 2 3 post+
b = pre+ 2 3*4

Тогда a будет равно 5, потому что = имеет более низкий приоритет, чем оператор postfix post+, а b - 14. Я знаю, что вы можете разбирать инфиксные нотные выражения с помощью синтаксического разбора или шунтирования, но эта проблема кажется мне более сложной.

Edit:

Разрешены скобки, а варианты до и после операции имеют тот же приоритет, что и инфикс.

Я хотел бы свернуть ручной алгоритм.

Edit2:

К примеру, я имею в виду, сколько нужно потреблять. Например:

a = 2 3 post+

Может привести к этим AST-s:

'=' has higher precedence than 'post+':
    post+
    /  \
   =    3
  / \
 a  2

'post+' has higher precedence than '=':
      =
     / \
   a   post+
       /  \
      2    3

(Вторая - это то, что мне нужно в этой ситуации). Я не могу использовать существующие генераторы парсеров или фиксированную грамматику для операндов, потому что операторы загружаются динамически.

+5
источник поделиться

На данный вопрос пока никто не ответил

Посмотрите другие вопросы по меткам или Задайте вопрос