}
public void processMultiConditionalStatement(OperationType operation, Expression left, Expression right) {
MultiConditional conditional = new MultiConditional(context.getCurrentInstruction(), left, right, operation);
//context.getExpressions().push(conditional);
BooleanBranchIntermediate line = new BooleanBranchIntermediate(this.context.getCurrentInstruction(), conditional);
//check to see whether you need to negate.
//if the conditional's target is greater than the conditional's next statement, don't negate.
BranchHandle branchHandle = (BranchHandle) context.getCurrentInstruction();
int next = branchHandle.getNext().getPosition();
int target = branchHandle.getTarget().getPosition();
//Important. Make sure the expression "true" is pointed towards the lower branch.
if(target > next) {
line.getExpression().negate();
}
context.pushIntermediateToInstruction(line);
}