Я придумал эту грамматику, которая позволяет успешно добавлять / суб числа в скобках и еще много чего. Однако мне очень трудно расширить его для pow (^) и root (#) logi c. Я благодарен за любую помощь, так как сейчас я в упор ...
nonZeroDigit = "1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9";
digit = "0" | nonZeroDigit;
naturalNumber = nonZeroDigit , {digit};
secondPriorityOperators= "+" |"-";
firstPriorityOperators= "*" | "/";
syntax=expr;
expr=term, {secondPriorityOperators, term};
term=factor, {firstPriorityOperators, factor};
factor="(", expr , ")" | naturalNumber;
root = "#" , root | factor;
power = root, "^" , power| root;
Для тестирования я использовал этот сайт: https://planetcalc.com/6385/