文档中的`::=` 和`|`
`::=` and `|` in Documentation
Python文档中到处都是::=
:
例如:
atom ::= identifier | literal | enclosure
我搜索并学习了它的 BNF 语法。
从几十个文件中提炼出一个大概的想法,确实不容易
在python中:
可以被认为是'assignment'符号的变体=
,
在Django的模板语法中,|
是函数符号。
BFN 中的 ::=
和 |
是什么?
在适用于许多语言文法的巴科斯-诺尔范式中,::=
表示对某个句法元素的定义,几乎就像一个宏。每 the Wikipedia page:
The "::=" means that the symbol on the left must be replaced with the expression on the right.
因此,假设定义了以下形式:
symbol ::= expression
表示出现symbol
的地方,替换为expression
。
|
表示 "or",因为 atom
被定义为标识符、文字或封装。同样,来自维基百科页面:
more sequences are separated by the vertical bar "|", indicating a choice, the whole being a possible substitution for the symbol on the left.
因此,当用“|”分隔时,左边的符号可以是左边表达式中的许多符号中的任何一个。总之,文档有效地说:"wherever there is an atom
, it means that there could be a literal, identifier, or enclosure there".
来自wikipedia:
The "::=" means that the symbol on the left must be replaced with the expression on the right.
|
符号代表独占OR
.
因此,这意味着您必须将 atom
替换为 identifier
、literal
或 enclosure
。
Python文档中到处都是::=
:
例如:
atom ::= identifier | literal | enclosure
我搜索并学习了它的 BNF 语法。
从几十个文件中提炼出一个大概的想法,确实不容易
在python中:
可以被认为是'assignment'符号的变体=
,
在Django的模板语法中,|
是函数符号。
BFN 中的 ::=
和 |
是什么?
在适用于许多语言文法的巴科斯-诺尔范式中,::=
表示对某个句法元素的定义,几乎就像一个宏。每 the Wikipedia page:
The "::=" means that the symbol on the left must be replaced with the expression on the right.
因此,假设定义了以下形式:
symbol ::= expression
表示出现symbol
的地方,替换为expression
。
|
表示 "or",因为 atom
被定义为标识符、文字或封装。同样,来自维基百科页面:
more sequences are separated by the vertical bar "|", indicating a choice, the whole being a possible substitution for the symbol on the left.
因此,当用“|”分隔时,左边的符号可以是左边表达式中的许多符号中的任何一个。总之,文档有效地说:"wherever there is an atom
, it means that there could be a literal, identifier, or enclosure there".
来自wikipedia:
The "::=" means that the symbol on the left must be replaced with the expression on the right.
|
符号代表独占OR
.
因此,这意味着您必须将 atom
替换为 identifier
、literal
或 enclosure
。