The text parser handles rules like below:
- A or B or C [or D...]
- A and B and C [and D...]
But it doesn't ones below:
- A or B and C
- A and B or C
So, this patch fixes them with:
- for "A and B or C": adds @reducer('and_expr', 'or', 'check') to
_make_or_expr().
- for "A or B and C": adds _mix_or_and_expr() method. It pops the last
check (B) from OrCheck rule list [A, B] and append AndCheck with
rule list [B, C] to the Or Check rule list. So, finally we will get
"OrCheck[A, AndCheck[B, C]]".
Change-Id: Iaaee4864356411374ee7e7c5c0c05b98889e0f4e
Closes-Bug: #1523030