home *** CD-ROM | disk | FTP | other *** search
- package sun.tools.tree;
-
- import java.util.Hashtable;
- import sun.tools.asm.Assembler;
- import sun.tools.asm.Label;
- import sun.tools.java.Environment;
- import sun.tools.java.Type;
-
- public class OrExpression extends BinaryLogicalExpression {
- public OrExpression(int var1, Expression var2, Expression var3) {
- super(14, var1, var2, var3);
- }
-
- public void checkCondition(Environment var1, Context var2, Vset var3, Hashtable var4, ConditionVars var5) {
- super.left.checkCondition(var1, var2, var3, var4, var5);
- super.left = ((Node)this).convert(var1, var2, Type.tBoolean, super.left);
- Vset var6 = var5.vsTrue.copy();
- Vset var7 = var5.vsFalse.copy();
- super.right.checkCondition(var1, var2, var7, var4, var5);
- super.right = ((Node)this).convert(var1, var2, Type.tBoolean, super.right);
- var5.vsTrue = var5.vsTrue.join(var6);
- }
-
- Expression eval(boolean var1, boolean var2) {
- return new BooleanExpression(super.where, var1 || var2);
- }
-
- Expression simplify() {
- if (!super.left.equals(true) && !super.right.equals(false)) {
- return (Expression)(!super.left.equals(false) && !super.right.equals(true) ? this : super.right);
- } else {
- return super.left;
- }
- }
-
- void codeBranch(Environment var1, Context var2, Assembler var3, Label var4, boolean var5) {
- if (var5) {
- super.left.codeBranch(var1, var2, var3, var4, true);
- super.right.codeBranch(var1, var2, var3, var4, true);
- } else {
- Label var6 = new Label();
- super.left.codeBranch(var1, var2, var3, var6, true);
- super.right.codeBranch(var1, var2, var3, var4, false);
- var3.add(var6);
- }
- }
- }
-