      13. ⥪⭮-᢮ ࠬ⨪.

     13.1. ⥪⭮-᢮ ࠬ⨪. 騩   ࠧ-
          .

     ⮡  ।  ,    뢠  ⥪⭮-᢮
ࠬ⨪ (-ࠬ⨪), :
     () 㪠 筮 ⢮ A, 뢠 䠢⮬; 
  뢠 ᨬ;  ᫥⥫쭮 ᨬ-
 뢠 ᫮ (  䠢);
     () ࠧ  ᨬ 䠢 A   㯯:  ନ-
 ("⥫")  ନ ("஬");
     ()   । ନ ᨬ , 뢠
砫;
     () 㪠 筮 ᫮ ࠢ ࠬ⨪,   -
   
     K -> X
 K -  ନ ᨬ,  X - ᫮ (  -
 室  ନ,  ନ ᨬ).

       䨪஢  -ࠬ⨪  (  㤥 ᪠
⠢ "-", ⠪  㣨 ࠬ⨪    㤥). 뢮-
  ⮩ ࠬ⨪ 뢠 ᫥⥫쭮  ᫮  X[0],
X[1],..., X[n],  ன X[0] ⮨   ᨬ,  
ᨬ  - 砫,  X[i+1] 砥  X[i]  -
ண ନ쭮 ᨬ K  ᫮ X       ࠢ
ࠬ⨪.  , ⠢  ନ ᨬ, -
 뢮, ᫨  뢮,     砥.
⢮  뢮 ᫮ ( ନ ᨬ) 뢠-
 몮, ஦  ࠬ⨪.
       ⮩   ᫥   㤥 室   
⠪ :  -ࠬ⨪; ந ,  
  ᫮ ஢, 뢮    ⮩ ࠬ⨪.

     ਬ 1.   䠢:

            ( ) [ ] E

(  ନ  ᨬ    ନ ᨬ E).
砫 ᨬ: e.
ࠢ:
                E -> (E)
                E -> [E]
                E -> EE
                E ->

