
#source

    X or Y and Z or W;

#bytecode

    PUSHVAR "X";
    JUMPIFANDPOP true_0;
    PUSHVAR "Y";
    JUMPIFNOTANDPOP false_1;
    PUSHVAR "Z";
    JUMPIFNOTANDPOP false_1;
    PUSHTRU;
    JUMP end_1;
false_1:
    PUSHFLS;
end_1:
    JUMPIFANDPOP true_0;
    PUSHFLS;
    JUMP end_0;
true_0:
    PUSHTRU;
end_0:
    JUMPIFANDPOP true_2;
    PUSHVAR "W";
    JUMPIFANDPOP true_2;
    PUSHFLS;
    JUMP end_2;
true_2:
    PUSHTRU;
end_2:
    POP 1;
    RETURN 0;