Package com.google.caja.lexer

Examples of com.google.caja.lexer.TokenConsumer


  @Override
  public Object getValue() { return null; }

  public void render(RenderContext rc) {
    TokenConsumer out = rc.getOut();
    out.mark(getFilePosition());
    Expression e = getExpression();
    if (e instanceof FunctionConstructor
        || e instanceof ObjectConstructor
        || startsWithRegex(e)) {
      // We need to parenthesize Object constructors because otherwise an
      // object constructor with only one entry:
      //   { x : 4 }
      // is ambiguous.  It could be a block containing a labeled expression
      // statement, and depending on semicolon insertion.

      // We need to parenthesize Function constructors because otherwise
      // we might output something like
      //   function a () {
      //     ;
      //   };
      // which is interpreted as two statements -- a declaration and a noop for
      // the semicolon.

      // Rhino fails to parse
      //   if(...)/foo/.test(x)?bar:baz;
      // so we parenthesize operator trees whose left-most operand is a regex
      // literal.

      out.consume("(");
      e.render(rc);
      out.consume(")");
    } else {
      e.render(rc);
    }
  }
View Full Code Here


      throw new IllegalStateException();
    }
  }

  public void render(RenderContext r) {
    TokenConsumer out = r.getOut();
    out.mark(getFilePosition());
    out.consume("set");
    out.consume(" ");
    // ES5 allows quoted property names after get/set, but many ES3
    // implementations that implement a getter/setter abbreviated syntax
    // do not, and it introduces no ambiguity.
    renderPropertyName(r, true);
    FunctionConstructor fn = getFunction();
View Full Code Here

    return sb.toString();
  }

  private String renderJs(CajoledModule cajoled, boolean debug) {
    StringBuilder rendered = new StringBuilder();
    TokenConsumer tc = debug
        ? new JsPrettyPrinter(new Concatenator(rendered))
        : new JsMinimalPrinter(new Concatenator(rendered));
    cajoled.render(new RenderContext(tc)
        .withAsciiOnly(true)
        .withEmbeddable(true));
    tc.noMoreTokens();
    return rendered.toString();
  }
View Full Code Here

      html = Nodes.render(result.html);
    }

    if (!result.hasErrors && null != result.js) {
      StringBuilder builder = new StringBuilder();
      TokenConsumer tc = request.getDebug() ?
          new JsPrettyPrinter(new Concatenator(builder))
          : new JsMinimalPrinter(new Concatenator(builder));
      RenderContext rc = new RenderContext(tc)
          .withAsciiOnly(true)
          .withEmbeddable(true);
View Full Code Here

      html = Nodes.render(result.html);
    }

    if (!result.hasErrors && null != result.js) {
      StringBuilder builder = new StringBuilder();
      TokenConsumer tc = request.getDebug() ?
          new JsPrettyPrinter(new Concatenator(builder))
          : new JsMinimalPrinter(new Concatenator(builder));
      RenderContext rc = new RenderContext(tc)
          .withAsciiOnly(true)
          .withEmbeddable(true);
View Full Code Here

    return sb.toString();
  }

  private String renderJs(CajoledModule cajoled, boolean debug) {
    StringBuilder rendered = new StringBuilder();
    TokenConsumer tc = debug
        ? new JsPrettyPrinter(new Concatenator(rendered))
        : new JsMinimalPrinter(new Concatenator(rendered));
    cajoled.render(new RenderContext(tc)
        .withAsciiOnly(true)
        .withEmbeddable(true));
    tc.noMoreTokens();
    return rendered.toString();
  }
View Full Code Here

      html = Nodes.render(result.html);
    }

    if (!result.hasErrors && null != result.js) {
      StringBuilder builder = new StringBuilder();
      TokenConsumer tc = request.getDebug() ?
          new JsPrettyPrinter(new Concatenator(builder))
          : new JsMinimalPrinter(new Concatenator(builder));
      RenderContext rc = new RenderContext(tc)
          .withAsciiOnly(true)
          .withEmbeddable(true);
View Full Code Here

    return sb.toString();
  }

  private String renderJs(CajoledModule cajoled, boolean debug) {
    StringBuilder rendered = new StringBuilder();
    TokenConsumer tc = debug
        ? new JsPrettyPrinter(new Concatenator(rendered))
        : new JsMinimalPrinter(new Concatenator(rendered));
    cajoled.render(new RenderContext(tc)
        .withAsciiOnly(true)
        .withEmbeddable(true));
    tc.noMoreTokens();
    return rendered.toString();
  }
View Full Code Here

      html = Nodes.render(result.html);
    }

    if (!result.hasErrors && null != result.js) {
      StringBuilder builder = new StringBuilder();
      TokenConsumer tc = request.getDebug() ?
          new JsPrettyPrinter(new Concatenator(builder))
          : new JsMinimalPrinter(new Concatenator(builder));
      RenderContext rc = new RenderContext(tc)
          .withAsciiOnly(true)
          .withEmbeddable(true);
View Full Code Here

      passed = compiler.run();

      CajoledModule outputJs = passed ? compiler.getJavascript() : null;

      StringBuilder jsOut = new StringBuilder();
      TokenConsumer printer;
      if ("1".equals(req.getParam("debug"))) {
        printer = new JsPrettyPrinter(new Concatenator(jsOut));
      } else {
        printer = new JsMinimalPrinter(new Concatenator(jsOut));
      }
View Full Code Here

TOP

Related Classes of com.google.caja.lexer.TokenConsumer

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.