Алгоритм преобразования регулярного выражения в линейную грамматику


Каков стандартный алгоритм преобразования любого заданного регулярного выражения (RE) в левую (или правую) линейную грамматику?

Я знаю, что могу сделать это так (написать линейную грамматику из RE):

RegEx -> NFA -> DFA -> Right Linear grammar.

Для прямого подхода я могу обрабатывать простые регулярные выражения, такие как (0 + 10)*, и создавать линейную грамматику.
Но когда есть, скажем, вложенная звезда клина, очень трудно произвести CFG, который является линейным, без какого-либо четко определенного метода.

Я видел некоторые ответы на подобные вопросы. вопросы здесь и здесь. Но они не обеспечивают общего algo или не преобразуют регулярное выражение в линейную грамматику .

В частности, как я могу преобразовать это : (((01+10)*00)*11)* непосредственно в линейную грамматику, используя некоторый алгоритм?

Любая помощь ценится.

EDIT

Сделал еще несколько поисков. И получил вот это.
Построение эквивалентной регулярной грамматики из регулярного выражения

1 2

1 ответ: