Разбирать двоичные суммы/произведения легко, но у меня возникают проблемы с определением грамматики, которая анализирует
a + b * c + d + e
as
sum(a, prod(b, c), d, e)
Моя первоначальная (наивная) попытка породила 61 конфликт сдвига/уменьшения.
Я использую java cup (но я полагаю, что решение для любого другого генератора парсеров будет легко переведено).