ISO EBNF 中的异常内容

Contents of exceptions in ISO EBNF

在 ISO 14977 EBNF 标准中,第 4.7 节描述了异常的合法内容。我相当确定异常可能包含任何有效的句法因素,只要它不包含任何元标识符即可。这意味着可以像这样使用特殊序列作为例外

syntax =
    my rule - ? Something clever ? ;

是这样吗?

您可以在 ISO here.

免费获得标准

不,那是不正确的。您可以在异常中使用元标识符,只要在完全评估时它们会产生终端。 4.7 节中给出的示例显示了根据自身定义的元标识符,它永远无法完全解析为终端。这就是他们说的意思:

...could equally be represented by a syntactic-factor containing no meta-identifiers.

标准本身中有很多这样的例子 - 检查第 8 节。例如:

gap free symbol = terminal character - (first quote symbol | second quote symbol)