Довольно печать AST с минимальными скобками

я использую симпатичный принтер для JavaScript AST, и я хотел бы спросить, знает ли кто-нибудь о "собственно» алгоритм автоматического заключения выражений в скобки с минимальными скобками на основе приоритета оператора иассоциативность, У меня нетЯ не нашел никаких полезных материалов в Google.

Очевидно, что оператор, родитель которого имеет более высокий приоритет, должен быть заключен в скобки, например:

(x + y) * z // x + y has lower precedence

Тем не менее, есть также некоторые операторы, которые не являются ассоциативными, и в этом случае скобки все еще необходимы, например:

x - (y - z) // both operators have the same precedence

Мне интересно, что будет лучшим правилом для этого последнего случая. Будь тодостаточно сказать, что для деления и вычитания подвыражение rhs должно быть заключено в скобки, если оно меньшеили равно старшинство.

Ответы на вопрос(3)

Ваш ответ на вопрос