Package railo.transformer.bytecode.statement

Examples of railo.transformer.bytecode.statement.PrintOut


    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)
View Full Code Here


  public static void removeLiterlChildren(Tag tag, boolean recursive) {
    Body body=tag.getBody();
    if(body!=null) {
          List<Statement> list = body.getStatements();
          Statement[] stats = list.toArray(new Statement[list.size()]);
          PrintOut po;
          Tag t;
          for(int i=0;i<stats.length;i++) {
              if(stats[i] instanceof PrintOut) {
                po=(PrintOut) stats[i];
                if(po.getExpr() instanceof Literal) {
                  body.getStatements().remove(po);
                }
              }
              else if(recursive && stats[i] instanceof Tag) {
                t=(Tag) stats[i];
View Full Code Here

            if(text.length()>0)  {
              parent.addPrintOut(text.toString(),null,null);
              text=new StringBuffer();
            }
                        Position line = data.cfml.getPosition();
            PrintOut po;
            parent.addStatement(po=new PrintOut(transformer.transform(data.page,data.ep,data.flibs,data.scriptTags,data.cfml,data.settings),line,null));
            po.setEnd(data.cfml.getPosition());
           
            if(!data.cfml.isCurrent('#'))
              throw new TemplateException(data.cfml,"missing terminating [#] for expression");
          }
        }
View Full Code Here

        while (it.hasNext()) {
          stat = it.next();
          if(stat==last) break;
         
          if(stat instanceof PrintOut){
            PrintOut po=(PrintOut) stat;
            Expression expr = po.getExpr();
            if(!(expr instanceof LitString) || !StringUtil.isWhiteSpace(((LitString)expr).getString())) {
              last=null;
              break;
            }
          }
        }
      }
    }
   
   
   
    Iterator<Statement> it = statements.iterator();
    boolean beforeLastArgument=last!=null;
    while (it.hasNext()) {
      stat = it.next();
      if(beforeLastArgument) {
        if(stat==last) {
          beforeLastArgument=false;
        }
        else if(stat instanceof PrintOut){
          PrintOut po=(PrintOut) stat;
          Expression expr = po.getExpr();
          if(expr instanceof LitString) {
            LitString ls=(LitString) expr;
            if(StringUtil.isWhiteSpace(ls.getString())) continue;
          }
        }
View Full Code Here

  }

  public void addPrintOut(String str, Position start,Position end) {
    if(concatPrintouts(str)) return;
   
    last=new PrintOut(new LitString(str,start,end),start,end);
        last.setParent(this);
        this.statements.add(last);
  }
View Full Code Here

        this.statements.add(last);
  }
 
  private boolean concatPrintouts(String str) {
    if(last instanceof PrintOut)  {
      PrintOut po=(PrintOut) last;
      Expression expr = po.getExpr();
      if(expr instanceof LitString) {
        LitString lit=(LitString)expr;
        if(lit.getString().length()<1024) {
          po.setExpr(LitString.toExprString(lit.getString().concat(str),lit.getStart(),lit.getEnd()));
          return true;
        }
      }
    }
    return false;
View Full Code Here

TOP

Related Classes of railo.transformer.bytecode.statement.PrintOut

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.