addText(stack, g1); expression(stack, prefix, txt, whole); addText(stack, nl1); addText(stack, sp1); expression(stack, prefix, txt, whole); addText(stack, sp2); addText(stack, nl2); addText(stack, nl1); addText(stack, sp1); block(stack, prefix, txt, whole); addText(stack, sp2); addText(stack, nl2); addText(stack, s.substring(pos));
private static void block(Stack<XNode> stack, char prefix, String stat, String whole) { U.must(!stat.isEmpty(), "Empty block!"); switch (prefix) { case '#': stack.push(new XNode(XNode.OP.OP_FOREACH, stat)); break; case '?': stack.push(new XNode(XNode.OP.OP_IF, stat)); break; case '^': case '!': stack.push(new XNode(XNode.OP.OP_IF_NOT, stat)); break; case '/': close(stack, stat); break; default: throw U.rte("Invalid block: %s", stat); } }
@Override public Template compile(String source, Class<?> modelType) { return new RapidoidTemplate(null, TemplateParser.parse(source).compile(modelType), this); }
addText(stack, g1); expression(stack, prefix, txt, whole); addText(stack, nl1); addText(stack, sp1); expression(stack, prefix, txt, whole); addText(stack, sp2); addText(stack, nl2); addText(stack, nl1); addText(stack, sp1); block(stack, prefix, txt, whole); addText(stack, sp2); addText(stack, nl2); addText(stack, s.substring(pos));
protected TemplateRenderer loadTemplate(String filename) { String content; try { content = templateStore.loadTemplate(filename); } catch (Exception e) { throw U.rte("Couldn't load template: " + filename, e); } return TemplateParser.parse(content).compile(); }
private static void block(Stack<XNode> stack, char prefix, String stat, String whole) { U.must(!stat.isEmpty(), "Empty block!"); switch (prefix) { case '#': stack.push(new XNode(XNode.OP.OP_FOREACH, stat)); break; case '?': stack.push(new XNode(XNode.OP.OP_IF, stat)); break; case '^': case '!': stack.push(new XNode(XNode.OP.OP_IF_NOT, stat)); break; case '/': close(stack, stat); break; default: throw U.rte("Invalid block: %s", stat); } }
@Override public Template compile(String source, Class<?> modelType) { return new RapidoidTemplate(null, TemplateParser.parse(source).compile(modelType), this); }
protected TemplateRenderer loadTemplate(String filename) { String content; try { content = templateStore.loadTemplate(filename); } catch (Exception e) { throw U.rte("Couldn't load template: " + filename, e); } return TemplateParser.parse(content).compile(); }