Изменения

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

Предиктивный синтаксический анализ

27 байт добавлено, 21:03, 25 мая 2015
м
Псевдокод
'''while''' s.top() <tex>\neq\ \perp</tex>
A = st.top()
'''if''' <tex>\mathcal{M}[A,\ \mathtt{curToken}]\ ==\ \mathrm{ok}</tex> <font color="green">// <tex> A\ ==\ \perp </tex> и <tex>\mathtt{curToken}\ ==\ \$</tex></font>
'''break''' <font color="green">// разбор строки завершён</font>
'''else if''' <tex>\mathcal{M}[A,\ \mathtt{curToken}]\ ==\ \nearrow</tex> <font color="green">// выброс</font>
nextToken()
st.pop()
вывести в выходной поток нетерминал, отвечающий <tex>\mathtt{curToken}</tex>
'''else if''' <tex>\mathcal{M}[A,\ \mathtt{curToken}]</tex> {{---}} номер правила <tex>A \to \alpha_i,\ \alpha_i = X_1 X_2 \ldots X_t</tex>
st.pop()
'''for''' k = t '''downto''' 1

Навигация