python bnf suite什么意思

Python045

python bnf suite什么意思,第1张

py thon bnf suite

巨蛇的BNF套件

suite英[swi:t]美[swit]

n.[计] (软件的) 套件(房间,器具等) 一套,一副[乐] 组曲随从

[例句]They had a fabulous time during their week in a suite at the Paris Hilton.

他们在巴黎希尔顿酒店的套房里度过了非常愉快的一周。

[其他]复数:suites

标准解释如下,希望能帮到你

句法和词法解析的描述采用经过改进的 BNF 语法标注。这包含以下定义样式:

name ::= lc_letter (lc_letter | "_")*

lc_letter ::= "a"..."z"

第一行表示 name 是 lc_letter 之后跟零个或多个 lc_letter 和下划线。而 lc_letter 则是任意单个 'a' 至 'z' 字符。(实际上在本文档中始终采用此规则来定义词法和语法规则的名称。)

每条规则的开头是一个名称 (即该规则所定义的名称) 加上 ::=。竖线 (|) 被用来分隔可选项;它是此标注中最灵活的操作符。星号 (*) 表示前一项的零次或多次重复;类似地,加号 (+) 表示一次或多次重复,而由方括号括起的内容 ([ ]) 表示出现零次或一次 (或者说,这部分内容是可选的)。* 和 + 操作符的绑定是最紧密的;圆括号用于分组。固定字符串包含在引号内。空格的作用仅限于分隔形符。每条规则通常为一行;有许多个可选项的规则可能会以竖线为界分为多行。

在词法定义中 (如上述示例),还额外使用了两个约定: 由三个点号分隔的两个字符字面值表示在指定 (闭) 区间范围内的任意单个 ASCII 字符。由尖括号 (<...>) 括起来的内容是对于所定义符号的非正式描述;既可以在必要时用来说明 '控制字符' 的意图。

它是此标注中最灵活的操作符。星号 (*) 表示前一项的零次或多次重复;类似地,加号 (+) 表示一次或多次重复,而由方括号括起的内容 ([ ]) 表示出现零次或一次 (或者说,这部分内容是可选的)。* 和 + 操作符的绑定是最紧密的;圆括号用于分组。固定字符串包含在引号内。空格的作用仅限于分隔形符。每条规则通常为一行;有许多个可选项的规则可能会以竖线为界分为多行

虽然所用的标注方式几乎相同,但是词法定义和句法定义是存在很大区别的: 词法定义作用于输入源中单独的字符,而句法定义则作用于由词法分析所生成的形符流。在下一章节 ("词法分析") 中使用的 BNF 全部都是词法定义;在之后的章节中使用的则是句法定义。

用BNF描述的语法而已

   while_stmt ::= "while" expression ":" suite

                  ["else" ":" suite]

就表示“while语句”(while_stmt)的语法是

关键词"while"后跟表达式(expression),后跟符号":",然后是语句块(suite),后面还可以跟一个可选的部分(这个部分的语法是关键词"else"后跟符号":"然后跟一个语句块(suite))