( ᫥ ࠢ ࠢ ⮨ ⮥ ᫮).

     ਬ 뢮 ᫮:

                     (⮥ ᫮)
                ()
                ([])
                ()[([])]
                [()[]()[]]

     ਬ 뢮 ᫮:

                (
                )(
                (]
                ([)]

 ࠬ⨪ 砫  ࠧ 00 ( 뢮    
஢﫠   ⥪).

     ਬ 2. 㣠 ࠬ⨪, ஦   :

䠢: ( ) [ ] T E

ࠢ:
           E ->
           E -> TE
           T -> (E)
           T -> [E]

砫 ᨬ   ਢ  ਬ 㤥  -
  ᨬ,  騩      ࢮ ࠢ ( 
砥  ᨬ T),  ਢ ⮣ ᮡ.

       ନ쭮 ᨬ  ᬮ  -
⢮  ᫮  ନ ᨬ,    뢮-
 (筮 ⮬,   ᤥ  砫쭮 ᨬ 
। 뢮  ࠬ⨪).  ࠢ ࠬ⨪
  ᬠਢ   ᢮⢮  .   
ਬ ⮫쪮  ਢ ࠬ⨪.  SetT   SetE  -
⢠  ᫮ ( ᪮), 뢮  ନ T  E -
⢥⢥.    ࠢ  ࠬ⨪  ᮮ⢥  ⠪
᢮⢠:

E ->            SetE ᮤন ⮥ ᫮
E -> TE         ᫨ ᫮ A ਭ SetT,
                ᫮ B ਭ
                SetE,  ᫮ AB ਭ SetE
T -> [E]        ᫨ A ਭ
                SetE,  ᫮ [A] ਭ SetT
T -> (E)        ᫨ A ਭ
                SetE,  ᫮ (A) ਭ SetT

㫨஢  ᢮⢠  SetE, SetT  । 
⢠ 筮 (ਬ,   묨, ᫨  -
⢥ SetE  SetT  ⢮  ᫮).    -
,    ⢠,   ࠬ⨪,  -
묨 । 㤮⢮ ⨬ ᫮.

     13.1.1.  㫨 筮    ⢥ত 
ந쭮 ⥪⭮-᢮ ࠬ⨪.

     13.1.2. ன ࠬ⨪,  ன 뢮 ᫮
     () 00..0011..11 (᫮ 㫥 ࠢ  );
     () 00..0011..11 (᫮ 㫥   ᫠ );
     () 00..0011..11 (᫮ 㫥  ᫠ );
( ⮫쪮 ).

     13.1.3.  ,    -ࠬ⨪,  -
ன 뫨  뢮 ᫮   00..0011..1122..22,    
᫠ 㫥,    ࠢ,  ⮫쪮 .
     .  ᫥   ந쭮  -ࠬ-
⨪:      筮   ᫮ F, 뢮 
⮩ ࠬ⨪,    ⠪    ।⠢    
ABCDE,      ᫮   AB..BCD..DE,  B  D ७
 ᫮ ࠧ, ⠪ 뢮    ⮩  ࠬ⨪.  (
  ⠭,    ନ  ᨬ, 뢠騩
᢮ ᮡ⢥ "᫥"   뢮.)

     ନ ᨬ  ᬠਢ  "த "
 뢮   ᫮.  ᫥饬 ਬ   來
   ⢥   ନ  ᨬ  ᯮ짮  ࠣ
᪨ ᫮, 祭   㣫  ᪮.  (  窨  ७
ࠬ⨪  ⠪ ᫮ -  ᨬ!)

     ਬ 3. 䠢:

ନ: + * ( ) x
ନ: <>, <>, <᫠>, <᫠>, <>
ࠢ:

    <>     -> <᫠> <>
    <>  -> + <>
    <>  ->
    <᫠>    -> <> <᫠>
    <᫠> -> * <᫠>
    <᫠> ->
    <>    -> x
    <>    -> ( <> )

᭮ ⮩ ࠬ⨪, ࠦ  (<>)  -    ᫥-
⥫쭮  ᫠  (<᫠>), ࠧ ᠬ, ᫠ -
 ᫥⥫쭮 ⥫ (<>), ࠧ -
 ( 㬭),  ⥫ -   㪢  x,  
ࠦ  ᪮.

     13.1.4. ਢ ਬ 㣮 ࠬ⨪, 饩  
.

     ⢥.    ਠ⮢:
    <> -> <> + <>
    <> -> <> * <>
    <> -> x
    <> -> ( <> )

  ࠬ⨪    ,    ⭮襭 㦥, 
祬   㤥 .

     13.1.5.  ந쭠 -ࠬ⨪. ந 
஢ન ਭ   , ࠡ騩 -
쭮 ६ (.. ᫮ ⢨  ॢ室    
 ஢塞 ᫮;     ࠬ⨪).

     襭. ⨬,  ॡ 쭮 ᪫砥
 襭, ᭮  ॡ   뢮-
.       . ᪮
ࠪ᪮ 祭      (ᯮ㥬    ࠪ⨪
-ࠬ⨪   ⥫묨 ᢮⢠, 騬
ந  䥪⨢ ),     -
 襭.

     (1)   ࠬ⨪  ନ K1,...,Kn. ந
 ࠬ⨪  ନ K1',...,Kn' ⠪, ⮡ 믮-
 ⠪ ᢮⢮:  Ki' 뢮 (  ࠬ⨪)  
᫮,   Ki  ன,  ᪫祭 ⮣ ᫮, ஥
 뢮.
     ⮡ 믮 ⠪ ८ࠧ ࠬ⨪,  -
,   ନ 室 ࠬ⨪ 뢮 ⮥
᫮,    ⥬  ࠢ   ᮢ㯭 ࠢ,
, ᫨  ࠢ   -   -
,   뢮 ⮥ ᫮,   ⠫ -
 . ਬ, ᫨  室 ࠬ⨪ 뫮 ࠢ

     K -> L M N,

祬   L  N 뢮 ⮥ ᫮,   M ,   -
    ࠢ

     K'-> L'M'N'
     K'->   M'N'
     K'-> L'M'
     K'->   M'

     (2) ⠪,  ᢥ   ࠬ⨪,      -
ନ  뢮 ⮥ ᫮.  ࠭ "横" -

     K -> L
     L -> M
     M -> N
     N -> K
( ࠢ   ࠢ  ᨬ,   ᨬ -
  横  ந쭮  ):   ᤥ, ⮦⢨
 室騥  横 ନ.

     (3)  ஢ઠ ਭ - ᫮ ,
஦  ࠬ⨪,    믮  ⠪:  
᫮ ஢塞 ᫮    ନ  塞,
஦   ᫮ ⨬ ନ.  ⮬ ᫮
஢   浪 ⠭ ,  ନ -  ⠪
浪, ⮡  稨 ࠢ K -> L ନ L ஢-
 ࠭ ନ K. (    ᨫ  ⢨  横-
.) ᭨    ਬ.
       ࠬ⨪  ࠢ
        K -> L
        K -> M N L
 㣨 ࠢ, ᮤঠ K   , .   ⨬  -
,  뢮     ᫮ A  ନ K.  㤥
⠪    砥: (1) ᫨ A 뢮  L;  (2)  ᫨  A
 ࠧ   ᫮ B, C, D,   B 뢮
  M,  C 뢮  N,  D 뢮  L.   ଠ
㦥  (᫮ B, C, D  A,  L ᬮ७  K).
       ,  ᫮ ⢨ ⮣ ⬠ -
쭮. ⥯    ᫠ ନ    ࠢ
  ࠢ    , ᫨ ࠬ⨪ ८ࠧ-
  ଥ,  ன ࠢ   ࠢ ᮤন  1
  2  ନ (  ᤥ,   ନ:
ਬ, ࠢ K -> LMK    K -> LN  N ->  MK,
 N -  ନ).

     13.1.6. ᬮਬ ࠬ⨪   ⢥  ନ
K, ନ 1, 2, 3  ࠢ

     K -> 0
     K -> 1 K
     K -> 2 K K
     K -> 3 K K K

  ஢  뢮 ᫮  ⮩ ࠬ⨪,  ᫮
᫥ ࠢ? (᫮ ⢨  ⥭  㪢  
 ࠭祭.)

     襭.  ࠭ 楫 ६ n, ਠ: ᫮ -
 <-> ⠭  ।⠢  ᮡ  ⥭
(ᮥ) n 뢮 ᫮.

     13.1.7.     ࠬ⨪

          K -> 0
          K -> K 1
          K -> K K 2
          K -> K K K 3

     13.2. ⮤ ४ᨢ ᪠.

      ⫨稥  ⬠ ।饣 ࠧ (।⠢饣
 ⥮᪨ ),    ᭮  ४ᨢ
᪠   ᯮ  ࠪ⨪.  ⮤ ਬ, -
,    ᥬ ࠬ⨪.  㤨 室  -
࠭祭 .
       ⮤ ४ᨢ ᪠ ⠪.   -
 K  ந 楤 ReadK,  -  ਬ  -
 室 ᫮ x -   :
     (1) 室 襥 砫 z ᫮ x, ஥  
砫 뢮  K ᫮;
     (2) ᮮ頥,    ᫮ z 뢮  K.

     ० 祬 뢠  ⮤  ஡, ਬ
 ⮬,  楤  ᢥ  室 ᫮   -
  १ ᢮ ࠡ.   ।,    㪢
室  ᫮  㯠    , ..  ࠭,
⤥ "⠭"    "⠭".  㤥  -
,   㭪 ( ࠬ஢)

     Next: Symbol

    ⠭  ᨬ.   祭ﬨ  
ନ ᨬ,  ⠪ ᯥ樠  ᨬ  EOI  (End  Of
Input  -   室), 騩,   ᫮ 㦥 ⠭.
맮  ⮩ 㭪樨, ⢥,  ᤢ ࠭  -
⠭  ⠭  -  ⮣  楤 Move,
  ᤢ  ࠭    ᨬ. ( ਬ, ᫨
Next <> EOI.) , ,  㫥᪠ ६ b.

        㫨஢  ॡ   楤
ReadK.    ᫥饬:
     (1)  ReadK  뢠    ⠢襩   ᫮ -
쭮 砫 A, 饥 砫 ண ᫮, 뢮-
  K;
     (2) 祭 b ⠭ ⨭    ᨬ
 ⮣,   A 뢮  K   뢮 -
 뢮 ( K) ᫮.

      㤮⢠  ⠪ ନ: 뢮  K ᫮-
 㤥 뢠 K-᫮,   砫  뢮  
K  ᫮ - K-砫. ॡ (1)  (2)  㤥 ࠦ
᫮ "ReadK ४⭠  K".

     筥  ᬮ७ ⭮ .  ࠢ
        K -> L M
 ⢥ ࠢ ࠬ⨪, ᮤঠ騬 K   
,  L, M - ନ  ReadL, ReadM - ४ (
) 楤.
     ᬮਬ ⠪ 楤:

     procedure ReadK;
     begin
     | ReadL;
     | if b then begin
     | | ReadM;
     | end;
     end;

     13.2.1.  ਢ  ਬ,   楤 㤥 -
४⭮  K.
     ⢥.   L 뢮  ᫮  00..00,   M
뢮  ᫮ 01.   K 뢮  ᫮  00001,  
楤 ReadK ⮣  .

      筮 ᫮ ४⭮  楤  ReadK.
  ⮣    祭.  䨪-
 -ࠬ⨪    ନ  N  ⮩  ࠬ⨪.
ᬮਬ  N-᫮ A, ஥  ᮡ⢥ 砫 B, ⠪
饥 N-᫮ (᫨ ⠪ ).    ⠪ ᫮
A  B ᬮਬ ନ ᨬ, 騩  A ।⢥
 B. ⢮  ⠪ ନ 稬  (N).  (᫨
 N-᫮   ᮡ⢥ 砫 㣮 N-᫮,
 ⢮ (N) .)

     13.2.2.  () (E)  ਬ 1;  ()  (E)  
(T)   ਬ 2; () (<᫠>)  (<>)  -
 3.
     ⢥.  ()  (e)  =  {  [, ( }. () (e) = { [, ( };
(t)  ( t-᫮   砫 㣮). ()
(<᫠>) = {*}; (<>) .

஬  ⮣,      ନ N 稬 १ (N)
⢮  ନ,  묨  㪢  
N-᫮.    祭  -   ।騬 -  
筮 ᫮ ४⭮ 楤 ReadK  ᠭ -
 樨.

     13.2.3.  ,    ᫨    (L)   ᥪ 
(M)  ⢮  M-᫮ ,  ReadK ४⭠.

     襭. ᬮਬ  . (1)  ᫥ ReadL  -
祭  ६  b  .  ⮬ 砥 ReadM ⠥  室
ᨬ쭮 M-砫 A,  饥  M-᫮.    
K-砫 ( ,  ⢮ L-᫮ .). 㤥 
 ᨬ K-砫 । 砫 室? ᫨ ,  A -
  砫  ᫮ BC,  B  L-᫮, C  M-砫 
BC -   砫 室, 祬 A. ᫨ B  A,  A -
 ᨬ쭮 砫 室, 饥 L-砫,  ⨢-
 ४⭮ ReadL. ᫨ B = A,  A 뫮   L-᫮,  
   ⠪. , B  A, C    ᨬ ᫮
C ᫥  A  ᫥ ᨬ ᫮ B, .. (L)  -
ᥪ  (M). ⨢稥. ⠪, A ᨬ쭮.  ᪠-
  ᫥  ⠪,    A   K-᫮. ४⭮
楤 ReadK  ⮬ 砥 ஢७.
     (2)  ᫥ ReadL 祭 ६ b ⨭.  
⠭  楤ன  ReadK  砫 室   AB,  A
 L-᫮,  B  M-砫.   ᠬ  AB    K-砫.
஢ਬ  ᨬ쭮.  C  襥 K-砫. -
    C  L-砫 ( , ⠪  A 뫮 -
 L-砫),  C = A'B',  A' - L-᫮, B' -  M--
砫.  ᫨  A'   A,  B'   稭  ᨬ,
ਭ饣  (M),   (L),    .  ᫨  A'
  A,     ⨢ ⮬,  A 뫮 ᨬ.
⠪, A' = A.   ⮬ 砥 B'  த B,  -
 ४⭮ ReadM. ⠪, AB  -  ᨬ쭮  K-砫.
⠥  ஢  ࠢ쭮  뤠  楤ன ReadK
祭 ६ b. ᫨  ⨭,    祢.  ᫨
  ,   B   M-᫮,   ஢,  AB - 
K-᫮.  ᠬ , ᫨  믮﫮 AB = A'B',   A'  -
L-᫮,  B' - M-᫮,  A'     A (ReadL -
⠥ ᨬ쭮 ᫮), A'     ࠢ  A  (⮣  B'
ࠢ  B        M-᫮)  A'     A
(⮣  ᨬ B' ਭ  (M),  (L)). 
襭.

     ३ ⥯  㣮 ⭮ .   -ࠬ-
⨪  ࠢ
        K -> L
        K -> M
        K -> N
 㣨 ࠢ    K .

     13.2.4.  ,  ReadL, ReadM  ReadN ४ ( L,
M  N)   ⢠ (L), (M)  (N)   ᥪ,
 楤, ४  K.

     襭. 奬 楤 ⠪:

     procedure ReadK;
     begin
     | if (Next ਭ (L)) then begin
     | | ReadL;
     | end else if (Next ਭ (M)) then begin
     | | ReadM;
     | end else if (Next ਭ (N)) then begin
     | | ReadN;
     | end else begin
     | | b := true  false   ᨬ  ⮣,
     | |      뢮  ⮥ ᫮  K  
     | end;
     end;

,  ReadK ४⭮ ॠ K. ᫨ Next  ਭ-
     (L), (M), (N), ⮥ ᫮
 訬 砫 室,  騬  K-砫.  ᫨
Next  ਭ    (,  ᫥⥫쭮, ⮫쪮 ) 
 ,  ᨬ쭮 砫 室, 饥  K--
,   ⠥ ᮮ⢥饩 楤ன.

     13.2.5. ᯮ ᪠, ⠢ 楤  ᯮ-
  ࠦ  ࠬ⨪ (㦥 ᬠਢ襩  ਬ
3):

    <>     -> <᫠> <>
    <>  -> + <>
    <>  ->
    <᫠>    -> <> <᫠>
    <᫠> -> * <᫠>
    <᫠> ->
    <>    -> x
    <>    -> ( <> )

     襭.  ࠬ⨪     ᬮ-
७  砨:  ࠢ   樨  ନ-
  ନ
        + <>
 㯯   ᨬ
        ( <> )
  ࠬ⨪  ⠪ ᪮쪮 ࠢ     
 ࠢ묨 ﬨ ࠧ த, ਬ
    <>  -> + <>
    <>  ->
 ࠭祭   ਭ樯묨. , ࠢ ⨯
        K -> L M N
  뫮     ࠢ K -> LQ  Q -> MN, ନ-
 ᨬ  ࠢ  -  ନ  (  ⢥
ࠢ    ᮮ⢥騥 ନ). ᪮쪮 ࠢ
     ࠧத묨 ࠢ묨 ⠪  ᢥ 
㦥 ࠧ࠭ : ਬ,

        K -> L M N
        K -> P Q
        K ->

   ࠢ

        K  -> K1
        K  -> K2
        K  -> K3
        K1 -> L M N
        K2 -> P Q
        K3 ->

     㤥 ⮣  -  ࠧ  襬 ,  -
, ᫨ ⠢ ᠭ 楤    ନ
ᨬ    ᯮ짮. ਬ,  ࠢ
        K -> L M N
  楤

        procedure ReadK;
        begin
        | ReadL;
        | if b then begin ReadM; end;
        | if b then begin ReadN; end;
        end;

    ४⭮  ,  ⮡  (L)    ᥪ 
(MN) (஥ ࠢ (M), ᫨   M    뢮  ⮥
᫮,    ࠢ ꥤ (M)  (N), ᫨ 뢮), 
⠪ ⮡ (M)  ᥪ  (N).
      ࠧ ࠢ
        K -> L M N
        K -> P Q
        K ->
ਢ  楤

        procedure ReadK;
        begin
        | if (Next ਭ (LMN)) then begin
        | | ReadB;
        | | if b then begin ReadM; end;
        | | if b then begin ReadN; end;
        | end else if (Next ਭ (PQ)) then begin
        | | ReadP;
        | | if b then begin ReadQ; end;
        | end else begin
        | | b := true;
        | end;
        end;
  ਢ    ணࠬ,     ᮮ-
⢨  ᪨  ᪨ ᫮:

                       EXPRession
        ⮪        REST of EXPRession
                       ADDitive term
        ⮪       REST of ADDitive term
        ⥫               MULTiplier

     procedure ReadSymb (c: Symbol);
     | b := (Next = c);
     | if b then begin Move; end;
     end;

     procedure ReadExpr;
     | ReadAdd;
     | if b then begin ReadRestExpr; end;
     end;

     procedure ReadRestExpr;
     | if Next = '+' then begin
     | | ReadSymb ('+');
     | | if b then begin ReadExpr; end;
     | end else begin
     | | b := true;
     | end;
     end;

     procedure ReadAdd;
     | ReadMult;
     | if b then begin ReadRestAdd; end;
     end;

     procedure ReadRestAdd;
     | if Next = '*' then begin
     | | ReadSymb ('*');
     | | if b then begin ReadAdd; end;
     | end else begin
     | | b := true;
     | end;
     end;

     procedure ReadMult;
     | if Next = 'x' then begin
     | | ReadSymb ('x');
     | end else if Next = '(' then begin
     | | ReadSymb ('(');
     | | if b then begin ReadExpr; end;
     | | if b then begin ReadSymb (')'); end;
     | end else begin
     | | b := false;
     | end;
     end;

⠫  㤨 ஡, 易   ४ᨢ
 楤 ( ᯮ   ).  ᪠ 
᪠, ⮫쪮 ॡ  ।⥫쭮 ᠭ -
楤  ("forward").   ᥣ  ४ᨢ 楤, 
⥫⢠ ⮣,   楤 ࠡ⠥  ࠢ쭮  
।,    ᯮ㥬   맮 楤 ࠡ
ࠢ쭮,   ⤥쭮,  ࠡ 蠥.  (
  祢: ᫨   ࠬ⨪ 뫮 ࠢ K -> KK,   K
祣  뢮, (K)  (K) ,    ᠭ  
訬  楤

     procedure ReadK;
     begin
     | ReadK;
     | if b then begin
     | | ReadK;
     | end;
     end;

 稢 ࠡ.)
          砥  楤  ReadRestExpr,  ReadRestAdd,
ReadMult  ,   㬥    ⠭
  室. ᪮  横 맮 砥   ,
 横 .  襭.

     13.2.6.   ࠬ⨪   ࠢ    ନ-
 K   ,  
        K -> LK
        K ->
     K-᫮  ।⠢  ᮡ    ᫥-
⥫쭮 L-᫮, 祬 ⢠ (L)   (K)  (  
砥  ࠢ (L))  ᥪ. ᯮ ४ 
L 楤 ReadL,  ४  K 楤 ReadK, 
ᯮ ४ᨨ. ।,  ⮥ ᫮  뢮
 L.

     襭.  訬 ࠢ ᫥  

     procedure ReadK;
     begin
     | if (Next ਭ  (L)) then begin
     | | ReadL;
     | | if b then begin ReadK; end;
     | end else begin
     | | b := true;
     | end;
     end;

襭 ࠡ ࠭ ⥬,  ⮥ ᫮  뢮-
  L (, ᫥⥫쭮, । ४ᨢ 맮   -
⠭  㬥蠥).
      ४ᨢ 楤 ⭠ ४ᨢ:

     procedure ReadK;
     begin
     | b := true;
     | while b and (Next ਭ  (L)) do begin
     | | ReadL;
     | end;
     end;

ଠ쭮  ஢  ⭮ ⠪. 蠥
   ᭠. 筮 ஢ ⮬,  ⥫ -
ᨢ  楤 ⭮ ४ᨢ  ।,
  ४ᨢ 맮 ⥭ 맮 ४ᨢ  -
楤. ⠢:

     if (Next ਭ  (K)) then begin
     | ReadL;
     | if b then begin
     | | b := true;
     | | while b and (Next ਭ  (L)) do begin
     | | | ReadL;
     | | end;
     | end;
     end else begin
     | b := true;
     end;

  b := true  모 ( ⮬     ⠪  b
⨭).    ७  砫:

     b := true;
     if (Next ਭ  (K)) then begin
     | ReadL;
     | if b then begin
     | | while b and (Next ਭ  (L)) do begin
     | | | ReadL;
     | | end;
     | end;
     end;

  ७  if   모 (᫨ b , 横 while
 ࠢ  믮)    ᫮ 譥 if ᫮-
 b (஥  ࠢ ⨭).

     b := true;
     if b and (Next ਭ  (L)) then begin
     | ReadL;
     | while b and (Next ਭ  (A)) do begin
     | | ReadL;
     | end;
     end;

 ⭮ ਢ   ४ᨢ  楤  (
ன 뭥ᥭ ࢠ  横).

     13.2.7.   ४⭮ ਢ  ४ᨢ-
 ணࠬ ।⢥,  뫮  ४ᨢ.

     襭. ᬮਬ  襥  砫  室,  饥
K-砫.    ।⠢    ⥭樨 (᫥-
⥫쭮 ਯ뢠) ᪮쪨  L-᫮  ,  ,
  ⮣  L-砫,   饣 L-᫮. ਠ
横: ⠭ ᪮쪮  ; b <=> (᫥  ⠭
 L-᫮).
     ࠭  ਠ:  ᫨ ⠫ ᫥ ᫮, 
祢; ᫨ ⠫ ᪮쪮,       B-᫮  (
᫠  ⠢)    ᨬ  (B),  ⮬  ᫮ -
ᨬ 砫 室, 饥 B-砫.

       ࠪ⨪     ࠬ⨪ ᯮ ᮪饭.
᫨ ࠢ  - ନ K  
     K -> L K
     K ->
(.. K-᫮ -  ᫥⥫쭮 L-᫮),     ࠢ
  ,   K  L  䨣 ᪮. ᪮쪮 -
      ࠧ묨 ࠢ묨 뢠    
ࠢ,  ࠧ ୠ⨢ ࠢ  ⨪쭮 -
⮩.
     ਬ, ᬮ७   ࠬ⨪    <>  
 ᠭ ⠪:

    <>     -> <᫠> { + <᫠> }
    <᫠>    -> <> { * <> }
    <>    -> x | ( <> )

     13.2.8.  楤,  ४⭮    <>,  ᫥
⮩  ࠬ⨪   ᯮ 横  ४ᨨ,  .

     襭.

     procedure ReadSymb (c: Symbol);
     | b := (Next = c);
     | if b then begin Move; end;
     end;

     procedure ReadExpr;
     begin
     | ReadAdd;
     | while b and (Next = '+') do begin
     | | Move;
     | | ReadAdd;
     | end;
     end;

     procedure ReadAdd;
     begin
     | ReadMult;
     | while b and (Next = '*') do begin
     | | Move;
     | | ReadMult;
     | end;
     end;

     procedure ReadMult;
     begin
     | if Next = 'x' do begin
     | | Move;
     | end else if Next = '(' then begin
     | | Move;
     | | ReadExpr;
     | | if b then begin ReadSymb (')'); end;
     | end else begin
     | | b := false;
     | end;
     end;

     13.3.  ࠧ  LL(1)-ࠬ⨪.

      ⮬ ࠧ  ᬮਬ   ⮤ ஢ન 뢮-
  -ࠬ⨪, 뢠    ࠤ樨  LL(1)-ࠧ஬.
     ࠧ:  ,    뢮
  ᥣ  塞 ᠬ  ନ  㦭  
  ࠢ; ᫨    ࠬ⨪,    -
  ,    ᨬ 뢮  ⮣ ନ-
 ᫮.   ଠ쭮,  ⠪
     ।.  뢮 (᫮  ࠬ⨪)  뢠
뢮,   ஬   蠣  ࣠ ᠬ 
 ନ.

     13.3.1.      뢮 ᫮ ( ନ) -
   뢮.

     襭.  ନ  ᨬ;  ᫨
   뢮  ᫮ ..K..L..,  K, L - ନ-
,   K  L  ந   浪. ⮬
 ந 뢮 ⠪, ⮡ 騩  ନ  -
  ࠭. (ଠ쭮 ,  뢠 樥 
 뢮 ⠪ 䠪: ᫨  ண ନ K  뢮-
 ஥
᫮ A,    뢮 A  K.)

     13.3.2.  ࠬ⨪  4 ࠢ

        (1) E ->
        (2) E -> T E
        (3) T -> ( E )
        (4) T -> [ E ]

    뢮  ᫮  A  =  [()([])]    ,   
⢥.

     襭.  ࢮ 蠣  ਬ ⮫쪮 ࠢ (2):
        E -> TE
 㤥   T?   ᫮ A 稭  "[",   -
 ਬ ⮫쪮 ࠢ (4):
        E -> TE -> [E]E
ࢮ  E    TE (  ᨬ 뫠 
᪮ "]"):
        E -> TE -> [E]E -> [TE]E
 T    (3):
        E -> TE -> [E]E -> [TE]E -> [(E)E]E
 ࢮ E    ⮥ ᫮ (  쥩
㪢 ᫮ 㤥 "("  "[" - ⮫쪮   ᨬ  -
稭 ᫮, 뢮  T):
        E -> TE -> [E]E -> [TE]E -> [(E)E]E -> [()E]E
 
  ...  ->  [()TE]E -> [()(E)E]E -> [()(TE)E]E -> [()([E]E)E]E ->
        -> [()([]E)E]E -> [()([])E]E -> [()([])]E -> [()([])].

      ॡ  ࠬ⨪, ⮡ ⠪ ⮤ ᪠ -
 뢮  ਬ? , ਬ,  । 蠣 ᠬ
  ନ    ନ K, ..   ᫮
 AKU,  A - ᫮  ନ,  U - ᫮  ନ
 ନ.   ࠬ⨪  ࠢ
     K -> L M N
     K -> P Q
     K -> R
     .  㤥  ᤥ  -
,       ᨬ ⮩  室 ᫮, 
뢮  KU.
     ᬮਬ ⢮ (LMN)  ନ,   -
稭  ᫮, 뢮  LMN. ( ⢮  ࠢ
(L),  ꥤ  (M), ᫨  L 뢮 ⮥ ᫮-
,  ⠪  (N), ᫨  L   M 뢮 ⮥  ᫮.)
⮡  ᠭ  ⮤    ਬ,  ,  ⮡  (LMN),
(PQ)  (R)  ᥪ.  ⮣ .   
⠪, ਬ,   LMN 㤥 뢥 ⮥ ᫮,   ᫮-
 U 㤥 뢥 ᫮, 稭饥    㪢    (PQ).
騥 । 뢠  ஡.

     ,   । 뢮  -ࠬ⨪ 뫮
 ⮫쪮  ᫮  ନ.  祢 ࠧ -
頥  砩 ᫮  ନ  ନ.   ⠪
  뢮  ᫮ (ᮤঠ饣 ନ  -
ନ)    㣮. (᫨   뢮 ᫮ 
㪠 ⮣, 㤠  뢮,   ᥣ  ࠧ㬥
뢮   ࠬ⨪, .. 뢮  砫쭮 -
.)
       ᫮ X    ନ    ନ  १
(X) 砥 ⢮  ନ,   稭-
  ᫮  ନ, 뢮  X. ( 砥, ᫨
    ନ 뢮   ᫮  ନ,
 ࠥ ஫, ᬠਢ    । (X) ᫮
⮫쪮  ନ   ᫮.  㤥 ।  -
,   ᫮ 믮.)
      ନ K  १  ᫥(K)  稬  -
⢮  ନ,    뢮 ᫮ ࠧ
  K. ஬ ⮣,  ᫥(K) 砥 ᨬ EOI, ᫨ -
 뢮 ᫮, 稢饥  K.
       ࠢ
        K -> V
(  K - ନ, V - ᫮, ᮤঠ饥 ନ  ନ-
) । ⢮ "ࠢ  ନ",  -
 (K->V).  ।  ࠢ (V),  ஬ -
 ᫥(K), ᫨  V 뢮 ⮥ ᫮.

     ।.  ࠬ⨪ 뢠 LL(1)-ࠬ⨪, ᫨
  ࠢ K->V  K->W  묨 묨  ﬨ  -
⢠ (K->V)  (K->W)  ᥪ.

     13.3.3.   ࠬ⨪
          K -> K #
          K ->
(뢮묨   ᫮      ᫥⥫쭮    )
LL(1)-ࠬ⨪?

     襭. : ᨬ # ਭ ⢠  ࠢ
ᨬ   ࠢ ( ண - ᪮ # ਭ
᫥(K)).

     13.3.4.  LL(1)-ࠬ⨪  ⮣  몠.

     襭.
          K -> # K
          K ->
 , "४ᨢ ࠢ"    "ࠢ४-
ᨢ".

       뢠,   LL(1)-ࠬ⨪ -
     த  뢮.

     13.3.5.   뢮  LL(1)-ࠬ⨪ ᫮ X,  
஬  뤥  ᠬ  ନ : X=AKS,  A - ᫮
 ନ, S - ᫮  ନ  ନ.  -
  ࠧ ࠢ ࠬ⨪  ନ K  -
 ,   ਬ   뤥   X  ନ  K,
⥬  த  뢮     殢 稫  ᫮ 
ନ, 稭  A. ,      ᫮  
砫 A  ࠧ 㪢.

     襭.  㪢 ਭ ࠢ騬 ⢠ ࠧ-
 ࠢ.

     13.3.6. ,  ᫨ ᫮ 뢮  LL(1)-ࠬ-
,    뢮 ⢥.

     襭.  ।   뢠,    蠣
 뢮 த 筮.

     13.3.7.  ࠬ⨪ 뢠 ४ᨢ, ᫨  -
ண ନ K 뢮 ᫮, 稭饥  K,   
ᮢ饥    . ,  ४ᨢ ࠬ⨪, 
ன   ନ 뢮      ⮥
᫮    ନ    ନ  뢮
(稭騩  砫쭮 ନ),  ஬  砥-
,   LL(1)-ࠬ⨪.

     襭.   K 뢮 KU,  K - ନ,  U -
⮥ ᫮.  ,    뢮  (㣨  -
ନ    ). ᬮਬ 뢮 K --> KU --> KUU
->... ( --> 砥 ᪮쪮 蠣 뢮)   뢮
K -> A,  A - ⮥ ᫮  ନ.   -  蠣
ன  뢮 ⪫  ࢮ,   ⥬   
  祭 ᫮, 稭饥  A  (  ࢮ  砥
  ,  ⠪   ࠭ ନ K,  
᫥⢨    A).    ⨢  
筮 । ࠢ, ਬ塞  । 蠣
᪠   뢮. (O筮 믮  뢮 
砫쭮 ଠ,   ᯮ짮  ⥬,    K  
। 砥  ⠪ 뢮.)

      ࠧ,  ४ᨢ ࠬ⨪ (஬  ਢ-
  砥) LL(1)-㪠 ਬ.  室 ८-
뢠   LL(1)-ࠬ⨪  -    짮
㣨 ⮤ ᯮ.

     13.3.8.  ᯮ  ᪠,  ந  ஢ન
뢮 ᫮  ନ  LL(1)-ࠬ⨪,  饩-
 ४ᨢ.

     襭.    ᫥㥬  ᠭ  ⮤ ᪠ 
뢮, ࠭   ᫮, 室 ࠢ 㦥 ⠭-
  室 ᫮. 㣨 ᫮,  ࠭ ᫮ S  
ନ  ନ, 饥 ⠪ ᢮⢮ (⠭-
  室 砥 १ A):

    | (1) ᫮ AS 뢮  ࠬ⨪;
() | (2)   뢮 室 ᫮ 室 १ ⠤
    |     AS

     砫 A ,  S ⮨  ⢥ ᨬ - -
砫쭮 ନ.
     ᫨       S 稭  ନ t  t =
Next,   믮  Move  㤠 ᨬ t,  -
騩 砫  S, ᪮  ⮬ AS  .
     ᫨ S 稭  ନ t  t  ࠢ Next,  室-
  ᫮  뢮  -    ᫮   뢮 
室 १ AS. (  ࠢ   砥 Next = EOI.)
     ᫨ S ,   ᫮ () ᫥,  室  ᫮
뢮 ⮣  ⮫쪮 ⮣,  Next = EOI.
     ⠥ 砩,  S 稭  ண ନ-
 K.      뢮   S  ᫮,  稭-
  ᨬ Next, 稭  ਬ  T   ⮣
  ࠢ  - ⮣,  ண Next ਭ ࠢ饬
. ᫨ ⠪ ࠢ ,  室  ᫮  뢮.
᫨ ⠪ ࠢ ,  㦭 ਬ   ࢮ ᨬ-
  ᫮ S -  ⮬ ᢮⢮ ()  . 室  -
 :

   S := ⮥ ᫮;
   error := false;
   {error => 室 ᫮ 뢮;}
   {not error => ()}
   while (not error) and not ((Next=EOI) and (S )) do begin
   | if (S 稭  ନ, ࠢ Next) then begin
   | | Move; 㤠  S  ᨬ;
   | end else if (S 稭  ନ,  ࠢ Next)
   | |           then begin
   | | error := true;
   | end else if (S ) and (Next <> EOI) then begin
   | | error := true;
   | end else if (S 稭  ନ  Next 室 
   | |    ࠢ饥 ⢮   ࠢ  ⮣
   | |    ନ) then begin
   | | ਬ  ࠢ
   | end else if (S 稭  ନ  Next  室 
   | |    ࠢ饥 ⢮    ࠢ  ⮣
   | |    ନ) then begin
   | | error := true;
   | end;
   end;
   {室 ᫮ 뢮 <=> not error}

 稢 ࠡ, ᪮   ନ
 砫 ᫮ S ந室 ⥭   室    ⠭,  
᪮  横 ᬥ  㣠 ନ  砫 S -
砫 ,  ࠬ⨪ ४ᨢ.

     砭.  1.  ਢ   ᯮ S  ⥪
( ⢨ ந   ).
     2. ⢨  ᫥ ਠ⮢  横  ਢ-
  ⥭ । ᨬ  室, ⮬   -
 ।᫨     ନ      ᨬ
Next.  ᫥ ⮣   蠣 横 㤥  ।
ᨬ 室.
     3.  ࠪ᪮ ॠ樨 㤮 ⠢ ⠡,  
ன  ᠭ  ਠ  ⢨   ᨬ  室
ᨬ  ࢮ ᨬ S,   ணࠬ,  믮
⢨  ᮮ⢥⢨  ⮩ ⠡楩.
