我无法为下面的正则表达式提出左线性和右线性语法。
0(0+1)*+10^+
我对加号闭包的作用也很困惑。
这是我得到的左线性语法,但我不确定这是否正确:
P: S--> 0A | 1A
A--> A0|A1|0S|0| epsilon
谢谢!
答案 0 :(得分:1)
查找左线性语法和右线性语法的一种常用方法是找到与正则表达式具有相同语言的NFA,然后使用以下机械变换将该NFA转换为左线性语法或右线性语法: / p>
然后,对于左线性语法:
然后,对于右线性语法:
尝试在这里应用这个想法,你最终会为你的语言生成左线性语法和右线性语法。它们可能不是最有效的语法,但它们可以工作。