reordering parsing without spurious ambiguity
bug fix: bad update when max_term > 1