You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: tex/part_02_Foundations/chapter_07_ClassicalParsing/03_FirstAndFollow.tex
+6-5Lines changed: 6 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ \section{Построение множеств $\first$ и $\follow$}
20
20
в нисходящем анализе они определяют, какую продукцию применять (раздел~\ref{sec:TopDown}),
21
21
в восходящем~--- помогают разрешать конфликты (раздел~\ref{sec:BottomUp}).
22
22
23
-
\fixit{Определение множеств first k и follow k}{Связать абзацы}
23
+
Дадим формальные определения для произвольного $k$, а затем специализируем их для наиболее распространённого на практике случая $k = 1$.
24
24
25
25
Формально эти множества определяются следующим образом.
26
26
@@ -46,7 +46,8 @@ \section{Построение множеств $\first$ и $\follow$}
46
46
47
47
Иными словами, $\follow[k](\beta)$~--- это множество всех терминальных цепочек длины не более $k$, которые могут следовать непосредственно за $\beta$ в некоторой сентенциальной форме, выводимой из аксиомы.
48
48
49
-
\fixit{Частный случай k = 1 и алгоритмы вычисления}{Связать абзацы}
49
+
Приведённые выше определения носят общий характер.
50
+
Однако на практике подавляющее большинство алгоритмов синтаксического анализа ограничивается одним символом предпросмотра, поэтому далее мы специализируем их для $k = 1$ и подробно рассмотрим построение множеств именно в этом случае.
50
51
51
52
На практике наиболее распространён случай $k = 1$.
52
53
Для него определения упрощаются:
@@ -63,7 +64,7 @@ \section{Построение множеств $\first$ и $\follow$}
63
64
64
65
Иными словами, $\follow(\beta)$~--- множество терминалов, которые могут следовать непосредственно за $\beta$ в некоторой сентенциальной форме, выводимой из аксиомы.
65
66
66
-
\fixit{Алгоритм вычисления first}{Связать абзацы}
67
+
Теперь перейдём непосредственно к алгоритмам вычисления этих множеств и начнём с $\first$.
67
68
68
69
Множество $\first$ для произвольной сентенциальной формы можно вычислить, пользуясь следующими соотношениями.
69
70
\begin{itemize}
@@ -75,7 +76,7 @@ \section{Построение множеств $\first$ и $\follow$}
75
76
76
77
Поскольку определения взаимно рекурсивны (в правую часть могут входить нетерминалы, для которых $\first$ ещё не вычислен), на практике эти соотношения применяются итеративно до достижения неподвижной точки.
0 commit comments