文档中的 EBNF 语法声明

ANSI CL 标准使用扩展的 EBNF 语法表示法。Stackoverflow 上复制的文档应使用相同的语法表示法来减少混淆。

例:

specialized-lambda-list::=
     ({var | (var parameter-specializer-name)}* 
      [&optional {var | (var [initform [supplied-p-parameter] ])}*] 
      [&rest var] 
      [&key{var | ({var | (keywordvar)} [initform [supplied-p-parameter] ])}*
           [&allow-other-keys] ] 
      [&aux {var | (var [initform] )}*] ) 

符号:

  • [foo] - >零或一个 foo
  • {foo}* - >零或更多 foo
  • foo | bar - > foobar