BNF表示十六进制数

时间:2015-01-28 12:29:02

标签: grammar context-free-grammar bnf

作为家庭作业,我必须为十六进制数<hex>编写BNF定义。

这是使用<digit><letter>完成的,两者都定义如下:

<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<letter> ::= A | B | C | D | E | F

教科书答案如下:

<hex> ::= <digit> | <letter> | <hex> <digit> | <hex> <letter>

我同意这是一个正确的答案,但我想问一下答案是否正确如下:

<hex> ::= <digit> | <letter> | <hex> <hex>

1 个答案:

答案 0 :(得分:1)

不,看看textbook grammar vs.产生的解析树 suggested grammarcode)。注意:解析树代表派生。