public void execute(IndentWriter writer, JadeModel model, JadeTemplate template) throws JadeCompilerException { // Pretty print multi-line text if (writer.isPp() && getNodes().size() > 1 && !writer.isEscape() && getNodes().get(0) instanceof TextNode && getNodes().get(1) instanceof TextNode) writer.prettyIndent(1, true); for (int i = 0; i < getNodes().size(); ++i) { // Pretty print text if (writer.isPp() && i > 0 && !writer.isEscape() && getNodes().get(i) instanceof TextNode && getNodes().get(i - 1) instanceof TextNode) writer.prettyIndent(1, false); getNodes().get(i).execute(writer, model, template); // Multiple text nodes are separated by newlines Node nextNode = null; if(i+1 < getNodes().size()) nextNode = getNodes().get(i + 1); if (nextNode !=null && getNodes().get(i) instanceof TextNode && nextNode instanceof TextNode) writer.append("\n"); } }
private Node blockExpansion() { if (peek() instanceof Colon) { Token token = expect(Colon.class); Colon colon = (Colon) token; BlockNode block = new BlockNode(); block.setLineNumber(colon.getLineNumber()); block.setFileName(filename); block.getNodes().add(parseExpr()); return block; } return block(); }
allNodes.addAll(blockNode.getNodes()); allNodes.addAll(prev.getAppended()); if(prev.getParser() == this){ appendedNodes.addAll(prev.getAppended()); appendedNodes.addAll(blockNode.getNodes()); }else{ appendedNodes.addAll(blockNode.getNodes()); appendedNodes.addAll(prev.getAppended()); LinkedList<Node> prependedNodes = new LinkedList<Node>(); if(prev.getParser() == this){ prependedNodes.addAll(blockNode.getNodes()); prependedNodes.addAll(prev.getPrepended()); }else{ prependedNodes.addAll(prev.getPrepended()); prependedNodes.addAll(blockNode.getNodes());
public BlockNode getIncludeBlock() { BlockNode ret = this; for (Node node : getNodes()) { if (node instanceof BlockNode && ((BlockNode) node).isYield()) { return (BlockNode) node; } else if (node instanceof TagNode && ((TagNode) node).isTextOnly()) { continue; } else if (node instanceof BlockNode && ((BlockNode) node).getIncludeBlock() != null) { ret = ((BlockNode) node).getIncludeBlock(); } else if (node.hasBlock()) { ret = ((BlockNode) node.getBlock()).getIncludeBlock(); } if(ret instanceof BlockNode && ((BlockNode) ret).isYield()){ return ret; } } return ret; }
public void execute(IndentWriter writer, JadeModel model, JadeTemplate template) throws JadeCompilerException { // Pretty print multi-line text if (writer.isPp() && getNodes().size() > 1 && !writer.isEscape() && getNodes().get(0) instanceof TextNode && getNodes().get(1) instanceof TextNode) writer.prettyIndent(1, true); for (int i = 0; i < getNodes().size(); ++i) { // Pretty print text if (writer.isPp() && i > 0 && !writer.isEscape() && getNodes().get(i) instanceof TextNode && getNodes().get(i - 1) instanceof TextNode) writer.prettyIndent(1, false); getNodes().get(i).execute(writer, model, template); // Multiple text nodes are separated by newlines Node nextNode = null; if(i+1 < getNodes().size()) nextNode = getNodes().get(i + 1); if (nextNode !=null && getNodes().get(i) instanceof TextNode && nextNode instanceof TextNode) writer.append("\n"); } }
private Node blockExpansion() { if (peek() instanceof Colon) { Token token = expect(Colon.class); Colon colon = (Colon) token; BlockNode block = new BlockNode(); block.setLineNumber(colon.getLineNumber()); block.setFileName(filename); block.getNodes().add(parseExpr()); return block; } return block(); }
allNodes.addAll(blockNode.getNodes()); allNodes.addAll(prev.getAppended()); if(prev.getParser() == this){ appendedNodes.addAll(prev.getAppended()); appendedNodes.addAll(blockNode.getNodes()); }else{ appendedNodes.addAll(blockNode.getNodes()); appendedNodes.addAll(prev.getAppended()); LinkedList<Node> prependedNodes = new LinkedList<Node>(); if(prev.getParser() == this){ prependedNodes.addAll(blockNode.getNodes()); prependedNodes.addAll(prev.getPrepended()); }else{ prependedNodes.addAll(prev.getPrepended()); prependedNodes.addAll(blockNode.getNodes());
public BlockNode getIncludeBlock() { BlockNode ret = this; for (Node node : getNodes()) { if (node instanceof BlockNode && ((BlockNode) node).isYield()) { return (BlockNode) node; } else if (node instanceof TagNode && ((TagNode) node).isTextOnly()) { continue; } else if (node instanceof BlockNode && ((BlockNode) node).getIncludeBlock() != null) { ret = ((BlockNode) node).getIncludeBlock(); } else if (node.hasBlock()) { ret = ((BlockNode) node.getBlock()).getIncludeBlock(); } if(ret instanceof BlockNode && ((BlockNode) ret).isYield()){ return ret; } } return ret; }