package org.jtwig.parser.parboiled.base; import org.jtwig.parser.config.SyntaxConfiguration; import org.jtwig.parser.parboiled.ParserContext; import org.parboiled.Rule; public class SpacingParser extends BasicParser<Object> { public SpacingParser(ParserContext context) { super(SpacingParser.class, context); } public Rule Spacing () { SyntaxConfiguration syntaxConfiguration = parserContext().syntaxConfiguration(); return ZeroOrMore(FirstOf( OneOrMore(AnyOf(" \t\r\n\f").label("Whitespace")), Sequence(syntaxConfiguration.getStartComment(), ZeroOrMore(TestNot(syntaxConfiguration.getEndComment()), ANY), syntaxConfiguration.getEndComment()) )); } public Rule Mandatory() { return Sequence( AnyOf(" \t\r\n\f"), Spacing() ); } }