1 19 20 package jode.expr; 21 import jode.type.Type; 22 import jode.decompiler.TabbedPrintWriter; 23 24 public class CompareToIntOperator extends Operator { 25 boolean allowsNaN; 26 boolean greaterOnNaN; 27 Type compareType; 28 29 public CompareToIntOperator(Type type, boolean greaterOnNaN) { 30 super(Type.tInt, 0); 31 compareType = type; 32 this.allowsNaN = (type == Type.tFloat || type == Type.tDouble); 33 this.greaterOnNaN = greaterOnNaN; 34 initOperands(2); 35 } 36 37 public int getPriority() { 38 return 499; 39 } 40 41 public void updateSubTypes() { 42 subExpressions[0].setType(Type.tSubType(compareType)); 43 subExpressions[1].setType(Type.tSubType(compareType)); 44 } 45 46 public void updateType() { 47 } 48 49 public boolean opEquals(Operator o) { 50 return (o instanceof CompareToIntOperator); 51 } 52 53 public void dumpExpression(TabbedPrintWriter writer) 54 throws java.io.IOException 55 { 56 subExpressions[0].dumpExpression(writer, 550); 57 writer.breakOp(); 58 writer.print(" <=>"); 59 if (allowsNaN) 60 writer.print(greaterOnNaN ? "g" : "l"); 61 writer.print(" "); 62 subExpressions[1].dumpExpression(writer, 551); 63 } 64 } 65 | Popular Tags |