The "original" form of the disjunction
production (before it had left-recursion eliminated to make it appropriate for LL parsing) was
disjunction: conjunction
| disjunction '|' conjunction
;
That will left-associate disjunction; if you want right-association -- for example for assignment operators -- use right-recursion:
assignment: expression
| expression '=' assignment
;
(That might not be precisely what you want on the left-hand side of an assignment operator, but it shows a general pattern for right-associative rules.)
Similarly:
sum: product
| sum '+' product
| sum '-' product
;
The reconstruction of the grammar corresponding to a sensible parse tree should be fairly mechanical, but you probably should write enough test cases, parsing them with both grammars, to assure yourself that you got it correct.