Я хотел бы, чтобы убедиться, что я преобразование этого регулярного выражения в правых линейные грамматик правильно на основе информации из этого предыдущего вопроса и замечательного ответа по Grijesh: Left-Linear and Right-Linear GrammarsПреобразования регулярных выражений в регулярную грамматике/правая линейную грамматику
Здесь возникает вопрос: «Напишите правильную (правую линейную) грамматику, которая порождает множество строк, обозначенных регулярным выражением ((10) + (011 + 1) +) * (0 + 101) *."
А вот грамматик я застроенные, с моим последним из которых на дне:
1:
S --> 1
0:
S --> 0
10:
S --> 1A
A --> 0
(10)+:
S --> 1A
A --> 0 | 0S
011:
S --> 0A
A --> 1B
B --> 1
(011 + 1):
S --> 0A | 1
A --> 1B
B --> 1
(011 + 1)+:
S --> 0A | 1 | 1S
A --> 1B
B --> 1 | 1S
(10)+ (011 + 1)+:
S --> 1A
A --> 0S | 0B
B --> 0C | 1 | 1B
C --> 1D
D --> 1 | 1B
((10)+ (011 + 1)+)*:
S --> 1A | ε
A --> 0S | 0B
B --> 0C | 1 | 1B
C --> 1D
D --> 1 | 1B
0:
S --> 0
101:
S --> 1A
A --> 0B
B --> 1
(0 + 101):
S --> 0 | 1A
A --> 0B
B --> 1
(0 + 101)*:
S --> 0 | 1A | ε
A --> 0B
B --> 1
((10)+ (011 + 1)+)* (0 + 101)*:
S --> 1A | ε | E
A --> 0S | 0B
B --> 0C | 1 | 1B
C --> 1D
D --> 1 | 1B | 1E
E --> 0 | 1F | ε
F --> 0G | 0E
G --> 1 | 1E
Может кто-нибудь помочь мне проверить, является ли правильным? Спасибо, пучки! : D