Term::Or and Term::And delimit the term in construction, but did not
add the term to the stack. This necessitated to save the last seen
operation, but use the previous operation from the stack when adding
to it. Unfortunately the last seen operation was not restored correctly
after pushing and popping from the stack.
Instead of adding more state to the parser, immediately add a completed
term to the stack, which allows to remove the temporary last operation.