Rule Template() { return Sequence( TEMPLATE, Optional(PUBLIC, Template.isPublic(true)), InvokableDeclaration(), Template.declaration()); }
Rule TemplateBody() { return Sequence( TextBlock(), Template.addParts(), ZeroOrMore( Sequence( Directive(), Template.addParts(), TextBlock(), Template.addParts()))); }
Rule TemplateDirective() { return Sequence( Template.builder(), TemplateStart(), TemplateBody(), TemplateEnd(), Template.build()); }