1 6 package tests.jfun.parsec.mssql; 7 8 13 public final class ExpressionBinary implements Expression { 14 15 18 public int getPrecedence() { 19 return op.getPrecedence(); 20 } 21 22 25 public void acceptVisitor(ExpressionVisitor v) { 26 v.visitBinary(e1, op, e2); 27 } 28 private final Expression e1; 29 private final BinaryOp op; 30 private final Expression e2; 31 32 37 ExpressionBinary(final Expression e1, final BinaryOp op, final Expression e2) { 38 this.e1 = e1; 39 this.op = op; 40 this.e2 = e2; 41 } 42 public String toString(){ 43 final StringBuffer buf = new StringBuffer (); 44 final int pred = op.getPrecedence(); 45 if(e1.getPrecedence() < pred){ 46 buf.append('(').append(e1).append(')'); 47 } 48 else buf.append(e1); 49 buf.append(op); 50 if(e2.getPrecedence() <= pred){ 51 buf.append('(').append(e2).append(')'); 52 } 53 else buf.append(e2); 54 return buf.toString(); 55 } 56 } 57 | Popular Tags |