((ab)|b)(a|(ba)*)a转换成右线性文法
时间: 2023-09-14 22:15:46 浏览: 89
首先,将正则表达式转换为NFA:
```
1 2 3
-------->q0-------->q1------->q2
a|(ba)* b|a
```
然后,将NFA转换为DFA:
```
{q0} {q1} {q2} {q3} {q4}
------- ------- ------- ------- -------
| a: {q1} | a,b: {q1,q2} | a,b: {q1,q3} | a: {q4} | a,b: {q1,q2}
| b: {q0,q3} | | | |
| | | | b: {q2} |
| | | b: {q4} | |
| | a: {q3} | | |
| | | | |
------- ------- ------- ------- -------
```
最后,将DFA转换为右线性文法:
```
S -> aS | aB | a
B -> bA | b
A -> aA | bA | ε
```
阅读全文