new JFieldAccessExpression
new JLocalVariableExpression
    JStatement receiveCode(SIRFilter filter) {	JBlock statements = new JBlock(null, new JStatement[0], null);		if (filter.getInputType().isArrayType()) {	    //NOT IMPLEMENTED YET      !!!!!!!!!!!!!!!!!!!!!!!!!!!	    return null;	}	else if (filter.getInputType().isClassType()) {	    //NOT IMPLEMENTED YET      !!!!!!!!!!!!!!!!!!!!!!!!!!!	    return null;	    	} 	else {	    //we want to create a statement of the form:	    //static_receive_to_mem((void*)&(recvBuffer[(++recvIndex) &	    //                                          recvBufferSize]));	    //the cast to (void*) and the '&' are added by the FlatIRToC pass	     //create the increment of the index var	    JPrefixExpression bufferIncrement = 		new JPrefixExpression(null, 				      OPE_PREINC,				      new JFieldAccessExpression				      (null, 				       new JThisExpression(null),				       RawExecutionCode.recvIndex));	    //create the modulo expression	    JModuloExpression indexMod = 		new JModuloExpression(null, bufferIncrement, 				  new JFieldAccessExpression				  (null,				   new JThisExpression(null),				   RawExecutionCode.recvBufferSize));	    //create the array access expression	    JArrayAccessExpression bufferAccess = 		new JArrayAccessExpression(null,					   new JFieldAccessExpression					   (null,					    new JThisExpression(null),					    RawExecutionCode.recvBuffer),					   indexMod);	    	    JExpression[] arg = 		{new JParenthesedExpression(null,					    bufferAccess)};	    	    //create the method call expression	    JMethodCallExpression exp =		new JMethodCallExpression(null,  new JThisExpression(null),					  receiveMethod,					  arg);	    //return the method call	    return new JExpressionStatement(null, exp, null);	}    }