Rule dispositionField() { return Sequence( push(Disposition.builder()), "Disposition", ":", ows(), dispositionMode(), ows(), ";", ows(), dispositionType(), Optional( Sequence( ows(), "/", ows(), dispositionModifier(), ACTION(addDispositionModifier()), ZeroOrMore( Sequence( ows(), ",", dispositionModifier(), ACTION(addDispositionModifier()))))), ows(), ACTION(buildDispositionField())); }
Rule mtaName() { return ZeroOrMore(text()); }
Rule obsDomain() { return Sequence(atom(), ZeroOrMore(Sequence(".", atom()))); }
Rule domainLiteral() { return Sequence(Optional(cfws()), "[", ZeroOrMore(Sequence(Optional(fws()), dtext()), Optional(fws()), "]", Optional(cfws()))); }
Rule genericAddress() { return ZeroOrMore(text()); }
Rule uaProduct() { return ZeroOrMore(Sequence(Optional(fws()), text())); }
Rule uaName() { return ZeroOrMore(textNoSemi()); }
Rule obsLocalPart() { return Sequence(word(), ZeroOrMore(Sequence(".", word()))); }
Rule dotAtomText() { return Sequence(OneOrMore(atext()), ZeroOrMore(Sequence(".", OneOrMore(atext())))); }
Rule dispositionNotificationContent() { return Sequence( push(MDNReport.builder()), Optional(Sequence(reportingUaField(), ACTION(setReportingUaField()), crlf())), Optional(Sequence(mdnGatewayField(), ACTION(setMdnGatewayField()), crlf())), Optional(Sequence(originalRecipientField(), ACTION(setOriginalRecipientField()), crlf())), Sequence(finalRecipientField(), ACTION(setFinalRecipientField()), crlf()), Optional(Sequence(originalMessageIdField(), ACTION(setOriginalMessageIdField()), crlf())), Sequence(dispositionField(), ACTION(setDispositionField()), crlf()), ZeroOrMore(Sequence(errorField(), ACTION(addErrorField()), crlf())), ZeroOrMore(Sequence(extentionField(), ACTION(addExtensionField()), crlf())), ACTION(buildMDNReport())); }
Rule comment() { return Sequence( "(", ZeroOrMore(Sequence( Optional(fws()), ccontent() )), Optional(fws()), ")"); }
Rule extentionField() { return Sequence( push(ExtensionField.builder()), extensionFieldName(), ACTION(setExtensionFieldName()), ":", ZeroOrMore(Sequence(Optional(fws()), text())), ACTION(setExtensionText()), ACTION(buildExtension())); }
Rule obsFWS() { return Sequence( OneOrMore(wsp()), ZeroOrMore(Sequence( crlf(), OneOrMore(wsp())))); }
Rule errorField() { return Sequence( "Error", ":", ZeroOrMore(Sequence(Optional(fws()), text())), push(new Error(Text.fromRawText(match())))); }
Rule quotedString() { return Sequence( Optional(cfws()), Sequence(dquote(), ZeroOrMore(Sequence(Optional(fws()), qcontent()), Optional(fws()), dquote())), Optional(cfws())); }
Rule fws() { return FirstOf( Sequence( Optional(Sequence( ZeroOrMore(wsp()), crlf())), OneOrMore(wsp())), obsFWS()); }