}
// load token to stack
switch (lookhead.getType()) {
case Number:
// load numbers
NumberToken numberToken = (NumberToken) lookhead;
if (numberToken.getNumber() instanceof Double) {
mv.visitTypeInsn(NEW, "com/googlecode/aviator/runtime/type/AviatorDouble");
mv.visitInsn(DUP);
mv.visitLdcInsn(numberToken.getNumber());
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Double", "valueOf", "(D)Ljava/lang/Double;");
mv.visitMethodInsn(INVOKESPECIAL, "com/googlecode/aviator/runtime/type/AviatorDouble", "<init>",
"(Ljava/lang/Number;)V");
}
else {
mv.visitTypeInsn(NEW, "com/googlecode/aviator/runtime/type/AviatorLong");
mv.visitInsn(DUP);
mv.visitLdcInsn(numberToken.getNumber());
mv.visitMethodInsn(INVOKESTATIC, "java/lang/Long", "valueOf", "(J)Ljava/lang/Long;");
mv.visitMethodInsn(INVOKESPECIAL, "com/googlecode/aviator/runtime/type/AviatorLong", "<init>",
"(Ljava/lang/Number;)V");
}
pushOperand(2);