(dynamicInput, Util.getBaseType(filter.getInputType())));
(dynamicInput, CommonUtils.getBaseType(filter.getInputType())));
    public void visitMethodCallExpression(JMethodCallExpression self,                                          JExpression prefix,                                          String ident,                                          JExpression[] args) {        /*          if (ident != null && ident.equals(JAV_INIT)) {          return; // we do not want generated methods in source code          }        */        /*  a hack that never was...            if (ident.startsWith(ARRAY_INIT_PREFIX)) {            assert args.length == 2 : "Error: improper args to init_array";            assert args[0] instanceof JStringLiteral : "Error: improper args to init_array";            assert args[1] instanceof JIntLiteral : "Error: improper args to init_array";                        p.print(getArrayInitFromFile(ident,             ((JStringLiteral)args[0]).stringValue(),             ((JIntLiteral)args[1]).intValue()));            return;            }        */        //generate the inline asm instruction to execute the         //receive if this is a receive instruction        if (ident.equals(RawExecutionCode.receiveMethod)) {            if (args.length > 0) {                visitArgs(args,0);                p.print(" = ");                p.print(Util.networkReceive                        (dynamicInput, Util.getBaseType(filter.getInputType())));                            }            else {                p.print(Util.networkReceive                        (dynamicInput, Util.getBaseType(filter.getInputType())));            }            return;        }        /*              //we are receiving an array type, call the popArray method        if (ident.equals(RawExecutionCode.arrayReceiveMethod)) {        popArray(args[0]);        return;        }        */        /*          if (ident.equals(RawExecutionCode.rateMatchSendMethod)) {          rateMatchPush(args);          return;          }        */        p.print(ident);                //we want single precision versions of the math functions        if (Utils.isMathMethod(prefix, ident) &&                 !ident.equals("abs"))             p.print("f");                    p.print("(");                //if this method we are calling is the call to a structure         //receive method that takes a pointer, we have to add the         //address of operator        if (ident.startsWith(RawExecutionCode.structReceivePrefix))            p.print("&");        int i = 0;        /* Ignore prefix, since it's just going to be a Java class name.           if (prefix != null) {           prefix.accept(this);           i++;           }        */        visitArgs(args, i);        p.print(")");    }