1 package org.hansel.stack; 2 3 import org.objectweb.asm.tree.analysis.Value; 4 5 public class BinaryOperatorEntry extends OperatorEntry { 6 private HanselValue op1; 7 private HanselValue op2; 8 9 public BinaryOperatorEntry(String operator, 10 int precedence, 11 Value op1, 12 Value op2) { 13 this(operator, precedence, (HanselValue) op1, (HanselValue) op2); 14 } 15 16 public BinaryOperatorEntry(String operator, 17 int precedence, 18 Value op1, 19 Value op2, 20 int size) { 21 this(operator, precedence, (HanselValue) op1, (HanselValue) op2, size); 22 } 23 24 public BinaryOperatorEntry(String operator, 25 int precedence, 26 HanselValue op1, 27 HanselValue op2) { 28 this(operator, precedence, op1, op2, ((HanselValue) op1).getSize()); 29 } 30 31 public BinaryOperatorEntry(String operator, 32 int precedence, 33 HanselValue op1, 34 HanselValue op2, 35 int size) { 36 super(operator, precedence, op1.isBoolType(), size); 37 38 assert op1 != null && op2 != null : "Operators may not be null."; 39 40 this.op1 = op1; 41 this.op2 = op2; 42 } 43 44 public HanselValue getOperator1() { 45 return op1; 46 } 47 48 public HanselValue getOperator2() { 49 return op2; 50 } 51 52 public String toString() { 53 return toString(op1) + " " + super.toString() + " " + toString(op2); 54 } 55 56 public HanselValue compress() { 57 return this; 58 } 59 60 } 61
| Popular Tags
|