简体   繁体   English

为语言创建 CFG

[英]Create a CFG for language

I'm trying to create a cfg for this language L={(a^n)(b^m)(a^n) |我正在尝试为这种语言创建一个 cfg L={(a^n)(b^m)(a^n) | m,n>0}; m,n>0};

I tried putting S => aSba |我试着把 S => aSba | e The words generated at the beginning works, but from a certain size on, the "b" starts to get in the way. e 开始时生成的单词有效,但从某个大小开始,“b”开始妨碍。

what's expected: aba, aabaa, aabbaa...预期结果:aba,aabaa,aabbaa...

what's coming out: aSba, aaSbaa, aaaSbabaa...什么出来了:aSba,aaSbaa,aaaSbabaa...

Maybe that grammar:也许那个语法:

S = E
E = a G a
G = E
G = b K
K = b K
K = ε

In the ABNF meta-syntax you can write it as:在 ABNF 元语法中,您可以将其写为:

S = "a" (S / 1*"b") "a"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM