@@ -320,7 +320,7 @@ Examples:
320320Placeholders can contain expressions and markup elements.
321321
322322``` ebnf
323- Placeholder ::= '{' (Expression | MarkupStart | MarkupEnd) '}'
323+ Placeholder ::= '{' (Expression | Markup | MarkupEnd) '}'
324324```
325325
326326### Expressions
@@ -340,6 +340,8 @@ Expression ::= Operand Annotation? | Annotation
340340Operand ::= Literal | Variable
341341Annotation ::= Function Option*
342342Option ::= Name '=' (Literal | Nmtoken | Variable)
343+ Variable ::= '$' Name /* ws: explicit */
344+ Function ::= ':' Name /* ws: explicit */
343345```
344346
345347Examples:
@@ -377,8 +379,9 @@ They mimic XML elements, but do not require well-formedness.
377379Standalone display elements should be represented as function expressions.
378380
379381``` ebnf
380- MarkupStart ::= Name Option*
381- MarkupEnd ::= '/' Name
382+ Markup ::= MarkupStart Option*
383+ MarkupStart ::= '+' Name /* ws: explicit */
384+ MarkupEnd ::= '-' Name /* ws: explicit */
382385```
383386
384387Examples:
@@ -412,7 +415,9 @@ AnyChar ::= [#x0-#x10FFFF]
412415### Names
413416
414417The _ name_ token is used for variable names (prefixed with ` $ ` ),
415- function names (prefixed with ` : ` ) as well as option names.
418+ function names (prefixed with ` : ` ),
419+ markup names (prefixed with ` + ` or ` - ` ),
420+ as well as option names.
416421A name cannot start with an ASCII digit and certain basic combining characters.
417422Otherwise, the set of characters allowed in names is large.
418423
@@ -427,8 +432,6 @@ and [defined in CLDR](https://unicode-org.github.io/cldr-staging/charts/latest/g
427432uses Nmtokens.
428433
429434``` ebnf
430- Variable ::= '$' Name /* ws: explicit */
431- Function ::= ':' Name /* ws: explicit */
432435Name ::= NameStart NameChar* /* ws: explicit */
433436Nmtoken ::= NameChar+ /* ws: explicit */
434437NameStart ::= [a-zA-Z] | "_"
0 commit comments