Изменения

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

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

9 байт добавлено, 13:49, 25 мая 2015
Общая схема построения рекурсивных парсеров с помощью FIRST и FOLLOW
'''switch''' (curToken) : <font color="green">// принимаем решение в зависимости от текущего токена строки</font>
'''case''' <tex>\mathrm{FIRST}(\alpha_1) \cup (\mathrm{FOLLOW}(A)\ \mathrm{if}\ \varepsilon \in \mathrm{FIRST}(\alpha_1))</tex> :
<font color="green">// <tex>\alpha_1 = X_1X_2 \ldots X_{t}</tex> </font> '''for''' i = 1 .. t '''if''' <tex> X_i </tex> {{---}} нетерминал consume(<tex>X_i</tex>) res.addChild(Node("<tex>X_i</tex>") nextToken() '''else''' <font color="green">// <tex>X_i</tex> {{---}} терминал, нужно вызвать </font> Node t = <tex>X_i()</tex> res.addChild(t)
'''break'''
'''case''' <tex>\mathrm{FIRST}(\alpha_2) \cup (\mathrm{FOLLOW}(A)\ \mathrm{if}\ \varepsilon \in \mathrm{FIRST}(\alpha_2))</tex> :
Анонимный участник

Навигация