Вы могли бы изменить его, используя преобразование AST, но было бы сложно получить правильное представление ...
Если вы загрузите свой скрипт в GroovyConsole, а затем откроетеВ браузере AST вы увидите это дерево для назначения:
Binary - ( d = ( a & ( b >> c ) ) )
Variable - d
Binary - ( a & ( b >> c ) )
Variable - a
Binary - ( b >> c )
Variable - b
Variable - c
Таким образом, как вы можете видеть, узлы выполняются на основе приоритета оператора по умолчанию и дерева org.codehaus.groovy.ast.expr.BinaryExpression
и org.codehaus.groovy.ast.expr.VariableExpression
узлов AST
Вам потребуется написать преобразование AST, которое сканирует дерево на наличие узлов BinaryExpression, а затем переупорядочить эти деревья, чтобы они сортировались по вашему собственному приоритету для поля operation
.
Или вы можете просто использовать круглые скобки в своем коде, как предлагает Дон: -)