KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > tests > jfun > parsec > mssql > ExpressionBinary


1 /*
2  * Created on 2004-11-15
3  *
4  * Author Ben Yu
5  */

6 package tests.jfun.parsec.mssql;
7
8 /**
9  * @author Ben Yu
10  *
11  * 2004-11-15
12  */

13 public final class ExpressionBinary implements Expression {
14
15   /*
16    * @see jfun.parsec.mssql.Expression#getPrecedence()
17    */

18   public int getPrecedence() {
19     return op.getPrecedence();
20   }
21
22   /*
23    * @see jfun.parsec.mssql.Expression#acceptVisitor(jfun.parsec.mssql.ExpressionVisitor)
24    */

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   /**
33    * @param e1
34    * @param op
35    * @param e2
36    */

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 JavaDoc toString(){
43     final StringBuffer JavaDoc buf = new StringBuffer JavaDoc();
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