if (expr!=null) { typePrint(type); } else { p.print("null"); }
typePrint(type);
    public void visitVariableDefinition(JVariableDefinition self,                                        int modifiers,                                        CType type,                                        String ident,                                        JExpression expr) {        // p.print(CModifier.toString(modifiers));	//	System.out.println(ident);	//System.out.println(expr);	//if we are in a work function, we want to stack allocate all arrays	//right now array var definition is separate from allocation	//we convert an assignment statement into the stack allocation statement'	//so, just remove the var definition	if (type.isArrayType() && !isInit) {	    String[] dims = ArrayDim.findDim(filter, ident);	    //but only do this if the array has corresponding 	    //new expression, otherwise don't print anything.	    if (expr instanceof JNewArrayExpression) {		//print the type		typePrint(((CArrayType)type).getBaseType());		p.print(" ");		//print the field identifier		p.print(ident);		//print the dims		stackAllocateArray(ident);		p.print(";");		return;	    }	    else if (dims != null)		return;	    else if (expr instanceof JArrayInitializer) {		declareInitializedArray(type, ident, expr);		return;	    }	}		if (expr!=null) {	    typePrint(type);	} else {	    p.print("null");	}	            p.print(" ");	p.print(ident);        if (expr != null) {	    p.print(" = ");	    expr.accept(this);	}	else if (type.isOrdinal())	    p.print (" = 0");	else if (type.isFloatingPoint())	    p.print(" = 0.0f");        p.print(";/* "+type+" */");        //p.print(";\n");    }