Statement stat;
while(it.hasNext()) {
stat=(Statement) it.next();
if(stat instanceof PrintOut) {
PrintOut printOut = ((PrintOut)stat);
Expression e = printOut.getExpr();
if(!(e instanceof Literal)) {
Expression expr=removeCastString(e);
if(expr instanceof Variable) {
// do not preserve BIF PreserveSingleQuotes return value
Member member = ((Variable)expr).getFirstMember();
if(member instanceof BIF) {
BIF bif=(BIF) member;
if(bif.getClazz().getName().equals(PreserveSingleQuotes.class.getName())) {
printOut.setExpr(bif.getArguments()[0].getValue());
continue;
}
else if(bif.getClazz().getName().equals(ListQualify.class.getName())) {
Argument[] args = bif.getArguments();
List<Argument> arr=new ArrayList<Argument>();
// first get existing arguments
arr.add(args[0]);
arr.add(args[1]);
if(args.length>=3)arr.add(args[2]);
else arr.add(new Argument(LitString.toExprString(","),"string"));
if(args.length>=4)arr.add(args[3]);
else arr.add(new Argument(LitString.toExprString("all"),"string"));
if(args.length>=5)arr.add(args[4]);
else arr.add(new Argument(LitBoolean.toExprBoolean(false),"boolean"));
// PSQ-BIF DO NOT REMOVE THIS COMMENT
arr.add(new Argument(LitBoolean.toExprBoolean(true),"boolean"));
bif.setArguments(arr.toArray(new Argument[arr.size()]));
continue;
}
else if(
bif.getClazz().getName().equals(QuotedValueList.class.getName()) ||
bif.getClazz().getName().equals(ValueList.class.getName())
) {
//printOut.setPreserveSingleQuote(false);
continue;
}
}
// do not preserve UDF return value
member= ((Variable)expr).getLastMember();
if(member instanceof UDF) continue;
}
printOut.setCheckPSQ(true);
if(e!=expr)printOut.setExpr(expr);
}
}
else if(stat instanceof Tag){
Body b=((Tag)stat).getBody();
if(b!=null)