Language agnostic 在编程文档中,双冒号后跟等号(::=)意味着什么?
编程文档中的Language agnostic 在编程文档中,双冒号后跟等号(::=)意味着什么?,language-agnostic,symbols,Language Agnostic,Symbols,编程文档中的::=是什么意思? 例如在:或中。中,它在中表示“符号派生规则” 意思是: <symbol> ::= __expression__ ::=\uuuu表达式 非终结符由(定义为、构造自、派生自)\uuuuuuuu表达式\uuuuuuu 它被用来描述语言语法 请注意,这两个示例都在中,但使用了传统的BNF符号表达式分隔符(:=)。指定的元素语法。例如: identifier ::= (letter|"_") (letter | digit | "_")* 表示所有标
::=
是什么意思?
例如在:或中。中,它在中表示“符号派生规则” 意思是:
<symbol> ::= __expression__
::=\uuuu表达式
非终结符
由(定义为、构造自、派生自)\uuuuuuuu表达式\uuuuuuu
它被用来描述语言语法
请注意,这两个示例都在中,但使用了传统的BNF符号表达式分隔符(
:=
)。指定的元素语法。例如:
identifier ::= (letter|"_") (letter | digit | "_")*
表示所有标识符必须符合给定的语法规则。这是描述语言的(BNF)符号<代码>::=在此上下文中,表示定义为
例如,在您参考的Python语言文档中,标识符定义为字母或下划线,后跟字母、数字或下划线。然后符号继续描述字母和数字的定义,依此类推。正如其他人所说,它是BNF符号的一部分。维基百科有一个很好的例子,我在这里不再重复
::=
符号本身的历史和演变在(第29页之后)中进行了解释。您的答案中使用的“标识符”与m0skit0的答案中使用的“标识符”有什么区别吗?看起来两者都是名称,即识别或引用数据的方式。@AudiOishi否,
仅用于标记终端和非终端之间的差异。在EBNF中省略它们是正常的,因为引用了端子。在BNF中,终端不必被引用,因此必须有某种方法将其与非终端区分开来。我们有时还会看到一个冒号后跟一个等号(例如)。这是相同的意思吗?@ShaunLuttin是的,尽管它可能会与赋值运算符混淆。有没有解释为什么:=
表示“被定义为”?像+=
和
这样的符号有意义吗?