Here are the examples of the java api class com.google.caja.lexer.TokenConsumer taken from open source projects.
1. SwitchStmt#render()
Project: caja
File: SwitchStmt.java
File: SwitchStmt.java
public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); String label = getRenderedLabel(); if (null != label) { out.consume(label); out.consume(":"); } Iterator<? extends ParseTreeNode> it = children().iterator(); out.consume("switch"); out.consume("("); it.next().render(rc); out.consume(")"); out.consume("{"); while (it.hasNext()) { SwitchCase caseStmt = (SwitchCase) it.next(); caseStmt.render(rc); } out.mark(FilePosition.endOfOrNull(getFilePosition())); out.consume("}"); }
2. ForLoop#render()
Project: caja
File: ForLoop.java
File: ForLoop.java
public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); String label = getRenderedLabel(); if (null != label) { out.consume(label); out.consume(":"); } out.consume("for"); out.consume("("); if (!(initializer instanceof Noop)) { initializer.render(rc); } out.consume(JsMinimalPrinter.NOOP); if (!(condition instanceof BooleanLiteral && ((BooleanLiteral) condition).getValue())) { condition.render(rc); } out.consume(JsMinimalPrinter.NOOP); if (!(increment instanceof Noop)) { increment.render(rc); } out.consume(")"); getBody().renderBlock(rc, false); }
3. ForEachLoop#render()
Project: caja
File: ForEachLoop.java
File: ForEachLoop.java
public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); String label = getRenderedLabel(); if (null != label) { out.consume(label); out.consume(":"); } out.consume("for"); out.consume("("); keyReceiver.render(rc); out.consume("in"); container.render(rc); out.consume(")"); body.renderBlock(rc, false); }
4. DoWhileLoop#render()
Project: caja
File: DoWhileLoop.java
File: DoWhileLoop.java
public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); String label = getRenderedLabel(); if (null != label) { out.consume(label); out.consume(":"); } out.consume("do"); body.renderBlock(rc, true); out.consume("while"); out.consume("("); condition.render(rc); out.consume(")"); }
5. WhileLoop#render()
Project: caja
File: WhileLoop.java
File: WhileLoop.java
public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); String label = getRenderedLabel(); if (null != label) { out.consume(label); out.consume(":"); } out.consume("while"); out.consume("("); condition.render(rc); out.consume(")"); body.renderBlock(rc, false); }
6. ObjectConstructor#render()
Project: caja
File: ObjectConstructor.java
File: ObjectConstructor.java
public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); out.consume("{"); boolean seen = false; for (ObjProperty prop : children()) { if (seen) { out.consume(","); out.consume("\n"); } else { seen = true; } prop.render(rc); } out.mark(FilePosition.endOfOrNull(getFilePosition())); out.consume("}"); }
7. FunctionDeclaration#render()
Project: caja
File: FunctionDeclaration.java
File: FunctionDeclaration.java
@Override public void render(RenderContext rc) { FunctionConstructor fc = getInitializer(); TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); out.consume("function"); getIdentifier().render(rc); out.consume("("); boolean seen = false; for (FormalParam p : fc.getParams()) { if (seen) { out.consume(","); } else { seen = true; } p.render(rc); } out.consume(")"); fc.getBody().renderBlock(rc, false); }
8. ArrayConstructor#render()
Project: caja
File: ArrayConstructor.java
File: ArrayConstructor.java
public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); FilePosition pos = getFilePosition(); out.mark(pos); out.consume("["); Expression last = null; for (Expression e : children()) { if (last != null) { out.consume(","); } last = e; if (!Operation.is(e, Operator.COMMA)) { if (!(e instanceof Elision)) { e.render(rc); } } else { out.consume("("); e.render(rc); out.consume(")"); } } out.mark(FilePosition.endOfOrNull(pos)); out.consume("]"); }
9. SetterProperty#render()
Project: caja
File: SetterProperty.java
File: SetterProperty.java
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(); fn.renderActuals(r); fn.renderBody(r); }
10. GetterProperty#render()
Project: caja
File: GetterProperty.java
File: GetterProperty.java
public void render(RenderContext r) { TokenConsumer out = r.getOut(); out.mark(getFilePosition()); out.consume("get"); 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(); fn.renderActuals(r); fn.renderBody(r); }
11. Nodes#render()
Project: caja
File: Nodes.java
File: Nodes.java
private static void render(DocumentType docType, Node node, Namespaces ns, RenderContext rc, boolean renderUnsafe) { StringBuilder sb = new StringBuilder(1 << 18); if (null != docType) { String rendering = renderDocumentType(docType); if (null != rendering) { sb.append(rendering); } } new Renderer(rc, sb, rc.markupRenderMode(), ns).render(node, ns, renderUnsafe); TokenConsumer out = rc.getOut(); FilePosition pos = getFilePositionFor(node); out.mark(FilePosition.startOf(pos)); out.consume(sb.toString()); out.mark(FilePosition.endOf(pos)); }
12. MultiDeclaration#render()
Project: caja
File: MultiDeclaration.java
File: MultiDeclaration.java
public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); if (children().isEmpty()) { throw new SomethingWidgyHappenedError("Empty MultiDeclaration"); } out.consume("var"); boolean seen = false; for (Declaration decl : children()) { if (seen) { out.consume(","); } else { seen = true; } decl.renderShort(rc); } }
13. FunctionConstructor#renderActuals()
Project: caja
File: FunctionConstructor.java
File: FunctionConstructor.java
void renderActuals(RenderContext rc) { TokenConsumer out = rc.getOut(); out.consume("("); boolean seen = false; for (FormalParam e : params) { if (seen) { out.consume(","); } else { seen = true; } e.render(rc); } out.consume(")"); }
14. CajaTestCase#minify()
Project: caja
File: CajaTestCase.java
File: CajaTestCase.java
protected static String minify(ParseTreeNode node) { if (node == null) { return null; } // Make sure it's a JS node. StringBuilder sb = new StringBuilder(); if (!(node.makeRenderer(sb, null) instanceof JsPrettyPrinter)) { throw new ClassCastException(node.getClass().getName()); } TokenConsumer tc = new JsMinimalPrinter(sb); node.render(new RenderContext(tc)); tc.noMoreTokens(); return sb.toString(); }
15. ParseTreeNodeTest#testRenderPostRemove2()
Project: caja
File: ParseTreeNodeTest.java
File: ParseTreeNodeTest.java
public final void testRenderPostRemove2() { doRemove(1); StringBuilder sb = new StringBuilder(); TokenConsumer tc = new JsPrettyPrinter(sb); root.render(new RenderContext(tc)); tc.noMoreTokens(); assertEquals("$0: {\n" + " $5: {\n" + " 6;\n" + " 7;\n" + " 8;\n" + " }\n" + "}", sb.toString()); }
16. ParseTreeNodeTest#testRenderPostRemove()
Project: caja
File: ParseTreeNodeTest.java
File: ParseTreeNodeTest.java
public final void testRenderPostRemove() { doRemove(5); StringBuilder sb = new StringBuilder(); TokenConsumer tc = new JsPrettyPrinter(sb); root.render(new RenderContext(tc)); tc.noMoreTokens(); assertEquals("$0: {\n" + " $1: {\n" + " 2;\n" + " 3;\n" + " 4;\n" + " }\n" + "}", sb.toString()); }
17. ParseTreeNodeTest#testRenderPostReplace()
Project: caja
File: ParseTreeNodeTest.java
File: ParseTreeNodeTest.java
public final void testRenderPostReplace() { doReplace(); StringBuilder sb = new StringBuilder(); TokenConsumer tc = new JsPrettyPrinter(sb); root.render(new RenderContext(tc)); tc.noMoreTokens(); assertEquals("$0: {\n" + " $1: {\n" + " 2;\n" + " 3;\n" + " 4;\n" + " }\n" + " $9: {\n" + " 10;\n" + " 11;\n" + " 12;\n" + " }\n" + "}", sb.toString()); }
18. ParseTreeNodeTest#testRender()
Project: caja
File: ParseTreeNodeTest.java
File: ParseTreeNodeTest.java
public final void testRender() { StringBuilder sb = new StringBuilder(); TokenConsumer tc = new JsPrettyPrinter(sb); root.render(new RenderContext(tc)); tc.noMoreTokens(); assertEquals("$0: {\n" + " $1: {\n" + " 2;\n" + " 3;\n" + " 4;\n" + " }\n" + " $5: {\n" + " 6;\n" + " 7;\n" + " 8;\n" + " }\n" + "}", sb.toString()); }
19. ParserTest#runRenderTest()
Project: caja
File: ParserTest.java
File: ParserTest.java
private void runRenderTest(String testFile, String goldenFile) throws Exception { Statement parseTree = js(fromResource(testFile)); checkFilePositionInvariants(parseTree); StringBuilder sb = new StringBuilder(); TokenConsumer tc = new JsPrettyPrinter(sb); RenderContext rc = new RenderContext(tc); parseTree.render(rc); tc.noMoreTokens(); sb.append('\n'); String golden = TestUtil.readResource(getClass(), goldenFile); String actual = sb.toString(); assertEquals(actual, golden, actual); }
20. ValueProperty#render()
Project: caja
File: ValueProperty.java
File: ValueProperty.java
public void render(RenderContext rc) { Expression value = children().get(1); TokenConsumer out = rc.getOut(); renderPropertyName(rc, false); out.consume(":"); if (!Operation.is(value, Operator.COMMA)) { value.render(rc); } else { out.mark(value.getFilePosition()); out.consume("("); value.render(rc); out.consume(")"); } }
21. RenderedExpression#render()
Project: caja
File: RenderedExpression.java
File: RenderedExpression.java
private static String render(ParseTreeNode n, boolean minify) { StringBuilder buf = new StringBuilder(); TokenConsumer tc; if (minify) { tc = new JsMinimalPrinter(new Concatenator(buf)); } else { tc = new JsPrettyPrinter(new Concatenator(buf)); } RenderContext rc = new RenderContext(tc); n.render(rc); tc.noMoreTokens(); return buf.toString(); }
22. Operation#renderParam()
Project: caja
File: Operation.java
File: Operation.java
private void renderParam(int i, RenderContext rc) { TokenConsumer out = rc.getOut(); ParseTreeNode e = children().get(i); out.mark(e.getFilePosition()); if (!parenthesize(op, 0 == i, (Expression) e)) { e.render(rc); } else { out.consume("("); e.render(rc); out.mark(FilePosition.endOfOrNull(getFilePosition())); out.consume(")"); } }
23. Declaration#renderShort()
Project: caja
File: Declaration.java
File: Declaration.java
/** * Renders the short form without the "var" keyword. * This is used in multi declarations, such as in * {@code for (var a = 0, b = 1, ...)}. */ void renderShort(RenderContext rc) { TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); if (identifier.getName() == null) { throw new IllegalStateException("null name for declaration at " + getFilePosition()); } identifier.render(rc); if (null != initializer) { out.consume("="); boolean isComma = Operation.is(initializer, Operator.COMMA); if (isComma) { out.consume("("); } initializer.render(rc); if (isComma) { out.consume(")"); } } }
24. Block#renderBody()
Project: caja
File: Block.java
File: Block.java
public void renderBody(RenderContext rc) { TokenConsumer out = rc.getOut(); for (Statement stmt : children()) { out.mark(stmt.getFilePosition()); stmt.render(rc); if (!stmt.isTerminal()) { out.mark(FilePosition.endOfOrNull(stmt.getFilePosition())); out.consume(";"); } } out.mark(FilePosition.endOfOrNull(getFilePosition())); }
25. UncajoledModule#render()
Project: caja
File: UncajoledModule.java
File: UncajoledModule.java
public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.consume("/* Start Uncajoled Module */"); out.consume("throw"); out.consume("'Uncajoled Module must never be executed'"); out.consume(";"); getModuleBody().render(rc); out.consume("/* End Uncajoled Module */"); }
26. TranslatedCode#render()
Project: caja
File: TranslatedCode.java
File: TranslatedCode.java
public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.consume("/* Start translated code */"); out.consume("throw"); out.consume("'Translated code must never be executed'"); out.consume(";"); children().get(0).render(rc); out.consume("/* End translated code */"); }
27. CatchStmt#render()
Project: caja
File: CatchStmt.java
File: CatchStmt.java
public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); out.consume("catch"); out.consume("("); out.mark(exception.getFilePosition()); exception.getIdentifier().render(rc); out.consume(")"); body.renderBlock(rc, false); }
28. WithStmt#render()
Project: caja
File: WithStmt.java
File: WithStmt.java
public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.consume("with"); out.consume("("); getScopeObject().render(rc); out.consume(")"); getBody().renderBlock(rc, false); }
29. SwitchCase#render()
Project: caja
File: SwitchCase.java
File: SwitchCase.java
public final void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); renderHead(rc); out.consume(":"); out.consume("\n"); Block body = getBody(); rc.getOut().mark(body.getFilePosition()); body.renderBody(rc); }
30. Block#renderBlock()
Project: caja
File: Block.java
File: Block.java
@Override public void renderBlock(RenderContext rc, boolean terminate) { TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); out.consume("{"); renderBody(rc); out.consume("}"); }
31. FunctionConstructor#render()
Project: caja
File: FunctionConstructor.java
File: FunctionConstructor.java
public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); out.consume("function"); String name = identifier.getName(); if (null != name) { out.consume(name); } renderActuals(rc); renderBody(rc); }
32. Declaration#render()
Project: caja
File: Declaration.java
File: Declaration.java
public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); out.consume("var"); renderShort(rc); }
33. DebuggerStmt#render()
Project: caja
File: DebuggerStmt.java
File: DebuggerStmt.java
public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); out.consume("debugger"); }
34. ContinueStmt#render()
Project: caja
File: ContinueStmt.java
File: ContinueStmt.java
public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); out.consume("continue"); if (null != label && !"".equals(label)) { out.consume(label); } }
35. BreakStmt#render()
Project: caja
File: BreakStmt.java
File: BreakStmt.java
public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); out.consume("break"); if (null != label && !"".equals(label)) { out.consume(label); } }
36. CajaTestCase#renderProgram()
Project: caja
File: CajaTestCase.java
File: CajaTestCase.java
/** * Returns a source code string for the given program without surrounding * curly braces. */ public static String renderProgram(Block program) { StringBuilder sb = new StringBuilder(); TokenConsumer tc = program.makeRenderer(sb, null); program.renderBody(new RenderContext(tc)); tc.noMoreTokens(); return sb.toString(); }
37. CajaTestCase#render()
Project: caja
File: CajaTestCase.java
File: CajaTestCase.java
public static String render(ParseTreeNode node) { if (node == null) { return null; } StringBuilder sb = new StringBuilder(); TokenConsumer tc = node.makeRenderer(sb, null); node.render(new RenderContext(tc)); tc.noMoreTokens(); return sb.toString(); }
38. ParseTreeNodeTest#testRenderPostInsert3()
Project: caja
File: ParseTreeNodeTest.java
File: ParseTreeNodeTest.java
public final void testRenderPostInsert3() { doInsert(-1); StringBuilder sb = new StringBuilder(); TokenConsumer tc = new JsPrettyPrinter(sb); root.render(new RenderContext(tc)); tc.noMoreTokens(); assertEquals("$0: {\n" + " $1: {\n" + " 2;\n" + " 3;\n" + " 4;\n" + " }\n" + " $5: {\n" + " 6;\n" + " 7;\n" + " 8;\n" + " }\n" + " $9: {\n" + " 10;\n" + " 11;\n" + " 12;\n" + " }\n" + "}", sb.toString()); }
39. ParseTreeNodeTest#testRenderPostInsert2()
Project: caja
File: ParseTreeNodeTest.java
File: ParseTreeNodeTest.java
public final void testRenderPostInsert2() { doInsert(1); StringBuilder sb = new StringBuilder(); TokenConsumer tc = new JsPrettyPrinter(sb); root.render(new RenderContext(tc)); tc.noMoreTokens(); assertEquals("$0: {\n" + " $9: {\n" + " 10;\n" + " 11;\n" + " 12;\n" + " }\n" + " $1: {\n" + " 2;\n" + " 3;\n" + " 4;\n" + " }\n" + " $5: {\n" + " 6;\n" + " 7;\n" + " 8;\n" + " }\n" + "}", sb.toString()); }
40. ParseTreeNodeTest#testRenderPostInsert()
Project: caja
File: ParseTreeNodeTest.java
File: ParseTreeNodeTest.java
public final void testRenderPostInsert() { doInsert(5); StringBuilder sb = new StringBuilder(); TokenConsumer tc = new JsPrettyPrinter(sb); root.render(new RenderContext(tc)); tc.noMoreTokens(); assertEquals("$0: {\n" + " $1: {\n" + " 2;\n" + " 3;\n" + " 4;\n" + " }\n" + " $9: {\n" + " 10;\n" + " 11;\n" + " 12;\n" + " }\n" + " $5: {\n" + " 6;\n" + " 7;\n" + " 8;\n" + " }\n" + "}", sb.toString()); }
41. ParserTest#assertMinified()
Project: caja
File: ParserTest.java
File: ParserTest.java
private void assertMinified(String code, String expectedRendering) throws Exception { StringBuilder sb = new StringBuilder(); TokenConsumer tc = new JsMinimalPrinter(sb); RenderContext rc = new RenderContext(tc); js(fromString(code)).children().get(0).render(rc); tc.noMoreTokens(); assertEquals(code, expectedRendering, sb.toString()); }
42. ParserTest#assertRender()
Project: caja
File: ParserTest.java
File: ParserTest.java
private void assertRender(String code, String expectedRendering) throws Exception { StringBuilder sb = new StringBuilder(); TokenConsumer tc = new JsPrettyPrinter(sb); RenderContext rc = new RenderContext(tc); js(fromString(code)).children().get(0).render(rc); tc.noMoreTokens(); assertEquals(code, expectedRendering, sb.toString()); }
43. RegexpLiteral#render()
Project: caja
File: RegexpLiteral.java
File: RegexpLiteral.java
@Override public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); String body = value.getMatchText(); String mods = value.getModifiers(); if ("".equals(body) || !areRegexpModifiersValid(mods)) { // (new (/./.constructor))('', 'g') out.consume("("); out.consume("new"); out.consume("("); out.consume("/./"); out.consume("."); out.consume("constructor"); out.consume(")"); out.consume("("); StringLiteral.renderUnquotedValue(body, rc); out.consume(","); StringLiteral.renderUnquotedValue(mods, rc); out.consume(")"); out.consume(")"); } else { StringBuilder sb = new StringBuilder(); sb.append('/'); Escaping.normalizeRegex(body, sb); sb.append('/'); sb.append(mods); out.consume(sb.toString()); } }
44. Operation#render()
Project: caja
File: Operation.java
File: Operation.java
public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); switch(op.getType()) { case PREFIX: out.consume(op.getSymbol()); renderParam(0, rc); if (op == Operator.CONSTRUCTOR) { // We emit zero-arg constructors without (), because it's shorter, // but that has implications in parenthesize() below. int n = children().size(); if (1 < n) { out.consume("("); for (int k = 1; k < n; k++) { if (1 < k) { out.consume(","); } renderParam(k, rc); } out.consume(")"); } } break; case POSTFIX: renderParam(0, rc); out.mark(FilePosition.endOfOrNull(getFilePosition())); out.consume(op.getSymbol()); break; case INFIX: renderParam(0, rc); switch(getOperator()) { default: // These spaces are necessary for security. // If they are not present, then rendered javascript might include // the strings ]]> or </script> which would prevent it from being // safely embedded in HTML or XML. out.consume(" "); out.consume(op.getSymbol()); out.consume(" "); renderParam(1, rc); break; case MEMBER_ACCESS: renderMemberAccess(rc); break; case COMMA: out.consume(op.getSymbol()); renderParam(1, rc); break; } break; case BRACKET: // Note that FUNCTION_CALL is a BRACKET operator; this is why we can // have any number of child expressions, not just two. renderParam(0, rc); out.consume(op.getOpeningSymbol()); boolean seen = false; for (ParseTreeNode e : children().subList(1, children().size())) { if (seen) { out.consume(","); } else { seen = true; } // make sure that comma operators are properly escaped if (!parenthesize(Operator.COMMA, false, (Expression) e)) { e.render(rc); } else { out.consume("("); e.render(rc); out.mark(FilePosition.endOfOrNull(e.getFilePosition())); out.consume(")"); } } out.mark(FilePosition.endOfOrNull(getFilePosition())); out.consume(op.getClosingSymbol()); break; case TERNARY: renderParam(0, rc); out.consume(op.getOpeningSymbol()); out.consume(" "); renderParam(1, rc); out.consume(op.getClosingSymbol()); out.consume(" "); renderParam(2, rc); break; } }
45. LabeledStmtWrapper#render()
Project: caja
File: LabeledStmtWrapper.java
File: LabeledStmtWrapper.java
public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); String label = getRenderedLabel(); if (null != label) { out.consume(label); out.consume(":"); } getBody().render(rc); }
46. ExpressionStmt#render()
Project: caja
File: ExpressionStmt.java
File: ExpressionStmt.java
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); } }
47. Conditional#render()
Project: caja
File: Conditional.java
File: Conditional.java
public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); out.mark(getFilePosition()); List<? extends ParseTreeNode> children = children(); int i = 0; int n = children.size(); for (; i + 2 <= n; i += 2) { Expression condition = (Expression) children.get(i); Statement body = (Statement) children.get(i + 1); if (i != 0) { out.consume("else"); } out.consume("if"); out.consume("("); condition.render(rc); out.consume(")"); boolean hanging = body.hasHangingConditional(); if (hanging) { out.consume("{"); } body.renderBlock(rc, i + 2 < n); if (hanging) { out.consume("}"); } } if (i < n) { Statement body = (Statement) children.get(i); out.consume("else"); body.renderBlock(rc, false); } }
48. Linter#render()
Project: caja
File: Linter.java
File: Linter.java
private static String render(ParseTreeNode node) { StringBuilder sb = new StringBuilder(); TokenConsumer tc = node.makeRenderer(sb, null); node.render(new RenderContext(tc)); tc.noMoreTokens(); return sb.toString(); }
49. RealLiteral#render()
Project: caja
File: RealLiteral.java
File: RealLiteral.java
@Override public void render(RenderContext rc) { TokenConsumer out = rc.getOut(); // environment. if (Double.isNaN(value)) { out.consume("("); out.consume("0"); out.consume("/"); out.consume("0"); out.consume(")"); } else if (Double.isInfinite(value)) { out.consume("("); if (value < 0) { out.consume("-"); } out.consume("1"); out.consume("/"); out.consume("0"); out.consume(")"); } else if (value == 0 && (1d / value) < 0) { out.consume("("); out.consume("-"); out.consume("0"); out.consume(")"); } else { super.render(rc); } }
50. Operation#renderMemberAccess()
Project: caja
File: Operation.java
File: Operation.java
private void renderMemberAccess(RenderContext rc) { TokenConsumer out = rc.getOut(); if (isKeywordAccess()) { out.consume(Operator.SQUARE_BRACKET.getOpeningSymbol()); StringLiteral.renderUnquotedValue(getMemberName(), rc); out.consume(Operator.SQUARE_BRACKET.getClosingSymbol()); } else { out.consume(op.getSymbol()); renderParam(1, rc); } }
51. ObjProperty#renderPropertyName()
Project: caja
File: ObjProperty.java
File: ObjProperty.java
protected final void renderPropertyName(RenderContext rc, boolean preferUnquoted) { StringLiteral key = (StringLiteral) children().get(0); TokenConsumer out = rc.getOut(); boolean unquoted = preferUnquoted; switch(rc.propertyNameQuotingMode()) { case NO_QUOTES: unquoted = true; break; case PRESERVE_QUOTES: String name = key.getValue(); if (name.length() == 0) { unquoted = true; } else { char ch = name.charAt(0); if (ch != '"' && ch != '\'') { unquoted = true; } } break; default: break; } if (unquoted || preferUnquoted) { String uqVal = key.getUnquotedValue(); if (ParserBase.isJavascriptIdentifier(uqVal) && !("get".equals(uqVal) || "set".equals(uqVal))) { out.mark(key.getFilePosition()); out.consume(uqVal); return; } } key.render(rc); }