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 NotExpression extends UnaryExpression {
- public NotExpression(int var1, Expression var2) {
- super(37, var1, Type.tBoolean, var2);
- }
-
- void selectType(Environment var1, Context var2, int var3) {
- super.right = ((Node)this).convert(var1, var2, Type.tBoolean, super.right);
- }
-
- public void checkCondition(Environment var1, Context var2, Vset var3, Hashtable var4, ConditionVars var5) {
- super.right.checkCondition(var1, var2, var3, var4, var5);
- super.right = ((Node)this).convert(var1, var2, Type.tBoolean, super.right);
- Vset var6 = var5.vsFalse;
- var5.vsFalse = var5.vsTrue;
- var5.vsTrue = var6;
- }
-
- Expression eval(boolean var1) {
- return new BooleanExpression(super.where, !var1);
- }
-
- Expression simplify() {
- switch (super.right.op) {
- case 19:
- case 20:
- case 21:
- case 22:
- case 23:
- case 24:
- BinaryExpression var1 = (BinaryExpression)super.right;
- if (var1.left.type.inMask(192)) {
- return this;
- } else {
- switch (super.right.op) {
- case 19:
- return new EqualExpression(super.where, var1.left, var1.right);
- case 20:
- return new NotEqualExpression(super.where, var1.left, var1.right);
- case 21:
- return new LessExpression(super.where, var1.left, var1.right);
- case 22:
- return new LessOrEqualExpression(super.where, var1.left, var1.right);
- case 23:
- return new GreaterExpression(super.where, var1.left, var1.right);
- case 24:
- return new GreaterOrEqualExpression(super.where, var1.left, var1.right);
- default:
- return this;
- }
- }
- case 37:
- return ((NotExpression)super.right).right;
- default:
- return this;
- }
- }
-
- void codeBranch(Environment var1, Context var2, Assembler var3, Label var4, boolean var5) {
- super.right.codeBranch(var1, var2, var3, var4, !var5);
- }
- }
-