2013-10-07 87 views

回答

0

不同的人對EBNF使用不同的語法,我不確定你正在使用哪一種語法。您在EBNF語法(ISO/IEC 14977:1996(E))是這樣的:

A = B, "x", {B, D}, "y", B; 
B = C, ("w" | "z"), C, D; 
C = "m", ["n"], D, E; 
D = ["q"]; 
E = ["p"]; 

假設你使用null爲空字符串。請注意,這可以進一步簡化。

有些作品必須加入到這一轉換成BNF:

  • { expr }可以通過插入一個生產P := empty | expr P其中empty代表空字符串替換。

  • [ expr ]可以替換爲插入P := empty | expr

  • 任何表達式(expr)都可以通過添加新的產品來替代 P := expr

因此,像這樣:

A -> B x F y B 
F -> empty | B D F 
B -> C G C D 
G -> w | z 
C -> m H D E 
H -> empty | n 
D -> q | empty 
E -> p | empty 

同樣,假設與null你指的是空字符串。