@@ -238,6 +238,34 @@ or for private implementation use that is not supported by the current implement
238238> * {{The value is not one.}}
239239> ```
240240
241+ ### Invalid Expression
242+
243+ An **_<dfn>Invalid Expression</dfn>_** error occurs when a _message_ includes an _expression_
244+ whose implementation-defined internal requirements produce an error during _function resolution_
245+ or when a _function_ returns a value (such as `null`) that the implementation does not support.
246+
247+ An **_<dfn>Operand Mismatch Error</dfn>_** is an _Invalid Expression_ error that occurs when
248+ an _operand_ provided to a _function_ during _function resolution_ does not match one of the
249+ expected implementation-defined types for that function;
250+ or in which a literal _operand_ value does not have the required format
251+ and thus cannot be processed into one of the expected implementation-defined types
252+ for that specific _function_.
253+
254+ > For example, the following _message_ produces an _Operand Mismatch Error_
255+ > (a type of _Invalid Expression_ error)
256+ > because the literal `|horse|` does not match the production `number-literal`,
257+ > which is a requirement of the function `:number` for its operand:
258+ > ```
259+ > .local $horse = {horse :number}
260+ > {{You have a {$horse}.}}
261+ > ```
262+ > The following _message_ might produce an _Invalid Expression_ error if the
263+ > the function `:function` threw an exception or otherwise emitted an error
264+ > rather than returning a valid value:
265+ >```
266+ > {{This has an invalid expression {$var :function} because it has a bug in it.}}
267+ >```
268+
241269### Unsupported Statement
242270
243271An **_<dfn>Unsupported Statement</dfn>_** error occurs when a message includes a _reserved statement_.
0 commit comments