else assert false : "Can't print strings in the raw simulator without using printf";
else {
    public void visitPrintStatement(SIRPrintStatement self,                                    JExpression exp)    {        CType type = null;                try {            type = exp.getType();        }        catch (Exception e) {            System.err.println("Cannot get type for print statement");            type = CStdType.Integer;        }                //if we have the number gathering stuff on, convert each print         //to a magic instruction, there are only print statements in the sink        //all other prints have been removed...        if (KjcOptions.numbers > 0) {            //assign the expression to a dummy var do it does not get            //optimized out...            p.print("dummy");            if (type.isFloatingPoint())                p.print("Float");            else                 p.print("Int");            p.print(" = ");            exp.accept(this);            p.print(";\n");            p.print("__asm__ volatile (\"magc $0, $0, 2\");\n");            return;        }        if (type.equals(CStdType.Boolean))            {                Utils.fail("Cannot print a boolean");            }        else if (type.equals(CStdType.Byte) ||                 type.equals(CStdType.Integer) ||                 type.equals(CStdType.Short) ||                 type.equals(CStdType.Char) ||                 type.equals(CStdType.Long))            {                if (KjcOptions.standalone)                    p.print("printf(\"%d\\n\", ");                 else if (KjcOptions.decoupled)                    p.print("print_int(");                else                    p.print("raw_test_pass_reg(");                                    //print("gdn_send(" + INT_HEADER_WORD + ");\n");                //print("gdn_send(");                exp.accept(this);                p.print(");");            }        else if (type.equals(CStdType.Float))            {                if (KjcOptions.standalone)                    p.print("printf(\"%f\\n\", ");                 else if (KjcOptions.decoupled)                    p.print("print_float(");                else                     p.print("raw_test_pass_reg(");                                    //print("gdn_send(" + FLOAT_HEADER_WORD + ");\n");                //print("gdn_send(");                exp.accept(this);                p.print(");");            }        else if (type.equals(CStdType.String))             {                if (KjcOptions.standalone)                    p.print("printf(\"%s\\n\", ");                 else if (KjcOptions.decoupled)                    p.print("print_string(");                else                    assert false : "Can't print strings in the raw simulator without using printf";                //              p.print("gdn_send(" + INT_HEADER_WORD + ");\n");                //print("gdn_send(");                exp.accept(this);                p.print(");");            }        else            {                System.out.println("Unprintatble type");                p.print("print_int(");                exp.accept(this);                p.print(");");                //Utils.fail("Unprintable Type");            }    }