diff --git a/spec/message.abnf b/spec/message.abnf index 8436fb9c99..465c7fd89b 100644 --- a/spec/message.abnf +++ b/spec/message.abnf @@ -61,13 +61,14 @@ reserved-statement = reserved-keyword [s reserved-body] 1*([s] expression) reserved-keyword = "." name ; Reserve additional sigils for use by future versions of this specification. -reserved-annotation = reserved-annotation-start reserved-body +reserved-annotation = reserved-annotation-start [[s] reserved-body] reserved-annotation-start = "!" / "%" / "*" / "+" / "<" / ">" / "?" / "~" ; Reserve sigils for private-use by implementations. -private-use-annotation = private-start reserved-body +private-use-annotation = private-start [[s] reserved-body] private-start = "^" / "&" -reserved-body = *([s] 1*(reserved-char / reserved-escape / quoted)) +reserved-body = reserved-body-part *([s] reserved-body-part) +reserved-body-part = reserved-char / reserved-escape / quoted ; Names and identifiers ; identifier matches https://www.w3.org/TR/REC-xml-names/#NT-QName diff --git a/spec/syntax.md b/spec/syntax.md index 3b4384c8e8..b826899751 100644 --- a/spec/syntax.md +++ b/spec/syntax.md @@ -610,7 +610,7 @@ wish to use a syntax exactly like other functions. Specifically: A _private-use annotation_ MAY be empty after its introducing sigil. ```abnf -private-use-annotation = private-start reserved-body +private-use-annotation = private-start [[s] reserved-body] private-start = "^" / "&" ``` @@ -653,10 +653,11 @@ While a reserved sequence is technically "well-formed", unrecognized _reserved-annotations_ or _private-use-annotations_ have no meaning. ```abnf -reserved-annotation = reserved-annotation-start reserved-body +reserved-annotation = reserved-annotation-start [[s] reserved-body] reserved-annotation-start = "!" / "%" / "*" / "+" / "<" / ">" / "?" / "~" -reserved-body = *([s] 1*(reserved-char / reserved-escape / quoted)) +reserved-body = reserved-body-part *([s] reserved-body-part) +reserved-body-part = reserved-char / reserved-escape / quoted ``` ## Markup