resultLocal,
Jimple.v().newVirtualInvokeExpr(zeroLocal,
PtolemyUtilities.tokenSubtractMethod.makeRef(),
tokenLocal)), _insertPoint);
} else if (node.isNot()) {
Type booleanType = RefType.v("ptolemy.data.BooleanToken");
Local booleanLocal = Jimple.v().newLocal("token", booleanType);
_body.getLocals().add(booleanLocal);
_units.insertBefore(Jimple.v().newAssignStmt(booleanLocal,
Jimple.v().newCastExpr(tokenLocal, booleanType)),
_insertPoint);
_units.insertBefore(Jimple.v().newAssignStmt(
booleanLocal,
Jimple.v().newInterfaceInvokeExpr(booleanLocal,
PtolemyUtilities.tokenBitwiseNotMethod.makeRef())),
_insertPoint);
_units.insertBefore(Jimple.v().newAssignStmt(
resultLocal,
Jimple.v().newCastExpr(booleanLocal,
PtolemyUtilities.tokenType)), _insertPoint);
} else if (node.isBitwiseNot()) {
Type bitwiseType = RefType.v("ptolemy.data.BitwiseOperationToken");
Local bitwiseLocal = Jimple.v().newLocal("token", bitwiseType);
_body.getLocals().add(bitwiseLocal);
_units.insertBefore(Jimple.v().newAssignStmt(bitwiseLocal,
Jimple.v().newCastExpr(tokenLocal, bitwiseType)),
_insertPoint);