1 package org.jacorb.notification.filter.etcl; 2 3 23 24 import org.jacorb.notification.filter.EvaluationContext; 25 import org.jacorb.notification.filter.EvaluationException; 26 import org.jacorb.notification.filter.EvaluationResult; 27 28 import antlr.Token; 29 30 34 35 public class MinusOperator extends UnaryOperator { 36 37 private boolean unary_; 38 private static final String NAME = "MinusOperator"; 39 40 public MinusOperator(Token tok) { 41 super(tok); 42 setName(NAME); 43 } 44 45 public void setType(int type) { 46 unary_ = (type == UNARY_MINUS); 47 } 48 49 public String toString() { 50 return " -"; 51 } 52 53 public EvaluationResult evaluate(EvaluationContext context, 54 EvaluationResult left) 55 throws EvaluationException { 56 57 if (unary_) { 58 59 return EvaluationResult.unaryMinus(left); 60 61 } 62 return EvaluationResult.minus(left, 63 right().evaluate(context)); 64 } 65 66 public void acceptInOrder(AbstractTCLVisitor visitor) throws VisitorException { 67 left().acceptInOrder(visitor); 68 visitor.visitMinus(this); 69 if (!unary_) { 70 right().acceptInOrder(visitor); 71 } 72 } 73 74 public void acceptPostOrder(AbstractTCLVisitor visitor) throws VisitorException { 75 left().acceptPostOrder(visitor); 76 if (!unary_) { 77 right().acceptPostOrder(visitor); 78 } 79 visitor.visitMinus(this); 80 } 81 82 public void acceptPreOrder(AbstractTCLVisitor visitor) throws VisitorException { 83 visitor.visitMinus(this); 84 left().acceptPreOrder(visitor); 85 if (!unary_) { 86 right().acceptPreOrder(visitor); 87 } 88 } 89 90 } 91 | Popular Tags |