@@ -109,7 +109,7 @@ \section{LL(k)-алгоритм синтаксического анализа}
109109 Пусть $ G = \langle N, \Sigma , P, S \rangle $ ~--- КС-грамматика. Множество $ \first [k]$ определено для сентенциальной формы $ \alpha $ следующим образом:
110110 \[ \first [k](\alpha ) = \{ \omega \in \Sigma ^* \mid \alpha \derives {} \omega \text { и } |\omega | < k \text { либо } \exists \beta : \alpha \derives {} \omega \beta \text { и } |\omega | = k \}
111111 \]
112- , где $ \alpha , \beta \in (N \cup \Sigma )^*.$ Это означает, что в общем случае $ \alpha $ может быть как одиночным нетерминалом, так и произвольной цепочкой из смешанного алфавита.
112+ , где $ \alpha , \beta \in (N \cup \Sigma )^*.$
113113 Далее в алгоритме построения множества $ \first [k]$ это наглядно показано.
114114\end {definition }
115115
@@ -156,18 +156,13 @@ \section{LL(k)-алгоритм синтаксического анализа}
156156
157157Пример множеств $ \first $ для нетерминалов грамматики $ G$ :
158158
159- \begin {multicols }{2}
160-
161- \columnbreak
162-
159+ % \begin{multicols}{2}
163160\begin {align* }
164161 \first (S) &= \{ a \} & \first (B) &= \{ c, \varepsilon \} \\
165162 \first (A) &= \{ a, \varepsilon \} & \first (S') &= \{ a, b, \varepsilon \} \\
166163 \first (A') &= \{ a, b \}
167164\end {align* }
168- \end {multicols }
169-
170- Как можно заметить, в примере поиска множества $ \first $ в качестве аргумента функции передается нетерминал, но множество $ \first $ ищется для правой части правила.
165+ % \end{multicols}
171166
172167Пример множеств $ \follow $ для нетерминалов грамматики $ G$ :
173168
@@ -270,7 +265,7 @@ \section{LL(k)-алгоритм синтаксического анализа}
270265 \begin {center }
271266 \resizebox {1cm}{1cm}{
272267 \begin {tikzpicture }[shorten >=1pt,on grid,auto,node distance=1.8cm]
273- \node [symbol_node] (s_0) {$ (S) $ };
268+ \node [symbol_node] (s_0) {$ S $ };
274269 \end {tikzpicture }
275270 }
276271 \end {center }
@@ -295,8 +290,8 @@ \section{LL(k)-алгоритм синтаксического анализа}
295290 \resizebox {1.5cm}{1.3cm}{
296291 \begin {tikzpicture }[shorten >=1pt,on grid,auto,node distance=1.8cm]
297292
298- \node [symbol_node] (s_0) {$ (S) $ };
299- \node [symbol_node] (a_0) [below =of s_0] {$ (a) $ };
293+ \node [symbol_node] (s_0) {$ S $ };
294+ \node [symbol_node] (a_0) [below =of s_0] {$ a $ };
300295
301296 \path [->]
302297 (s_0) edge (a_0)
@@ -324,13 +319,14 @@ \section{LL(k)-алгоритм синтаксического анализа}
324319 \resizebox {3cm}{2cm}{
325320 \begin {tikzpicture }[shorten >=1pt,on grid,auto,node distance=1.8cm]
326321
327- \node [symbol_node] (s_0) {$ (S) $ };
328- \node [symbol_node] (a_0) [below =of s_0] {$ (a) $ };
329- \node [symbol_node] (s_1) [right =of a_0] {$ (S) $ };
330-
322+ \node [symbol_node] (s_0) {$ S $ };
323+ \node [symbol_node] (a_0) [below =of s_0] {$ a $ };
324+ \node [symbol_node] (s_1) [right =of a_0] {$ S $ };
325+ \node [symbol_node] (eps_1) [below =of s_1] { $ \varepsilon $ };
331326 \path [->]
332327 (s_0) edge (a_0)
333328 (s_0) edge (s_1)
329+ (s_1) edge (eps_1)
334330 ;
335331 \end {tikzpicture }
336332 }
@@ -354,15 +350,17 @@ \section{LL(k)-алгоритм синтаксического анализа}
354350 \resizebox {3cm}{2cm}{
355351 \begin {tikzpicture }[shorten >=1pt,on grid,auto,node distance=1.8cm]
356352
357- \node [symbol_node] (s_0) {$ (S)$ };
358- \node [symbol_node] (s_1) [below =of s_0] {$ (S)$ };
359- \node [symbol_node] (a_0) [left =of s_1] {$ (a)$ };
360- \node [symbol_node] (b_0) [right =of s_1] {$ (b)$ };
353+ \node [symbol_node] (s_0) {$ S$ };
354+ \node [symbol_node] (s_1) [below =of s_0] {$ S$ };
355+ \node [symbol_node] (a_0) [left =of s_1] {$ a$ };
356+ \node [symbol_node] (b_0) [right =of s_1] {$ b$ };
357+ \node [symbol_node] (eps_1) [below =of s_1] {$ \varepsilon $ };
361358
362359 \path [->]
363360 (s_0) edge (a_0)
364361 (s_0) edge (s_1)
365362 (s_0) edge (b_0)
363+ (s_1) edge (eps_1)
366364 ;
367365 \end {tikzpicture }
368366 }
@@ -389,17 +387,19 @@ \section{LL(k)-алгоритм синтаксического анализа}
389387 \resizebox {5cm}{3cm}{
390388 \begin {tikzpicture }[shorten >=1pt,on grid,auto,node distance=1.8cm]
391389
392- \node [symbol_node] (s_0) {$ (S)$ };
393- \node [symbol_node] (s_1) [below =of s_0] {$ (S)$ };
394- \node [symbol_node] (a_0) [left =of s_1] {$ (a)$ };
395- \node [symbol_node] (b_0) [right =of s_1] {$ (b)$ };
396- \node [symbol_node] (s_2) [right =of b_0] {$ (S)$ };
390+ \node [symbol_node] (s_0) {$ S$ };
391+ \node [symbol_node] (s_1) [below =of s_0] {$ S$ };
392+ \node [symbol_node] (a_0) [left =of s_1] {$ a$ };
393+ \node [symbol_node] (b_0) [right =of s_1] {$ b$ };
394+ \node [symbol_node] (s_2) [right =of b_0] {$ S$ };
395+ \node [symbol_node] (eps_1) [below =of s_1] {$ \varepsilon $ };
397396
398397 \path [->]
399398 (s_0) edge (a_0)
400399 (s_0) edge (s_1)
401400 (s_0) edge (b_0)
402401 (s_0) edge (s_2)
402+ (s_1) edge (eps_1)
403403 ;
404404 \end {tikzpicture }
405405 }
@@ -425,19 +425,21 @@ \section{LL(k)-алгоритм синтаксического анализа}
425425 \resizebox {6cm}{3.5cm}{
426426 \begin {tikzpicture }[shorten >=1pt,on grid,auto,node distance=1.8cm]
427427
428- \node [symbol_node] (s_0) {$ (S)$ };
429- \node [symbol_node] (s_1) [below =of s_0] {$ (S)$ };
430- \node [symbol_node] (a_0) [left =of s_1] {$ (a)$ };
431- \node [symbol_node] (b_0) [right =of s_1] {$ (b)$ };
432- \node [symbol_node] (s_2) [right =of b_0] {$ (S)$ };
433- \node [symbol_node] (a_1) [below =of s_2] {$ (a)$ };
428+ \node [symbol_node] (s_0) {$ S$ };
429+ \node [symbol_node] (s_1) [below =of s_0] {$ S$ };
430+ \node [symbol_node] (a_0) [left =of s_1] {$ a$ };
431+ \node [symbol_node] (b_0) [right =of s_1] {$ b$ };
432+ \node [symbol_node] (s_2) [right =of b_0] {$ S$ };
433+ \node [symbol_node] (a_1) [below =of s_2] {$ a$ };
434+ \node [symbol_node] (eps_1) [below =of s_1] {$ \varepsilon $ };
434435
435436 \path [->]
436437 (s_0) edge (a_0)
437438 (s_0) edge (s_1)
438439 (s_0) edge (b_0)
439440 (s_0) edge (s_2)
440441 (s_2) edge (a_1)
442+ (s_1) edge (eps_1)
441443 ;
442444 \end {tikzpicture }
443445 }
@@ -462,13 +464,15 @@ \section{LL(k)-алгоритм синтаксического анализа}
462464 \resizebox {6cm}{3.5cm}{
463465 \begin {tikzpicture }[shorten >=1pt,on grid,auto,node distance=1.8cm]
464466
465- \node [symbol_node] (s_0) {$ (S)$ };
466- \node [symbol_node] (s_1) [below =of s_0] {$ (S)$ };
467- \node [symbol_node] (a_0) [left =of s_1] {$ (a)$ };
468- \node [symbol_node] (b_0) [right =of s_1] {$ (b)$ };
469- \node [symbol_node] (s_2) [right =of b_0] {$ (S)$ };
470- \node [symbol_node] (s_3) [below =of s_2] {$ (S)$ };
471- \node [symbol_node] (a_1) [left =of s_3] {$ (a)$ };
467+ \node [symbol_node] (s_0) {$ S$ };
468+ \node [symbol_node] (s_1) [below =of s_0] {$ S$ };
469+ \node [symbol_node] (a_0) [left =of s_1] {$ a$ };
470+ \node [symbol_node] (b_0) [right =of s_1] {$ b$ };
471+ \node [symbol_node] (s_2) [right =of b_0] {$ S$ };
472+ \node [symbol_node] (s_3) [below =of s_2] {$ S$ };
473+ \node [symbol_node] (a_1) [left =of s_3] {$ a$ };
474+ \node [symbol_node] (eps_1) [below =of s_1] {$ \varepsilon $ };
475+ \node [symbol_node] (eps_2) [below =of s_3] {$ \varepsilon $ };
472476
473477
474478 \path [->]
@@ -478,6 +482,8 @@ \section{LL(k)-алгоритм синтаксического анализа}
478482 (s_0) edge (s_2)
479483 (s_2) edge (a_1)
480484 (s_2) edge (s_3)
485+ (s_1) edge (eps_1)
486+ (s_3) edge (eps_2)
481487 ;
482488 \end {tikzpicture }
483489 }
@@ -501,14 +507,16 @@ \section{LL(k)-алгоритм синтаксического анализа}
501507 \resizebox {6cm}{3.5cm}{
502508 \begin {tikzpicture }[shorten >=1pt,on grid,auto,node distance=1.8cm]
503509
504- \node [symbol_node] (s_0) {$ (S)$ };
505- \node [symbol_node] (s_1) [below =of s_0] {$ (S)$ };
506- \node [symbol_node] (a_0) [left =of s_1] {$ (a)$ };
507- \node [symbol_node] (b_0) [right =of s_1] {$ (b)$ };
508- \node [symbol_node] (s_2) [right =of b_0] {$ (S)$ };
509- \node [symbol_node] (s_3) [below =of s_2] {$ (S)$ };
510- \node [symbol_node] (a_1) [left =of s_3] {$ (a)$ };
511- \node [symbol_node] (b_1) [right =of s_3] {$ (b)$ };
510+ \node [symbol_node] (s_0) {$ S$ };
511+ \node [symbol_node] (s_1) [below =of s_0] {$ S$ };
512+ \node [symbol_node] (a_0) [left =of s_1] {$ a$ };
513+ \node [symbol_node] (b_0) [right =of s_1] {$ b$ };
514+ \node [symbol_node] (s_2) [right =of b_0] {$ S$ };
515+ \node [symbol_node] (s_3) [below =of s_2] {$ S$ };
516+ \node [symbol_node] (a_1) [left =of s_3] {$ a$ };
517+ \node [symbol_node] (b_1) [right =of s_3] {$ b$ };
518+ \node [symbol_node] (eps_1) [below =of s_1] {$ \varepsilon $ };
519+ \node [symbol_node] (eps_2) [below =of s_3] {$ \varepsilon $ };
512520
513521 \path [->]
514522 (s_0) edge (a_0)
@@ -518,6 +526,8 @@ \section{LL(k)-алгоритм синтаксического анализа}
518526 (s_2) edge (a_1)
519527 (s_2) edge (s_3)
520528 (s_2) edge (b_1)
529+ (s_1) edge (eps_1)
530+ (s_3) edge (eps_2)
521531 ;
522532 \end {tikzpicture }
523533 }
@@ -540,15 +550,18 @@ \section{LL(k)-алгоритм синтаксического анализа}
540550 \resizebox {6cm}{3.5cm}{
541551 \begin {tikzpicture }[shorten >=1pt,on grid,auto,node distance=1.8cm]
542552
543- \node [symbol_node] (s_0) {$ (S)$ };
544- \node [symbol_node] (s_1) [below =of s_0] {$ (S)$ };
545- \node [symbol_node] (a_0) [left =of s_1] {$ (a)$ };
546- \node [symbol_node] (b_0) [right =of s_1] {$ (b)$ };
547- \node [symbol_node] (s_2) [right =of b_0] {$ (S)$ };
548- \node [symbol_node] (s_3) [below =of s_2] {$ (S)$ };
549- \node [symbol_node] (a_1) [left =of s_3] {$ (a)$ };
550- \node [symbol_node] (b_1) [right =of s_3] {$ (b)$ };
551- \node [symbol_node] (s_4) [right =of b_1] {$ (S)$ };
553+ \node [symbol_node] (s_0) {$ S$ };
554+ \node [symbol_node] (s_1) [below =of s_0] {$ S$ };
555+ \node [symbol_node] (a_0) [left =of s_1] {$ a$ };
556+ \node [symbol_node] (b_0) [right =of s_1] {$ b$ };
557+ \node [symbol_node] (s_2) [right =of b_0] {$ S$ };
558+ \node [symbol_node] (s_3) [below =of s_2] {$ S$ };
559+ \node [symbol_node] (a_1) [left =of s_3] {$ a$ };
560+ \node [symbol_node] (b_1) [right =of s_3] {$ b$ };
561+ \node [symbol_node] (s_4) [right =of b_1] {$ S$ };
562+ \node [symbol_node] (eps_1) [below =of s_1] {$ \varepsilon $ };
563+ \node [symbol_node] (eps_2) [below =of s_3] {$ \varepsilon $ };
564+ \node [symbol_node] (eps_3) [below =of s_4] {$ \varepsilon $ };
552565
553566 \path [->]
554567 (s_0) edge (a_0)
@@ -559,6 +572,9 @@ \section{LL(k)-алгоритм синтаксического анализа}
559572 (s_2) edge (s_3)
560573 (s_2) edge (b_1)
561574 (s_2) edge (s_4)
575+ (s_1) edge (eps_1)
576+ (s_3) edge (eps_2)
577+ (s_4) edge (eps_3)
562578 ;
563579 \end {tikzpicture }
564580 }
0 commit comments