public Object visit(NegateExpression node) {
            Expression expr = node.getExpression();
            Class<?> exprClass = expr.getType().getNaturalClass();

            generate(expr);

            byte opcode;
            if (exprClass == int.class) {
                opcode = Opcode.INEG;
            }
            else if (exprClass == float.class) {
                opcode = Opcode.FNEG;
            }
            else if (exprClass == long.class) {
                opcode = Opcode.LNEG;
            }
            else if (exprClass == double.class) {
                opcode = Opcode.DNEG;
            }
            else {
                opcode = Opcode.INEG;
            }

            mBuilder.math(opcode);

            return null;
        }