public abstract class BitOp<T extends BinopExpr<Expr,Expr>> extends Binop<T> {
public abstract Inst createOp(TypeCode tc) ;
public void compile(TypeName forwardType, T t, EvaluationContext context, InstList result) throws CompilerException {
final Expr lhs = t.lhs;
final Expr rhs = t.rhs;
TypeCode type = StdJavaExpressions.getBitBinopType(context.getTypeCode(lhs),context.getTypeCode(rhs)) ;
StdJavaExpressions.createBinop(context, lhs, rhs,TypeName.valueOf(type),createOp(type),result);
StdJavaExpressions.convertResult(context,t, forwardType, result) ;
}