Изменения

Перейти к: навигация, поиск

Регулярная аппроксимация КС-языков

40 байт добавлено, 12:31, 18 декабря 2016
Псевдокод
<tex>q_b</tex> = createState
'''if getTheTypeOfMutualRecursiveSet'''(<tex> N_i </tex>) == '''left'''
'''foreach''' C '''in''' <tex>N_i</tex> '''where''' <tex> C \rightarrow X_1...\ldots X_m \land X_1,...\ldots X_m \neq N_i </tex> makeFA (<tex>q_0, X_1 \cdots ldots X_m, q_C</tex>) '''foreach''' C,D '''in''' <tex>N_i</tex> '''where''' <tex> C \rightarrow DX_1...\ldots X_m \land X_1,...\ldots X_m \neq N_i </tex> makeFA (<tex>q_D, X_1 \cdots ldots X_m, q_C</tex>)
<tex> \Delta = \Delta \cup \{(q_a,\varepsilon,q_1)\} </tex>
'''else''' <font color=green>// рекурсивный нетерминал right или cyclic</font>
'''foreach''' C '''in''' <tex>N_i</tex> '''where''' <tex> C \rightarrow X_1...\ldots X_m \land X_1,...\ldots X_m \neq N_i </tex> makeFA (<tex>q_C, X_1 \cdots ldots X_m, q_1</tex>) '''foreach''' C,D '''in''' <tex>N_i</tex> '''where''' <tex> C \rightarrow DX_1...\ldots X_m \land X_1,...\ldots X_m \neq N_i </tex> makeFA (<tex>q_D, X_1 \cdots ldots X_m, q_C</tex>)
<tex> \Delta = \Delta \cup \{(q_0, \varepsilon ,q_a)\} </tex>
'''return'''
177
правок

Навигация