如何为这个树相关的操作编写BNF?

时间:2014-02-25 16:51:58

标签: syntax bnf

我们有这样一棵树:

enter image description here

我们可以将其转换为dotstring representation,即

  

这样的树可以由其节点的预订序列表示   其中插入点(。),其中空子树(nil)是   在树遍历期间遇到。

因此我们可以将图片中的树转换为'abd..e..c.fg...'

如果我要编写一个函数来执行此转换,那么它的BNFsyntax diagrams是什么?

1 个答案:

答案 0 :(得分:1)

目前尚不清楚你在问什么。如果您将字符串视为语言中的句子而将树视为解析的AST,则可能以下BNF是正确的:

tree ::= empty | node
empty ::= '.'
node ::= letter tree tree
letter ::= 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | ...