in reply to Regexp::Grammars Calculator

Your grammar accepts "2-3-5" as:

Answer Op=- / \ Mult Answer Pow Op=- Term / \ Literal Mult Answer "2" Pow Mult Term Pow Literal Term "3" Literal "5"

So it's evaluating as 2 - (3 - 5), as the grammar allows. If perhaps you can write your grammar in a more left-recursive fashion, such as:

<objrule: Answer> <X=Answer> <Op=([+-])> <Y=Mult> | <MATCH=Mult>

This sort of transformation carried throughout the grammar might do the trick.

Disclaimer: I've not written a compiler, nor played around with grammars in quite a while, so take this with a grain of salt...

...roboticus