package org.jtwig.parser.parboiled; import org.jtwig.model.tree.Node; import org.jtwig.model.tree.TextNode; import org.jtwig.parser.parboiled.base.PositionTrackerParser; import org.jtwig.parser.parboiled.node.CompositeNodeParser; import org.jtwig.parser.parboiled.node.ExtendsNodeParser; import org.jtwig.parser.parboiled.node.NodeParser; import org.parboiled.Rule; public class DocumentParser extends NodeParser<Node> { public DocumentParser(ParserContext context) { super(DocumentParser.class, context); } @Override public Rule NodeRule() { return Sequence( FirstOf( parserContext().parser(ExtendsNodeParser.class).NodeRule(), parserContext().parser(CompositeNodeParser.class).NodeRule(), push(new TextNode(parserContext().parser(PositionTrackerParser.class).currentPosition(), "", new TextNode.Configuration())) ), EOI ); } }