这些BNF的代码很难让我理解

时间:2015-08-07 07:49:29

标签: computer-science bnf ebnf

我读了一篇关于BNF的论文,有些代码我不明白。

terminal ::=
    """value":"value"""
value ::=
    ["$"]letters_and_or_digits

我不明白"""value":"value"""的意思。

letters_and_digits没有更多定义。这是否有效?或者,如果我想定义letters_and_or_digits。我该怎么办?

谢谢。

1 个答案:

答案 0 :(得分:0)

假设来自[1]的地方,据说它在扩展的BNF中,我会用文字和字符类将其翻译成BNF,如下所示:

terminal ::= quote value quote
quote ::= '"' 

value ::= letters_and_or_digits
value ::= sigil letters_and_or_digits
sigil ::= '$' 
letters_and_or_digits ::= [a-zA-Z0-9]+

注意:EBNF中的[]表示一个选项,因此["$"]letters_and_or_digits是。letters_and_or_digits     解释为裸letters_and_or_digits或     $前面有{{1}}。

[1]"所有语法文件都是使用扩展名编写的 Backus Naur Form(BNF)语法" - http://www.exida.com/images/uploads/On%20Shaky%20Ground%20-%20NPIC_HMIT_2006%20Paper.pdf