SlideShare a Scribd company logo
1
2
3
4
5
6
7
8
9
10
11
12
13




          	

• 


• 
14




                      	




num	
   +	
   num	
        *	
   num	


 2      +      3           *      4
15




                      	



                           expr	




num	
   +	
   num	
         *	
     num	


 2      +      3            *        4
16




                       	
              expr	


                            expr	




num	
   +	
   num	
          *	
     num	


 2      +       3            *        4
17




                   	
• 

•  LR

     •  SLR

     •  LALR

     •  GLR

     •  etc...
18




                       	
                                        num	
     +	
        *	
                                  num	
  x	
      >	
        >	
          	
     	
                            +	
   <	
      >	
        <	
                                   *	
   <	
      >	
        >	
	




               num	
        +	
      num	
      *	
      num
19




                   	
                                    num	
     +	
        *	
                              num	
  x	
      >	
        >	
              	
     	
                        +	
   <	
      >	
        <	
                               *	
   <	
      >	
        >	
	




          num	
         +	
      num	
      *	
      num
20


                                                  num > +	
                   	
                                    num	
     +	
        *	
                              num	
  x	
      >	
        >	
              	
     	
                        +	
   <	
      >	
        <	
                               *	
   <	
      >	
        >	
	




          num	
         +	
      num	
      *	
      num
21


                                                      num > +	
                       	
                                        num	
     +	
        *	
                                  num	
  x	
      >	
        >	
          	
     	
                            +	
   <	
      >	
        <	
                                   *	
   <	
      >	
        >	



               num	
	




                            +	
      num	
      *	
      num
22




                             	
                                        num	
     +	
        *	
                                  num	
  x	
      >	
        >	
                	
     	
                            +	
   <	
      >	
        <	
                                   *	
   <	
      >	
        >	



                     num	
	




          +	
                        num	
      *	
      num
23


                                             + < num	
                             	
                                        num	
     +	
        *	
                                  num	
  x	
      >	
        >	
                	
     	
                            +	
   <	
      >	
        <	
                                   *	
   <	
      >	
        >	



                     num	
	




          +	
                        num	
      *	
      num
24


                                             + < num	
                              	
                                         num	
     +	
        *	
                                   num	
  x	
      >	
        >	
                 	
     	
                             +	
   <	
      >	
        <	
                                    *	
   <	
      >	
        >	



                      num	
          num	
	




           +	
                                   *	
      num
25




                              	
                                         num	
     +	
        *	
                                   num	
  x	
      >	
        >	
                 	
     	
                             +	
   <	
      >	
        <	
                                    *	
   <	
      >	
        >	



                      num	
          num	
	




           +	
                                   *	
      num
26


                                                         num > *	
                              	
                                         num	
     +	
          *	
                                   num	
  x	
      >	
          >	
                 	
     	
                             +	
   <	
      >	
          <	
                                    *	
   <	
      >	
          >	



                      num	
          num	
	




           +	
                                   *	
        num
27


                                                                num > *	
                             	
                                                num	
     +	
          *	
                                          num	
  x	
      >	
          >	
                	
     	
                                    +	
   <	
      >	
          <	
                                           *	
   <	
      >	
          >	



                     num	
        num	
	




          +	
                                           *	
        num
28




                             	
                                                num	
     +	
           *	
                                          num	
  x	
      >	
           >	
                	
     	
                                    +	
   <	
      >	
           <	
                                           *	
   <	
      >	
           >	

                                                              + < *	

                     num	
        num	
	




          +	
                                           *	
        num
29




                             	
                                                num	
   +	
        *	
                                          num	
  x	
    >	
        >	
                	
     	
                                    +	
   <	
    >	
        <	
                                           *	
   <	
    >	
        >	

                                                         + < *	

                     num	
        num	
          *	
	




          +	
                                                  num
30




                             	
                                                num	
   +	
        *	
                                          num	
  x	
    >	
        >	
                	
     	
                                    +	
   <	
    >	
        <	
                                           *	
   <	
    >	
        >	



                     num	
        num	
          *	
	




          +	
                                                  num
31




                             	
                                                num	
    +	
        *	
                                          num	
  x	
     >	
        >	
                	
     	
                                    +	
   <	
     >	
        <	
                                           *	
   <	
     >	
        >	

                                                  * < num	

                     num	
        num	
          *	
	




          +	
                                                   num
32




                              	
                                                 num	
    +	
        *	
                                           num	
  x	
     >	
        >	
                 	
     	
                                     +	
   <	
     >	
        <	
                                            *	
   <	
     >	
        >	

                                                   * < num	
          num	
                      num	
        num	
           *	
	




           +
33




                              	
                                                 num	
   +	
        *	
                                           num	
  x	
    >	
        >	
                 	
     	
                                     +	
   <	
    >	
        <	
                                            *	
   <	
    >	
        >	

          num	
                      num	
        num	
           *	
	




           +
34




                             	
                                                num	
   +	
        *	
                                          num	
  x	
    >	
        >	
                	
     	
                                    +	
   <	
    >	
        <	
                                           *	
   <	
    >	
        >	



                     num	
        num	
    num	
          *	
	




          +
35




                             	
                                                num	
    +	
        *	
                                          num	
  x	
     >	
        >	
                	
     	
                                    +	
   <	
     >	
        <	
                                           *	
   <	
     >	
        >	



                     num	
        num	
    num	
   *	
	




          +
36




                       	
                                          num	
    +	
          *	
                                    num	
  x	
     >	
          >	
          	
     	
                              +	
   <	
     >	
          <	
                                     *	
   <	
     >	
          >	



               num	
        num	
    num	
   *	
         +
37




LR 	



1.  E → E + T
2.  E → T
3.  T → T * num
4.  T → num
38




LR 	



1.  E → E + T
2.  E → T
3.  T → T * num
4.  T → num
39




LR 	
                                           	
      GOTO 	
                        *	
   +	
 num	
 $	
        E	
    T	
                  0	
               s3	
           1	
    2	
                  1	
        s4	
          acc	
1.  E → E + T
                  2	
   s5	
 r2	
           r2	
2.  E → T         3	
   r4	
 r4	
           r4	
                  4	
               s3	
                  6	
3.  T → T * num
                  5	
               s7	
4.  T → num	
     6	
   s5	
 r1	
           r1	
                  7	
   r3	
 r3	
           r3
40




LR 	
                           *	
   +	
 num	
 $	
     E	
     T	
                    0	
                   s3	
          1	
     2	

       	




 0	
        num	
         +	
         num	
       *	
         num
41




LR 	
                           *	
   +	
 num	
 $	
       E	
     T	
                    0	
                   s3	
            1	
     2	

       	

                                        shift 3	




 0	
        num	
         +	
         num	
         *	
         num
42




LR 	
                   *	
   +	
 num	
 $	
       E	
     T	
            0	
                   s3	
            1	
     2	

       	

                                shift 3	



                         	



 0	
              +	
         num	
         *	
         num
43




LR 	
                       *	
   +	
 num	
 $	
       E	
     T	
                0	
                   s3	
            1	
     2	

       	

                                    shift 3	
            3   	



 3	

 0	
                  +	
         num	
         *	
         num
44




LR 	
                   *	
    +	
 num	
 $	
     E	
     T	
            3	
     r4	
 r4	
            r4	

       	

                              	




 3	

 0	
              +	
          num	
       *	
         num
45




LR 	
                   *	
     +	
 num	
 $	
      E	
     T	
            3	
     r4	
 r4	
              r4	

       	

                              reduce 4	




 3	

 0	
              +	
            num	
       *	
         num
46




LR 	
                         *	
     +	
 num	
 $	
      E	
     T	
                  3	
       r4	
 r4	
            r4	

       	

                                    reduce 4	



                        4             	
            4	
 3	

 0	
                    +	
            num	
       *	
         num
47




LR 	
                           *	
     +	
 num	
 $	
      E	
     T	
                    3	
     r4	
 r4	
              r4	

       	

            T → num	
                 reduce 4	




             4	
 3	

 0	
                      +	
            num	
       *	
         num
48




LR 	
                                *	
     +	
 num	
 $	
      E	
     T	
                         3	
     r4	
 r4	
              r4	

       	

                 T → num	
                 reduce 4	


            	
                  4	



 0	
                           +	
            num	
       *	
         num
49




LR 	
                           *	
     +	
 num	
 $	
       E	
     T	
                    3	
     r4	
 r4	
               r4	
                    0	
                      s3	
           1	
     2	
       	

            T → num	
                 reduce 4	




             4	



 0	
                      +	
            num	
        *	
         num
50




LR 	
                           *	
     +	
 num	
 $	
         E	
     T	
                    3	
     r4	
 r4	
               r4	
                    0	
                      s3	
             1	
     2	
       	

            T → num	
                 reduce 4	
                                                            go to 2	


             4	



 0	
                      +	
            num	
        *	
           num
51




LR 	
                                   *	
     +	
 num	
 $	
         E	
     T	
                            3	
     r4	
 r4	
               r4	
                            0	
                      s3	
             1	
     2	
          	

                    T → num	
                 reduce 4	
2              	
                                                   go to 2	


                     4	
    2	

    0	
                           +	
            num	
        *	
           num
52




LR 	
                         *	
   +	
 num	
 $	
     E	
     T	
                  2	
     s5	
 r2	
           r2	

       	




            4	
 2	

 0	
                    +	
         num	
       *	
         num
53




LR 	
                         *	
     +	
 num	
 $	
      E	
     T	
                  2	
     s5	
 r2	
              r2	

       	

                                    reduce 2	




            4	
 2	

 0	
                    +	
            num	
       *	
         num
54




LR 	
                         *	
     +	
 num	
 $	
      E	
     T	
                  2	
     s5	
 r2	
              r2	

       	

                                    reduce 2	




            4	
   2	
 2	

 0	
                    +	
            num	
       *	
         num
55




LR 	
                             *	
     +	
 num	
 $	
      E	
     T	
                      2	
     s5	
 r2	
              r2	

       	

            E → T	
                     reduce 2	




            4	
       2	
 2	

 0	
                        +	
            num	
       *	
         num
56




LR 	
                             *	
     +	
 num	
 $	
      E	
     T	
                      2	
     s5	
 r2	
              r2	

       	

            E → T	
                     reduce 2	




            4	
       2	



 0	
                        +	
            num	
       *	
         num
57




LR 	
                             *	
     +	
 num	
 $	
       E	
     T	
                      2	
     s5	
 r2	
               r2	
                      0	
                      s3	
           1	
     2	
       	

            E → T	
                     reduce 2	




            4	
       2	



 0	
                        +	
            num	
        *	
         num
58




LR 	
                             *	
     +	
 num	
 $	
         E	
     T	
                      2	
     s5	
 r2	
               r2	
                      0	
                      s3	
             1	
     2	
       	

            E → T	
                     reduce 2	
                                                              go to 1	


            4	
       2	



 0	
                        +	
            num	
        *	
           num
59




LR 	
                             *	
     +	
 num	
 $	
         E	
     T	
                      2	
     s5	
 r2	
               r2	
                      0	
                      s3	
             1	
     2	
       	

            E → T	
                     reduce 2	
                                                              go to 1	


            4	
       2	
 1	

 0	
                        +	
            num	
        *	
           num
60




LR 	
                         *	
   +	
 num	
 $	
     E	
     T	
                  1	
               s4	
     acc	

       	




            4	
   2	
 1	

 0	
                    +	
         num	
       *	
         num
61




LR 	
                         *	
     +	
 num	
 $	
     E	
     T	
                  1	
                s4	
       acc	

       	
                                    shift 4	




            4	
   2	
 1	

 0	
                    +	
           num	
       *	
         num
62




LR 	
                   *	
     +	
 num	
 $	
     E	
     T	
                  1	
          s4	
       acc	

       	
                              shift 4	




            4	
   2	
 1	

 0	
                            num	
       *	
         num
63




LR 	
                   *	
     +	
 num	
 $	
     E	
     T	
                  1	
          s4	
       acc	

       	
                              shift 4	


 4	
            4	
   2	
 1	

 0	
                            num	
       *	
         num
64




LR 	
                   *	
   +	
 num	
 $	
     E	
     T	
                  4	
             s3	
                  6	

       	




 4	
            4	
   2	
 1	

 0	
                          num	
       *	
         num
65




LR 	
                   *	
   +	
 num	
 $	
         E	
     T	
                  4	
             s3	
                      6	

       	
                                  shift 3	


 4	
            4	
   2	
 1	

 0	
                          num	
           *	
         num
66




LR 	
                   *	
   +	
 num	
 $	
         E	
     T	
                  4	
             s3	
                      6	

       	
                                  shift 3	


 4	
            4	
   2	
 1	

 0	
                                          *	
         num
67




LR 	
                   *	
   +	
 num	
 $	
         E	
     T	
                  4	
             s3	
                      6	

       	
                                  shift 3	
 3	

 4	
            4	
   2	
 1	

 0	
                                          *	
         num
68




LR 	
                   *	
   +	
 num	
 $	
     E	
     T	
                  3	
   r4	
 r4	
       r4	

       	

 3	

 4	
            4	
   2	
 1	

 0	
                                      *	
         num
69




LR 	
                          *	
   +	
 num	
 $	
     E	
     T	
                      3	
   r4	
 r4	
          r4	

       	
                  reduce 4	
 3	

 4	
            4	
       2	
 1	

 0	
                                             *	
         num
70




LR 	
                          *	
     +	
 num	
 $	
      E	
     T	
                      3	
   r4	
 r4	
             r4	

       	
                  reduce 4	
                                        T → N	
 3	

 4	
            4	
       2	
        4	
 1	

 0	
                                                *	
         num
71




LR 	
                          *	
     +	
 num	
 $	
      E	
     T	
                      3	
   r4	
 r4	
             r4	

       	
                  reduce 4	
                                        T → N	


 4	
            4	
       2	
        4	
 1	

 0	
                                                *	
         num
72




LR 	
                          *	
     +	
 num	
 $	
      E	
     T	
                      3	
   r4	
 r4	
             r4	
                      4	
                  s3	
                   6	
       	
                  reduce 4	
                                        T → N	


 4	
            4	
       2	
        4	
 1	

 0	
                                                *	
         num
73




LR 	
                          *	
     +	
 num	
 $	
        E	
     T	
                      3	
   r4	
 r4	
             r4	
                      4	
                  s3	
                     6	
       	
                  reduce 4	
                                        T → N	
                                                          go to 6	

 4	
            4	
       2	
        4	
 1	

 0	
                                                *	
           num
74




LR 	
                          *	
     +	
 num	
 $	
        E	
     T	
                      3	
   r4	
 r4	
             r4	
                      4	
                  s3	
                     6	
       	
                  reduce 4	
                                        T → N	
 6	
                                                          go to 6	

 4	
            4	
       2	
        4	
 1	

 0	
                                                *	
           num
75




LR 	
                   *	
     +	
 num	
 $	
     E	
     T	
                  6	
   s5	
 r1	
         r1	

       	

 6	

 4	
            4	
   2	
     4	
 1	

 0	
                                        *	
         num
76




LR 	
                      *	
      +	
 num	
 $	
     E	
     T	
                  6	
     s5	
 r1	
           r1	

       	

                        shift 5	
 6	

 4	
            4	
   2	
         4	
 1	

 0	
                                            *	
         num
77




LR 	
                      *	
      +	
 num	
 $	
    E	
     T	
                  6	
     s5	
 r1	
           r1	

       	

                        shift 5	
 6	

 4	
            4	
   2	
         4	
 1	

 0	
                                                       num
78




LR 	
                     *	
      +	
 num	
 $	
    E	
     T	
                 6	
     s5	
 r1	
           r1	

  5	
 	

                       shift 5	
 6	

 4	
           4	
   2	
         4	
 1	

 0	
                                                      num
79




LR 	
                  *	
     +	
 num	
 $	
   E	
     T	
                 5	
               s7	

  5	
 	

 6	

 4	
           4	
   2	
     4	
 1	

 0	
                                                 num
80




LR 	
                  *	
     +	
 num	
 $	
   E	
     T	
                 5	
               s7	

  5	
 	

                                 shift 7	
 6	

 4	
           4	
   2	
     4	
 1	

 0	
                                                 num
81




LR 	
                  *	
     +	
 num	
 $	
   E	
    T	
                 5	
               s7	

  5	
 	

                                 shift 7	
 6	

 4	
           4	
   2	
     4	
 1	

 0
82




LR 7	
 	
               *	
     +	
 num	
 $	
   E	
    T	
                  5	
               s7	

   5	
 	

                                  shift 7	
   6	

   4	
            4	
   2	
     4	
   1	

   0
83




LR 7	
 	
               *	
     +	
 num	
 $	
    E	
    T	
                  7	
   r3	
 r3	
         r3	

   5	
 	

   6	

   4	
            4	
   2	
     4	
   1	

   0
84




LR 7	
 	
               *	
     +	
 num	
 $	
    E	
    T	
                  7	
   r3	
 r3	
         r3	

   5	
 	
                                 reduce 3	
   6	

   4	
            4	
   2	
     4	
   1	

   0
85




LR 7	
 	
               *	
     +	
 num	
 $	
    E	
    T	
                  7	
   r3	
 r3	
         r3	

   5	
 	
                                 reduce 3	
   6	

   4	
            4	
   2	
     4	
       3	
   1	

   0
86




LR 7	
 	
               *	
     +	
 num	
 $	
     E	
    T	
                  7	
   r3	
 r3	
          r3	

   5	
 	
                                 reduce 3	
   6	

   4	
            4	
   2	
     4	
        3	
   1	

   0	
                          T → T * N
87




LR 	
                   *	
     +	
 num	
 $	
     E	
    T	
                  7	
   r3	
 r3	
          r3	

       	
                                 reduce 3	



 4	
            4	
   2	
     4	
        3	
 1	

 0	
                            T → T * N
88




LR 	
                   *	
     +	
 num	
 $	
      E	
    T	
                  7	
   r3	
 r3	
           r3	
                  4	
                s3	
                 6	
       	
                                 reduce 3	



 4	
            4	
   2	
     4	
        3	
 1	

 0	
                            T → T * N
89




LR 	
                   *	
     +	
 num	
 $	
        E	
    T	
                  7	
   r3	
 r3	
           r3	
                  4	
                s3	
                   6	
       	
                                 reduce 3	

                                                   go to 6	

 4	
            4	
   2	
     4	
        3	
 1	

 0	
                            T → T * N
90




LR 	
                   *	
     +	
 num	
 $	
        E	
    T	
                  7	
   r3	
 r3	
           r3	
                  4	
                s3	
                   6	
       	
                                 reduce 3	
 6	
                                                   go to 6	

 4	
            4	
   2	
     4	
        3	
 1	

 0	
                            T → T * N
91




LR 	
                   *	
     +	
 num	
 $	
    E	
    T	
                  6	
   s5	
 r1	
         r1	

       	

 6	

 4	
            4	
   2	
     4	
       3	
 1	

 0
92




LR 	
                   *	
     +	
 num	
 $	
    E	
    T	
                  6	
   s5	
 r1	
         r1	

       	
                                 reduce 1	
 6	

 4	
            4	
   2	
     4	
       3	
 1	

 0
93




LR 	
                   *	
     +	
 num	
 $	
       E	
    T	
                  6	
   s5	
 r1	
         r1	

       	
                                 reduce 1	
 6	

 4	
            4	
   2	
     4	
       3	
       1	
 1	

 0
94




LR 	
                   *	
     +	
 num	
 $	
       E	
    T	
                  6	
   s5	
 r1	
         r1	

       	
                                 reduce 1	
 6	

 4	
            4	
   2	
     4	
       3	
       1	
 1	

 0	
                          E → E + T
95




LR 	
                   *	
     +	
 num	
 $	
       E	
    T	
                  6	
   s5	
 r1	
         r1	

       	
                                 reduce 1	




            4	
   2	
     4	
       3	
       1	



 0	
                          E → E + T
96




LR 	
                   *	
     +	
 num	
 $	
       E	
    T	
                  6	
   s5	
 r1	
          r1	
                  0	
               s3	
            1	
    2	
       	
                                 reduce 1	




            4	
   2	
     4	
       3	
       1	



 0	
                          E → E + T
97




LR 	
                   *	
     +	
 num	
 $	
         E	
    T	
                  6	
   s5	
 r1	
          r1	
                  0	
               s3	
              1	
    2	
       	
                                 reduce 1	

                                                    go to 1	


            4	
   2	
     4	
       3	
       1	



 0	
                          E → E + T
98




LR 	
                   *	
     +	
 num	
 $	
         E	
    T	
                  6	
   s5	
 r1	
          r1	
                  0	
               s3	
              1	
    2	
       	
                                 reduce 1	

                                                    go to 1	


            4	
   2	
     4	
       3	
       1	
 1	

 0	
                          E → E + T
99




LR 	
                   *	
     +	
 num	
 $	
        E	
    T	
                  1	
           s4	
         acc	

       	




            4	
   2	
     4	
          3	
     1	
 1	

 0
100




LR 	
                   *	
     +	
 num	
 $	
        E	
     T	
                  1	
           s4	
         acc	

       	
                                  accept !	




            4	
   2	
     4	
          3	
     1	
 1	

 0
101




                  GOTO   	



1.  E → E + T
2.  E → T
3.  T → T * num
4.  T → num
102




                  GOTO   	


0. S → E
1.  E → E + T
2.  E → T
3.  T → T * num
4.  T → num
103




                  GOTO      	


0. S → E
1.  E → E + T
                    LR(0)
2.  E → T             	
3.  T → T * num
4.  T → num
104




                  GOTO        	


0. S → E
1.  E → E + T
                    LR(0)   LR(0)
2.  E → T             	
              	
3.  T → T * num
4.  T → num
105




                  GOTO        	


0. S → E
1.  E → E + T
                    LR(0)   LR(0)
2.  E → T             	
              	
3.  T → T * num
4.  T → num	
                              GOTO
106




LR(0) 	


E → E + T
107




LR(0) 	


E → E + T	
              1)  E →     E+T
              2)  E → E     +T
              3)  E → E +     T
              4)  E → E + T
108




LR(0) 	

                                  	
E → E + T	
              1)  E →     E+T
              2)  E → E     +T
              3)  E → E +     T
              4)  E → E + T
109


                          0.	
  S	
  →	
  E	
           3.  T	
  →	
  T	
  *	
  N	
  
             LR(0)   	
   1.  E	
  →	
  E	
  +	
  T	
   4.  T	
  →	
  N	
                          2.  E	
  →	
  T	
  
I0	
 S	
  →	
   E	
  
 	
  
110


                                   0.	
  S	
  →	
  E	
           3.  T	
  →	
  T	
  *	
  N	
  
              LR(0)           	
   1.  E	
  →	
  E	
  +	
  T	
   4.  T	
  →	
  N	
                                   2.  E	
  →	
  T	
  
I0	
 S	
  →	
   E	
  
 E	
  →	
   E	
  +	
  T	
  
 E	
  →	
   T	
  
 	
  
111


                                       0.	
  S	
  →	
  E	
           3.  T	
  →	
  T	
  *	
  N	
  
              LR(0)               	
   1.  E	
  →	
  E	
  +	
  T	
   4.  T	
  →	
  N	
                                       2.  E	
  →	
  T	
  
I0	
 S	
  →	
     E	
  
 E	
  →	
     E	
  +	
  T	
  
 E	
  →	
     T	
  
 T	
  →	
     T	
  *	
  num	
  
 T	
  →	
     num
112


                                         0.	
  S	
  →	
  E	
           3.  T	
  →	
  T	
  *	
  N	
  
                 LR(0)              	
   1.  E	
  →	
  E	
  +	
  T	
   4.  T	
  →	
  N	
                                         2.  E	
  →	
  T	
  
 I0	
  S	
  →	
      E	
  
  E	
  →	
      E	
  +	
  T	
  
  E	
  →	
      T	
  
  T	
  →	
      T	
  *	
  num	
  
  T	
  →	
      num	

E	

 I1	
  S	
  →	
  E	
   	
  
  E	
  →	
  E	
   	
  +	
  T	
  
113


                                                      0.	
  S	
  →	
  E	
           3.  T	
  →	
  T	
  *	
  N	
  
                 LR(0)                        	
      1.  E	
  →	
  E	
  +	
  T	
   4.  T	
  →	
  N	
                                                      2.  E	
  →	
  T	
  
 I0	
                                 I2	
  S	
  →	
      E	
                     E	
  →	
  T	
   	
  
  E	
  →	
      E	
  +	
  T	
           T	
  →	
  T	
   	
  *	
  num	
  
                                    T	
  E	
  →	
      T	
  
  T	
  →	
      T	
  *	
  num	
  
  T	
  →	
      num	

E	

 I1	
  S	
  →	
  E	
   	
  
  E	
  →	
  E	
   	
  +	
  T	
  
114


                                                        0.	
  S	
  →	
  E	
           3.  T	
  →	
  T	
  *	
  N	
  
                 LR(0)                          	
      1.  E	
  →	
  E	
  +	
  T	
   4.  T	
  →	
  N	
                                                        2.  E	
  →	
  T	
  
 I0	
                                   I2	
  S	
  →	
      E	
                       E	
  →	
  T	
   	
  
  E	
  →	
      E	
  +	
  T	
             T	
  →	
  T	
   	
  *	
  num	
  
                                      T	
  E	
  →	
      T	
  
  T	
  →	
      T	
  *	
  num	
  
  T	
  →	
      num	
       num	
                       I3	
E	
         T	
  →	
  num	
   	
  	
  

 I1	
  S	
  →	
  E	
   	
  
  E	
  →	
  E	
   	
  +	
  T	
  
115


                                                        0.	
  S	
  →	
  E	
           3.  T	
  →	
  T	
  *	
  N	
  
                LR(0)                          	
       1.  E	
  →	
  E	
  +	
  T	
   4.  T	
  →	
  N	
                                                        2.  E	
  →	
  T	
  
 I0	
                                  I2	
  S	
  →	
     E	
                       E	
  →	
  T	
   	
  
  E	
  →	
     E	
  +	
  T	
             T	
  →	
  T	
   	
  *	
  num	
  
                                     T	
  E	
  →	
     T	
  
  T	
  →	
     T	
  *	
  num	
  
  T	
  →	
     num	
      num	
                      I3	
E	
        T	
  →	
  num	
   	
  	
           E	
  →	
  E	
  +	
   T	
  

 I1	
  S	
  →	
  E	
   	
                                                I4	
                                 +	
  E	
  →	
  E	
   	
  +	
  T	
  
116


                                                       0.	
  S	
  →	
  E	
           3.  T	
  →	
  T	
  *	
  N	
  
                LR(0)                          	
      1.  E	
  →	
  E	
  +	
  T	
   4.  T	
  →	
  N	
                                                       2.  E	
  →	
  T	
  
 I0	
                                  I2	
  S	
  →	
     E	
                       E	
  →	
  T	
   	
  
  E	
  →	
     E	
  +	
  T	
             T	
  →	
  T	
   	
  *	
  num	
  
                                     T	
  E	
  →	
     T	
  
  T	
  →	
     T	
  *	
  num	
  
  T	
  →	
     num	
      num	
                      I3	
E	
        T	
  →	
  num	
   	
  	
           E	
  →	
  E	
  +	
   T	
  
                                           T	
  →	
   T	
  *	
  num	
  
 I1	
                                      T	
  →	
   num	
  
  S	
  →	
  E	
   	
                                                I4	
                                 +	
  E	
  →	
  E	
   	
  +	
  T	
  
117


                                                     0.	
  S	
  →	
  E	
           3.  T	
  →	
  T	
  *	
  N	
  
               LR(0)                         	
      1.  E	
  →	
  E	
  +	
  T	
   4.  T	
  →	
  N	
                                                     2.  E	
  →	
  T	
  
 I0	
                                I2	
  S	
  →	
     E	
                     E	
  →	
  T	
   	
  
  E	
  →	
     E	
  +	
  T	
           T	
  →	
  T	
   	
  *	
  num	
  
                                   T	
  E	
  →	
     T	
  
  T	
  →	
     T	
  *	
  num	
  
  T	
  →	
     num	
      num	
                      I3	
E	
        T	
  →	
  num	
   	
  	
      E	
  →	
  E	
  +	
   T	
  
                                num	
 T	
  →	
   T	
  *	
  num	
  
 I1	
                                T	
  →	
   num	
  
  S	
  →	
  E	
   	
                                    I4	
                                 +	
  E	
  →	
  E	
   	
  +	
  T	
  
118


                                                     0.	
  S	
  →	
  E	
           3.  T	
  →	
  T	
  *	
  N	
  
               LR(0)                         	
      1.  E	
  →	
  E	
  +	
  T	
   4.  T	
  →	
  N	
                                                     2.  E	
  →	
  T	
  
 I0	
                                I2	
  S	
  →	
     E	
                     E	
  →	
  T	
   	
  
  E	
  →	
     E	
  +	
  T	
           T	
  →	
  T	
   	
  *	
  num	
  
                                   T	
  E	
  →	
     T	
  
                                     I5	
              *	
  T	
  →	
     T	
  *	
  num	
  
  T	
  →	
     num	
                     T	
  →	
  T	
  *	
   num	
  
      num	
                      I3	
E	
        T	
  →	
  num	
   	
  	
      E	
  →	
  E	
  +	
   T	
  
                                num	
 T	
  →	
   T	
  *	
  num	
  
 I1	
                                T	
  →	
   num	
  
  S	
  →	
  E	
   	
                                    I4	
                                 +	
  E	
  →	
  E	
   	
  +	
  T	
  
119


                                                     0.	
  S	
  →	
  E	
           3.  T	
  →	
  T	
  *	
  N	
  
               LR(0)                         	
      1.  E	
  →	
  E	
  +	
  T	
   4.  T	
  →	
  N	
                                                     2.  E	
  →	
  T	
  
 I0	
                                I2	
  S	
  →	
     E	
                     E	
  →	
  T	
   	
  
  E	
  →	
     E	
  +	
  T	
           T	
  →	
  T	
   	
  *	
  num	
  
                                   T	
  E	
  →	
     T	
  
                                     I5	
              *	
  T	
  →	
     T	
  *	
  num	
  
  T	
  →	
     num	
                     T	
  →	
  T	
  *	
   num	
  
      num	
                                                                                                I6	
                      I3	
                                                       E	
  →	
  E	
  +	
  T	
   	
  
E	
        T	
  →	
  num	
   	
  	
      E	
  →	
  E	
  +	
   T	
                   T	
  →	
  T	
   	
  *	
  num	
  
                                num	
 T	
  →	
   T	
  *	
  num	
  
                                                                          T	
 I1	
                                T	
  →	
   num	
  
  S	
  →	
  E	
   	
                                    I4	
                                 +	
  E	
  →	
  E	
   	
  +	
  T	
  
120


                                                      0.	
  S	
  →	
  E	
           3.  T	
  →	
  T	
  *	
  N	
  
                 LR(0)                        	
      1.  E	
  →	
  E	
  +	
  T	
   4.  T	
  →	
  N	
                                                      2.  E	
  →	
  T	
  
  I0	
                                I2	
   S	
  →	
     E	
                     E	
  →	
  T	
   	
  
   E	
  →	
     E	
  +	
  T	
           T	
  →	
  T	
   	
  *	
  num	
  
                                    T	
   E	
  →	
     T	
  
                                      I5	
              *	
   T	
  →	
     T	
  *	
  num	
  
   T	
  →	
     num	
                     T	
  →	
  T	
  *	
   num	
  
        num	
                                                            *	
                          I6	
                           I3	
                                             E	
  →	
  E	
  +	
  T	
   	
  
E	
         T	
  →	
  num	
   	
  	
        E	
  →	
  E	
  +	
   T	
           T	
  →	
  T	
   	
  *	
  num	
  
                                   num	
 T	
  →	
   T	
  *	
  num	
  
                                                                       T	
  I1	
                                   T	
  →	
   num	
  
    S	
  →	
  E	
   	
                                            I4	
                                    +	
    E	
  →	
  E	
   	
  +	
  T	
  
121


                                                      0.	
  S	
  →	
  E	
           3.  T	
  →	
  T	
  *	
  N	
  
                 LR(0)                        	
      1.  E	
  →	
  E	
  +	
  T	
   4.  T	
  →	
  N	
                                                      2.  E	
  →	
  T	
  
  I0	
                                I2	
   S	
  →	
     E	
                     E	
  →	
  T	
   	
  
   E	
  →	
     E	
  +	
  T	
           T	
  →	
  T	
   	
  *	
  num	
         I7	
                                    T	
   E	
  →	
     T	
                                                             T	
  →	
  T	
  *	
  num	
   	
  	
  
                                      I5	
              *	
   T	
  →	
     T	
  *	
  num	
  
   T	
  →	
     num	
                                                         num	
                                          T	
  →	
  T	
  *	
   num	
  
        num	
                                                            *	
                          I6	
                           I3	
                                             E	
  →	
  E	
  +	
  T	
   	
  
E	
         T	
  →	
  num	
   	
  	
        E	
  →	
  E	
  +	
   T	
           T	
  →	
  T	
   	
  *	
  num	
  
                                   num	
 T	
  →	
   T	
  *	
  num	
  
                                                                       T	
  I1	
                                   T	
  →	
   num	
  
    S	
  →	
  E	
   	
                                            I4	
                                    +	
    E	
  →	
  E	
   	
  +	
  T	
  
122




LR(0)                    	

                  T	
        I0	
               I2	
                 I7	
               num	
              *	
                                               num	
    E	
           I3	
                  I5	
                         num	
                 *	
                  +	
                   T	
        I1	
               I4	
                 I6
123




LR(0)                         	
      *	
   +	
 num	
 E	
      T	
0	
               3	
   1	
    2	
1	
         4	
2	
   5	
3	
4	
               3	
          6	
5	
               7	
6	
   5	
7
124




                           GOTO 	
      *	
    +	
 num	
 $	
    E	
   T	
0	
                 s3	
      1	
   2	
1	
          s4	
2	
   s5	
3	
4	
                 s3	
            6	
5	
                 s7	
6	
   s5	
7
125




                           GOTO 	
      *	
    +	
 num	
 $	
    E	
   T	
0	
                 s3	
      1	
   2	
   I1	
1	
          s4	
                          S	
  →	
  E	
   	
  
2	
   s5	
                                 E	
  →	
  E	
   	
  +	
  T	
  
3	
4	
                 s3	
            6	
5	
                 s7	
6	
   s5	
7
126




                           GOTO 	
      *	
    +	
 num	
 $	
         E	
   T	
0	
                 s3	
           1	
   2	
   I1	
1	
          s4	
          acc	
                S	
  →	
  E	
   	
  
2	
   s5	
                                      E	
  →	
  E	
   	
  +	
  T	
  
3	
4	
                 s3	
                 6	
5	
                 s7	
6	
   s5	
7
127




                           GOTO 	
                                               I2	
      *	
    +	
 num	
 $	
         E	
   T	
    E	
  →	
  T	
   	
  
0	
                 s3	
           1	
   2	
    T	
  →	
  T	
   	
  *	
  num	
  
1	
          s4	
          acc	
2	
   s5	
3	
4	
                 s3	
                 6	
5	
                 s7	
6	
   s5	
7
128




                           GOTO 	
                                      2	
                                               I2	
      *	
    +	
 num	
 $	
         E	
   T	
    E	
  →	
  T	
   	
  
0	
                 s3	
           1	
   2	
    T	
  →	
  T	
   	
  *	
  num	
  
1	
          s4	
          acc	
2	
   s5	
3	
4	
                 s3	
                 6	
5	
                 s7	
6	
   s5	
7
129




                           GOTO 	
                          reduce 2	
                                               I2	
      *	
    +	
 num	
 $	
         E	
   T	
    E	
  →	
  T	
   	
  
0	
                 s3	
           1	
   2	
    T	
  →	
  T	
   	
  *	
  num	
  
1	
          s4	
          acc	
2	
   s5	
3	
4	
                 s3	
                 6	
5	
                 s7	
6	
   s5	
7
130




                           GOTO 	
                          reduce 2	
                                               I2	
      *	
    +	
 num	
 $	
         E	
   T	
    E	
  →	
  T	
   	
  
0	
                 s3	
           1	
   2	
    T	
  →	
  T	
   	
  *	
  num	
  
1	
          s4	
          acc	
2	
   s5	
3	
                                                  shift 5	
4	
                 s3	
                 6	
5	
                 s7	
6	
   s5	
7
131




                           GOTO 	
                          reduce 2	
                                               I2	
      *	
    +	
 num	
 $	
         E	
   T	
    E	
  →	
  T	
   	
  
0	
                 s3	
           1	
   2	
    T	
  →	
  T	
   	
  *	
  num	
  
1	
          s4	
          acc	
2	
   s5	
3	
                                                  shift 5	
4	
                 s3	
                 6	
5	
                 s7	
                                                    shift-reduce
6	
   s5	
                                            conflict	
7
132




shift-reduce conflict           (SLR )	

0.	
  S	
  →	
  E	
  
1.  E	
  →	
  E	
  +	
  T	
  
2.  E	
  →	
  T	
  
3.  T	
  →	
  T	
  *	
  N	
  
4.  T	
  →	
  N
133




shift-reduce conflict           (SLR )	

0.	
  S	
  →	
  E	
  
1.  E	
  →	
  E	
  +	
  T	
  
2.  E	
  →	
  T	
  
3.  T	
  →	
  T	
  *	
  N	
  
4.  T	
  →	
  N
134




shift-reduce conflict                             (SLR )	

0.	
  S	
  →	
  E	
  
                                  E
1.  E	
  →	
  E	
  +	
  T	
      +                 $
2.  E	
  →	
  T	
  
3.  T	
  →	
  T	
  *	
  N	
  
4.  T	
  →	
  N	

                                •  +   $         reduce
                                •  *   shift
135




                         GOTO 	
                          reduce 2	
                                             I2	
      *	
    +	
 num	
 $	
       E	
   T	
    E	
  →	
  T	
   	
  
0	
               s3	
           1	
   2	
    T	
  →	
  T	
   	
  *	
  num	
  
1	
        s4	
          acc	
2	
   s5	
 r2	
           r2	
3	
                                                shift 5	
4	
               s3	
                 6	
5	
               s7	
                                                  shift reduce
6	
   s5	
                                          conflict	
7
136




                         GOTO 	
                                             I3	
      *	
    +	
 num	
 $	
       E	
   T	
     T	
  →	
  num	
   	
  	
  
0	
               s3	
           1	
   2	
1	
        s4	
          acc	
2	
   s5	
 r2	
           r2	
3	
4	
               s3	
                 6	
5	
               s7	
6	
   s5	
7
137




                         GOTO 	
                        reduce 4	
                                             I3	
      *	
    +	
 num	
 $	
       E	
   T	
     T	
  →	
  num	
   	
  	
  
0	
               s3	
           1	
   2	
1	
        s4	
          acc	
2	
   s5	
 r2	
           r2	
3	
4	
               s3	
                 6	
5	
               s7	
6	
   s5	
7
138




                         GOTO 	
                        reduce 4	
                                             I3	
      *	
    +	
 num	
 $	
       E	
   T	
     T	
  →	
  num	
   	
  	
  
0	
               s3	
           1	
   2	
1	
        s4	
          acc	
2	
   s5	
 r2	
           r2	
3	
   r4	
 r4	
           r4	
4	
               s3	
                 6	
5	
               s7	
6	
   s5	
7
139




                         GOTO 	
                                             I6	
      *	
    +	
 num	
 $	
       E	
   T	
    E	
  →	
  E	
  +	
  T	
   	
  
0	
               s3	
           1	
   2	
    T	
  →	
  T	
   	
  *	
  num	
  
1	
        s4	
          acc	
2	
   s5	
 r2	
           r2	
3	
   r4	
 r4	
           r4	
4	
               s3	
                 6	
5	
               s7	
6	
   s5	
7
140




                         GOTO 	
                          reduce 1	
                                             I6	
      *	
    +	
 num	
 $	
       E	
   T	
    E	
  →	
  E	
  +	
  T	
   	
  
0	
               s3	
           1	
   2	
    T	
  →	
  T	
   	
  *	
  num	
  
1	
        s4	
          acc	
2	
   s5	
 r2	
           r2	
3	
   r4	
 r4	
           r4	
4	
               s3	
                 6	
5	
               s7	
6	
   s5	
7
141




                         GOTO 	
                          reduce 1	
                                             I6	
      *	
    +	
 num	
 $	
       E	
   T	
    E	
  →	
  E	
  +	
  T	
   	
  
0	
               s3	
           1	
   2	
    T	
  →	
  T	
   	
  *	
  num	
  
1	
        s4	
          acc	
2	
   s5	
 r2	
           r2	
3	
   r4	
 r4	
           r4	
                     shift 5	
4	
               s3	
                 6	
5	
               s7	
6	
   s5	
7
142




                         GOTO 	
                          reduce 1	
                                             I6	
      *	
    +	
 num	
 $	
       E	
   T	
    E	
  →	
  E	
  +	
  T	
   	
  
0	
               s3	
           1	
   2	
    T	
  →	
  T	
   	
  *	
  num	
  
1	
        s4	
          acc	
2	
   s5	
 r2	
           r2	
3	
   r4	
 r4	
           r4	
                     shift 5	
4	
               s3	
                 6	
5	
               s7	
6	
   s5	
                                    E
7	
                                          +                     $
143




                         GOTO 	
                          reduce 1	
                                             I6	
      *	
   +	
 num	
 $	
        E	
   T	
    E	
  →	
  E	
  +	
  T	
   	
  
0	
               s3	
           1	
   2	
    T	
  →	
  T	
   	
  *	
  num	
  
1	
        s4	
          acc	
2	
   s5	
 r2	
           r2	
3	
   r4	
 r4	
           r4	
                     shift 5	
4	
               s3	
                 6	
5	
               s7	
6	
   s5	
 r1	
          r1	
                 E
7	
                                          +                     $
144




                         GOTO 	
                                             I7	
      *	
   +	
 num	
 $	
        E	
   T	
    T	
  →	
  T	
  *	
  num	
   	
  	
  
0	
               s3	
           1	
   2	
1	
        s4	
          acc	
2	
   s5	
 r2	
           r2	
3	
   r4	
 r4	
           r4	
4	
               s3	
                 6	
5	
               s7	
6	
   s5	
 r1	
          r1	
7
145




                         GOTO 	
                           reduce 3	
                                             I7	
      *	
   +	
 num	
 $	
        E	
   T	
    T	
  →	
  T	
  *	
  num	
   	
  	
  
0	
               s3	
           1	
   2	
1	
        s4	
          acc	
2	
   s5	
 r2	
           r2	
3	
   r4	
 r4	
           r4	
4	
               s3	
                 6	
5	
               s7	
6	
   s5	
 r1	
          r1	
7
146




                         GOTO 	
                           reduce 3	
                                             I7	
      *	
   +	
 num	
 $	
        E	
   T	
    T	
  →	
  T	
  *	
  num	
   	
  	
  
0	
               s3	
           1	
   2	
1	
        s4	
          acc	
2	
   s5	
 r2	
           r2	
3	
   r4	
 r4	
           r4	
4	
               s3	
                 6	
5	
               s7	
6	
   s5	
 r1	
          r1	
7	
   r3	
 r3	
          r3
147




                         GOTO 	
      *	
   +	
 num	
 $	
        E	
   T	
0	
               s3	
           1	
   2	
1	
        s4	
          acc	
2	
   s5	
 r2	
           r2	
3	
   r4	
 r4	
           r4	
4	
               s3	
                 6	
5	
               s7	
6	
   s5	
 r1	
          r1	
7	
   r3	
 r3	
          r3
148




                              	
                    	
                 	
        	
            	
   O(n)	
                                     	
LR(0)	
          O(n)	
      LR(0)          	
SLR(1)	
         O(n)	
     SLR(1)          	
LALR(1)	
        O(n)	
    LALR(1)          	
         	
LR(1)            O(n)	
      LR(1)          	
GLR              O(n3)	
                    	
SDF      	


                                   O(n)
149




                          	

           	

LR(1)	
                               	
   LALR(1)	
          SLR(1)	
                LR(0)
150




              	
        expr	




2   +     3        *   4
151




                    	
              expr	


                         expr	




num	
   +	


 2      +       3         *       4
152




                    	
              expr	


                         expr	




num	
   +	
   num	
       *	
     num	


 2      +       3         *        4
153




                       	
•  (      )

•  Backtrack parsing

•  Packrat parsing
154




                                          	
         E	


1.  E	
  	
  →	
  T	
  E’	
  
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
3.  T	
  	
  →	
  num	
  T’	
  
4.  T’	
  →	
  *	
  T	
  |	
  ε	



   num	
             +	
          num	
        *	
     num
155




                                             	
              E	


1.  E	
  	
  →	
  T	
  E’	
  
                                          LL(1)         	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
3.  T	
  	
  →	
  num	
  T’	
  
4.  T’	
  →	
  *	
  T	
  |	
  ε	



   num	
             +	
          num	
           *	
          num
156




                                          	
         E	


1.  E	
  	
  →	
  T	
  E’	
  
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
3.  T	
  	
  →	
  num	
  T’	
  
4.  T’	
  →	
  *	
  T	
  |	
  ε	



   num	
              +	
         num	
        *	
     num
157




                                                	
         E	

                                                                 E’	
1.  E	
  	
  →	
  T	
  E’	
               T	

2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
3.  T	
  	
  →	
  num	
  T’	
  
4.  T’	
  →	
  *	
  T	
  |	
  ε	



   num	
              +	
         num	
              *	
     num
158




                                                	
         E	

                                                                 E’	
1.  E	
  	
  →	
  T	
  E’	
               T	

2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
3.  T	
  	
  →	
  num	
  T’	
  
4.  T’	
  →	
  *	
  T	
  |	
  ε	



   num	
             +	
          num	
              *	
     num
159




                                                	
         E	

                                                                 E’	
1.  E	
  	
  →	
  T	
  E’	
               T	

2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
3.  T	
  	
  →	
  num	
  T’	
  
4.  T’	
  →	
  *	
  T	
  |	
  ε	



   num	
             +	
          num	
              *	
     num
160




                                                	
         E	

                                                                 E’	
1.  E	
  	
  →	
  T	
  E’	
               T	

2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
3.  T	
  	
  →	
  num	
  T’	
  
4.  T’	
  →	
  *	
  T	
  |	
  ε	



   num	
             +	
          num	
              *	
     num
161




                                                	
         E	

                                                                 E’	
1.  E	
  	
  →	
  T	
  E’	
               T	

2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
3.  T	
  	
  →	
  num	
  T’	
  
4.  T’	
  →	
  *	
  T	
  |	
  ε	



   num	
             +	
          num	
              *	
     num
162




                                                	
         E	

                                                                 E’	
1.  E	
  	
  →	
  T	
  E’	
               T	

2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
3.  T	
  	
  →	
  num	
  T’	
  
4.  T’	
  →	
  *	
  T	
  |	
  ε	



   num	
             +	
          num	
              *	
     num
163




                                                   	
         E	

                                                                    E’	
1.  E	
  	
  →	
  T	
  E’	
                  T	

2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
        T’	
3.  T	
  	
  →	
  num	
  T’	
  
4.  T’	
  →	
  *	
  T	
  |	
  ε	

                     1                 +	

   num	
             +	
          num	
                 *	
     num
164




                                                	
         E	

                                                                 E’	
1.  E	
  	
  →	
  T	
  E’	
               T	

2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
3.  T	
  	
  →	
  num	
  T’	
  
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	




   num	
             +	
          num	
              *	
     num
165




                                                	
         E	

                                                                 E’	
1.  E	
  	
  →	
  T	
  E’	
               T	

2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
3.  T	
  	
  →	
  num	
  T’	
  
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	




   num	
             +	
          num	
              *	
     num
166




                                                	
         E	

                                                                 E’	
1.  E	
  	
  →	
  T	
  E’	
               T	

2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
3.  T	
  	
  →	
  num	
  T’	
  
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	




   num	
             +	
          num	
              *	
     num
167




                                                   	
         E	

                                                                    E’	
1.  E	
  	
  →	
  T	
  E’	
                  T	

2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
        T’	
3.  T	
  	
  →	
  num	
  T’	
  
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                   ε	

                     1                 +	

   num	
             +	
          num	
                 *	
     num
168




                                                	
         E	

                                                                 E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                           +	
          E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
3.  T	
  	
  →	
  num	
  T’	
  
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	




   num	
             +	
          num	
              *	
     num
169




                                                	
         E	

                                                                 E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                           +	
          E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
3.  T	
  	
  →	
  num	
  T’	
  
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	




   num	
             +	
          num	
              *	
     num
170




                                                	
         E	

                                                                 E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                           +	
          E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
3.  T	
  	
  →	
  num	
  T’	
  
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	




   num	
             +	
          num	
              *	
     num
171




                                                	
         E	

                                                                 E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                           +	
          E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
3.  T	
  	
  →	
  num	
  T’	
  
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	




   num	
              +	
         num	
              *	
     num
172




                                                	
         E	

                                                                 E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                           +	
          E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                 T	
          E’	
3.  T	
  	
  →	
  num	
  T’	
  
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	




   num	
              +	
         num	
              *	
     num
173




                                                	
         E	

                                                                 E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                           +	
          E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                 T	
          E’	
3.  T	
  	
  →	
  num	
  T’	
  
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	




   num	
             +	
          num	
              *	
     num
174




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
           E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
           E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
          T’	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	




   num	
             +	
          num	
              *	
      num
175




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
           E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
           E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
          T’	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	




   num	
             +	
          num	
              *	
      num
176




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
           E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
           E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
          T’	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	




   num	
             +	
          num	
              *	
      num
177




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
           E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
           E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
          T’	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	




   num	
             +	
          num	
              *	
      num
178




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
           E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
           E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
          T’	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	

                                                 1                  *	

   num	
             +	
          num	
              *	
      num
179




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
           E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
           E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
          T’	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	
                                                                   *	
           T	


   num	
             +	
          num	
              *	
      num
180




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
           E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
           E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
          T’	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	
                                                                   *	
           T	


   num	
             +	
          num	
              *	
      num
181




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
           E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
           E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
          T’	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	
                                                                   *	
           T	


   num	
             +	
          num	
              *	
      num
182




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
           E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
           E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
          T’	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	
                                                                   *	
           T	


   num	
             +	
          num	
              *	
      num
183




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
            E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
            E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
          T’	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	
                                                                   *	
            T	

                                                                          num	
          T’	
   num	
             +	
          num	
              *	
      num
184




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
            E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
            E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
          T’	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	
                                                                   *	
            T	

                                                                          num	
          T’	
   num	
             +	
          num	
              *	
      num
185




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
            E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
            E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
          T’	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	
                                                                   *	
            T	

                                                                          num	
          T’	
   num	
             +	
          num	
              *	
      num
186




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
            E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
            E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
          T’	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	
                                                                   *	
            T	

                                                                          num	
          T’	
   num	
             +	
          num	
              *	
      num
187




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
              E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
              E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
            T’	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                   ε	
                                                1                  *	
 	
           T	

                                                                            num	
          T’	
   num	
             +	
          num	
              *	
      num
188




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
            E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
            E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
          T’	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	
                                                                   *	
            T	

                                                                          num	
          T’	
   num	
             +	
          num	
              *	
      num	

                                                                                         ε
189




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
            E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
            E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
          T’	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	
                                                                   *	
            T	

                                                                          num	
          T’	
   num	
             +	
          num	
              *	
      num	

                                                                                         ε
190




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
            E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
            E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
          T’	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	
                                                                   *	
            T	

                                                                          num	
          T’	
   num	
             +	
          num	
              *	
      num	

                                                                                         ε
191




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
            E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
            E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
          T’	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	
                                                                   *	
            T	

                                                                          num	
          T’	
   num	
             +	
          num	
              *	
      num	

                                                                                         ε
192




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
            E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
            E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
          T’	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	
                                                                   *	
            T	

                                                                          num	
          T’	
   num	
             +	
          num	
              *	
      num	

                                                                                         ε
193




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
              E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
              E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
            T’	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                   ε	
                                                1                  *	
 	
           T	

                                                                            num	
          T’	
   num	
             +	
          num	
              *	
      num	

                                                                                           ε
194




                                                	
          E	

                                                                   E’	
1.  E	
  	
  →	
  T	
  E’	
               T	
                                                            +	
            E	
2.  E’	
  →	
  +	
  E	
  |	
  ε	
  
                                      num	
     T’	
                                                                   T	
            E’	
3.  T	
  	
  →	
  num	
  T’	
  
                                                           num	
          T’	
           ε	
4.  T’	
  →	
  *	
  T	
  |	
  ε	
                ε	
                                                                   *	
            T	

                                                                          num	
          T’	
   num	
             +	
          num	
              *	
      num	

                                                                                         ε
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析
ビジュアル構文解析

More Related Content

ビジュアル構文解析

  • 1. 1
  • 2. 2
  • 3. 3
  • 4. 4
  • 5. 5
  • 6. 6
  • 7. 7
  • 8. 8
  • 9. 9
  • 10. 10
  • 11. 11
  • 12. 12
  • 13. 13 •  • 
  • 14. 14 num + num * num 2 + 3 * 4
  • 15. 15 expr num + num * num 2 + 3 * 4
  • 16. 16 expr expr num + num * num 2 + 3 * 4
  • 17. 17 •  •  LR •  SLR •  LALR •  GLR •  etc...
  • 18. 18 num + * num x > > + < > < * < > > num + num * num
  • 19. 19 num + * num x > > + < > < * < > > num + num * num
  • 20. 20 num > + num + * num x > > + < > < * < > > num + num * num
  • 21. 21 num > + num + * num x > > + < > < * < > > num + num * num
  • 22. 22 num + * num x > > + < > < * < > > num + num * num
  • 23. 23 + < num num + * num x > > + < > < * < > > num + num * num
  • 24. 24 + < num num + * num x > > + < > < * < > > num num + * num
  • 25. 25 num + * num x > > + < > < * < > > num num + * num
  • 26. 26 num > * num + * num x > > + < > < * < > > num num + * num
  • 27. 27 num > * num + * num x > > + < > < * < > > num num + * num
  • 28. 28 num + * num x > > + < > < * < > > + < * num num + * num
  • 29. 29 num + * num x > > + < > < * < > > + < * num num * + num
  • 30. 30 num + * num x > > + < > < * < > > num num * + num
  • 31. 31 num + * num x > > + < > < * < > > * < num num num * + num
  • 32. 32 num + * num x > > + < > < * < > > * < num num num num * +
  • 33. 33 num + * num x > > + < > < * < > > num num num * +
  • 34. 34 num + * num x > > + < > < * < > > num num num * +
  • 35. 35 num + * num x > > + < > < * < > > num num num * +
  • 36. 36 num + * num x > > + < > < * < > > num num num * +
  • 37. 37 LR 1.  E → E + T 2.  E → T 3.  T → T * num 4.  T → num
  • 38. 38 LR 1.  E → E + T 2.  E → T 3.  T → T * num 4.  T → num
  • 39. 39 LR GOTO * + num $ E T 0 s3 1 2 1 s4 acc 1.  E → E + T 2 s5 r2 r2 2.  E → T 3 r4 r4 r4 4 s3 6 3.  T → T * num 5 s7 4.  T → num 6 s5 r1 r1 7 r3 r3 r3
  • 40. 40 LR * + num $ E T 0 s3 1 2 0 num + num * num
  • 41. 41 LR * + num $ E T 0 s3 1 2 shift 3 0 num + num * num
  • 42. 42 LR * + num $ E T 0 s3 1 2 shift 3 0 + num * num
  • 43. 43 LR * + num $ E T 0 s3 1 2 shift 3 3 3 0 + num * num
  • 44. 44 LR * + num $ E T 3 r4 r4 r4 3 0 + num * num
  • 45. 45 LR * + num $ E T 3 r4 r4 r4 reduce 4 3 0 + num * num
  • 46. 46 LR * + num $ E T 3 r4 r4 r4 reduce 4 4 4 3 0 + num * num
  • 47. 47 LR * + num $ E T 3 r4 r4 r4 T → num reduce 4 4 3 0 + num * num
  • 48. 48 LR * + num $ E T 3 r4 r4 r4 T → num reduce 4 4 0 + num * num
  • 49. 49 LR * + num $ E T 3 r4 r4 r4 0 s3 1 2 T → num reduce 4 4 0 + num * num
  • 50. 50 LR * + num $ E T 3 r4 r4 r4 0 s3 1 2 T → num reduce 4 go to 2 4 0 + num * num
  • 51. 51 LR * + num $ E T 3 r4 r4 r4 0 s3 1 2 T → num reduce 4 2 go to 2 4 2 0 + num * num
  • 52. 52 LR * + num $ E T 2 s5 r2 r2 4 2 0 + num * num
  • 53. 53 LR * + num $ E T 2 s5 r2 r2 reduce 2 4 2 0 + num * num
  • 54. 54 LR * + num $ E T 2 s5 r2 r2 reduce 2 4 2 2 0 + num * num
  • 55. 55 LR * + num $ E T 2 s5 r2 r2 E → T reduce 2 4 2 2 0 + num * num
  • 56. 56 LR * + num $ E T 2 s5 r2 r2 E → T reduce 2 4 2 0 + num * num
  • 57. 57 LR * + num $ E T 2 s5 r2 r2 0 s3 1 2 E → T reduce 2 4 2 0 + num * num
  • 58. 58 LR * + num $ E T 2 s5 r2 r2 0 s3 1 2 E → T reduce 2 go to 1 4 2 0 + num * num
  • 59. 59 LR * + num $ E T 2 s5 r2 r2 0 s3 1 2 E → T reduce 2 go to 1 4 2 1 0 + num * num
  • 60. 60 LR * + num $ E T 1 s4 acc 4 2 1 0 + num * num
  • 61. 61 LR * + num $ E T 1 s4 acc shift 4 4 2 1 0 + num * num
  • 62. 62 LR * + num $ E T 1 s4 acc shift 4 4 2 1 0 num * num
  • 63. 63 LR * + num $ E T 1 s4 acc shift 4 4 4 2 1 0 num * num
  • 64. 64 LR * + num $ E T 4 s3 6 4 4 2 1 0 num * num
  • 65. 65 LR * + num $ E T 4 s3 6 shift 3 4 4 2 1 0 num * num
  • 66. 66 LR * + num $ E T 4 s3 6 shift 3 4 4 2 1 0 * num
  • 67. 67 LR * + num $ E T 4 s3 6 shift 3 3 4 4 2 1 0 * num
  • 68. 68 LR * + num $ E T 3 r4 r4 r4 3 4 4 2 1 0 * num
  • 69. 69 LR * + num $ E T 3 r4 r4 r4 reduce 4 3 4 4 2 1 0 * num
  • 70. 70 LR * + num $ E T 3 r4 r4 r4 reduce 4 T → N 3 4 4 2 4 1 0 * num
  • 71. 71 LR * + num $ E T 3 r4 r4 r4 reduce 4 T → N 4 4 2 4 1 0 * num
  • 72. 72 LR * + num $ E T 3 r4 r4 r4 4 s3 6 reduce 4 T → N 4 4 2 4 1 0 * num
  • 73. 73 LR * + num $ E T 3 r4 r4 r4 4 s3 6 reduce 4 T → N go to 6 4 4 2 4 1 0 * num
  • 74. 74 LR * + num $ E T 3 r4 r4 r4 4 s3 6 reduce 4 T → N 6 go to 6 4 4 2 4 1 0 * num
  • 75. 75 LR * + num $ E T 6 s5 r1 r1 6 4 4 2 4 1 0 * num
  • 76. 76 LR * + num $ E T 6 s5 r1 r1 shift 5 6 4 4 2 4 1 0 * num
  • 77. 77 LR * + num $ E T 6 s5 r1 r1 shift 5 6 4 4 2 4 1 0 num
  • 78. 78 LR * + num $ E T 6 s5 r1 r1 5 shift 5 6 4 4 2 4 1 0 num
  • 79. 79 LR * + num $ E T 5 s7 5 6 4 4 2 4 1 0 num
  • 80. 80 LR * + num $ E T 5 s7 5 shift 7 6 4 4 2 4 1 0 num
  • 81. 81 LR * + num $ E T 5 s7 5 shift 7 6 4 4 2 4 1 0
  • 82. 82 LR 7 * + num $ E T 5 s7 5 shift 7 6 4 4 2 4 1 0
  • 83. 83 LR 7 * + num $ E T 7 r3 r3 r3 5 6 4 4 2 4 1 0
  • 84. 84 LR 7 * + num $ E T 7 r3 r3 r3 5 reduce 3 6 4 4 2 4 1 0
  • 85. 85 LR 7 * + num $ E T 7 r3 r3 r3 5 reduce 3 6 4 4 2 4 3 1 0
  • 86. 86 LR 7 * + num $ E T 7 r3 r3 r3 5 reduce 3 6 4 4 2 4 3 1 0 T → T * N
  • 87. 87 LR * + num $ E T 7 r3 r3 r3 reduce 3 4 4 2 4 3 1 0 T → T * N
  • 88. 88 LR * + num $ E T 7 r3 r3 r3 4 s3 6 reduce 3 4 4 2 4 3 1 0 T → T * N
  • 89. 89 LR * + num $ E T 7 r3 r3 r3 4 s3 6 reduce 3 go to 6 4 4 2 4 3 1 0 T → T * N
  • 90. 90 LR * + num $ E T 7 r3 r3 r3 4 s3 6 reduce 3 6 go to 6 4 4 2 4 3 1 0 T → T * N
  • 91. 91 LR * + num $ E T 6 s5 r1 r1 6 4 4 2 4 3 1 0
  • 92. 92 LR * + num $ E T 6 s5 r1 r1 reduce 1 6 4 4 2 4 3 1 0
  • 93. 93 LR * + num $ E T 6 s5 r1 r1 reduce 1 6 4 4 2 4 3 1 1 0
  • 94. 94 LR * + num $ E T 6 s5 r1 r1 reduce 1 6 4 4 2 4 3 1 1 0 E → E + T
  • 95. 95 LR * + num $ E T 6 s5 r1 r1 reduce 1 4 2 4 3 1 0 E → E + T
  • 96. 96 LR * + num $ E T 6 s5 r1 r1 0 s3 1 2 reduce 1 4 2 4 3 1 0 E → E + T
  • 97. 97 LR * + num $ E T 6 s5 r1 r1 0 s3 1 2 reduce 1 go to 1 4 2 4 3 1 0 E → E + T
  • 98. 98 LR * + num $ E T 6 s5 r1 r1 0 s3 1 2 reduce 1 go to 1 4 2 4 3 1 1 0 E → E + T
  • 99. 99 LR * + num $ E T 1 s4 acc 4 2 4 3 1 1 0
  • 100. 100 LR * + num $ E T 1 s4 acc accept ! 4 2 4 3 1 1 0
  • 101. 101 GOTO 1.  E → E + T 2.  E → T 3.  T → T * num 4.  T → num
  • 102. 102 GOTO 0. S → E 1.  E → E + T 2.  E → T 3.  T → T * num 4.  T → num
  • 103. 103 GOTO 0. S → E 1.  E → E + T LR(0) 2.  E → T 3.  T → T * num 4.  T → num
  • 104. 104 GOTO 0. S → E 1.  E → E + T LR(0) LR(0) 2.  E → T 3.  T → T * num 4.  T → num
  • 105. 105 GOTO 0. S → E 1.  E → E + T LR(0) LR(0) 2.  E → T 3.  T → T * num 4.  T → num GOTO
  • 106. 106 LR(0) E → E + T
  • 107. 107 LR(0) E → E + T 1)  E → E+T 2)  E → E +T 3)  E → E + T 4)  E → E + T
  • 108. 108 LR(0) E → E + T 1)  E → E+T 2)  E → E +T 3)  E → E + T 4)  E → E + T
  • 109. 109 0.  S  →  E   3.  T  →  T  *  N   LR(0) 1.  E  →  E  +  T   4.  T  →  N 2.  E  →  T   I0 S  →   E    
  • 110. 110 0.  S  →  E   3.  T  →  T  *  N   LR(0) 1.  E  →  E  +  T   4.  T  →  N 2.  E  →  T   I0 S  →   E   E  →   E  +  T   E  →   T    
  • 111. 111 0.  S  →  E   3.  T  →  T  *  N   LR(0) 1.  E  →  E  +  T   4.  T  →  N 2.  E  →  T   I0 S  →   E   E  →   E  +  T   E  →   T   T  →   T  *  num   T  →   num
  • 112. 112 0.  S  →  E   3.  T  →  T  *  N   LR(0) 1.  E  →  E  +  T   4.  T  →  N 2.  E  →  T   I0 S  →   E   E  →   E  +  T   E  →   T   T  →   T  *  num   T  →   num E I1 S  →  E     E  →  E    +  T  
  • 113. 113 0.  S  →  E   3.  T  →  T  *  N   LR(0) 1.  E  →  E  +  T   4.  T  →  N 2.  E  →  T   I0 I2 S  →   E   E  →  T     E  →   E  +  T   T  →  T    *  num   T E  →   T   T  →   T  *  num   T  →   num E I1 S  →  E     E  →  E    +  T  
  • 114. 114 0.  S  →  E   3.  T  →  T  *  N   LR(0) 1.  E  →  E  +  T   4.  T  →  N 2.  E  →  T   I0 I2 S  →   E   E  →  T     E  →   E  +  T   T  →  T    *  num   T E  →   T   T  →   T  *  num   T  →   num num I3 E T  →  num       I1 S  →  E     E  →  E    +  T  
  • 115. 115 0.  S  →  E   3.  T  →  T  *  N   LR(0) 1.  E  →  E  +  T   4.  T  →  N 2.  E  →  T   I0 I2 S  →   E   E  →  T     E  →   E  +  T   T  →  T    *  num   T E  →   T   T  →   T  *  num   T  →   num num I3 E T  →  num       E  →  E  +   T   I1 S  →  E     I4 + E  →  E    +  T  
  • 116. 116 0.  S  →  E   3.  T  →  T  *  N   LR(0) 1.  E  →  E  +  T   4.  T  →  N 2.  E  →  T   I0 I2 S  →   E   E  →  T     E  →   E  +  T   T  →  T    *  num   T E  →   T   T  →   T  *  num   T  →   num num I3 E T  →  num       E  →  E  +   T   T  →   T  *  num   I1 T  →   num   S  →  E     I4 + E  →  E    +  T  
  • 117. 117 0.  S  →  E   3.  T  →  T  *  N   LR(0) 1.  E  →  E  +  T   4.  T  →  N 2.  E  →  T   I0 I2 S  →   E   E  →  T     E  →   E  +  T   T  →  T    *  num   T E  →   T   T  →   T  *  num   T  →   num num I3 E T  →  num       E  →  E  +   T   num T  →   T  *  num   I1 T  →   num   S  →  E     I4 + E  →  E    +  T  
  • 118. 118 0.  S  →  E   3.  T  →  T  *  N   LR(0) 1.  E  →  E  +  T   4.  T  →  N 2.  E  →  T   I0 I2 S  →   E   E  →  T     E  →   E  +  T   T  →  T    *  num   T E  →   T   I5 * T  →   T  *  num   T  →   num T  →  T  *   num   num I3 E T  →  num       E  →  E  +   T   num T  →   T  *  num   I1 T  →   num   S  →  E     I4 + E  →  E    +  T  
  • 119. 119 0.  S  →  E   3.  T  →  T  *  N   LR(0) 1.  E  →  E  +  T   4.  T  →  N 2.  E  →  T   I0 I2 S  →   E   E  →  T     E  →   E  +  T   T  →  T    *  num   T E  →   T   I5 * T  →   T  *  num   T  →   num T  →  T  *   num   num I6 I3 E  →  E  +  T     E T  →  num       E  →  E  +   T   T  →  T    *  num   num T  →   T  *  num   T I1 T  →   num   S  →  E     I4 + E  →  E    +  T  
  • 120. 120 0.  S  →  E   3.  T  →  T  *  N   LR(0) 1.  E  →  E  +  T   4.  T  →  N 2.  E  →  T   I0 I2 S  →   E   E  →  T     E  →   E  +  T   T  →  T    *  num   T E  →   T   I5 * T  →   T  *  num   T  →   num T  →  T  *   num   num * I6 I3 E  →  E  +  T     E T  →  num       E  →  E  +   T   T  →  T    *  num   num T  →   T  *  num   T I1 T  →   num   S  →  E     I4 + E  →  E    +  T  
  • 121. 121 0.  S  →  E   3.  T  →  T  *  N   LR(0) 1.  E  →  E  +  T   4.  T  →  N 2.  E  →  T   I0 I2 S  →   E   E  →  T     E  →   E  +  T   T  →  T    *  num   I7 T E  →   T   T  →  T  *  num       I5 * T  →   T  *  num   T  →   num num T  →  T  *   num   num * I6 I3 E  →  E  +  T     E T  →  num       E  →  E  +   T   T  →  T    *  num   num T  →   T  *  num   T I1 T  →   num   S  →  E     I4 + E  →  E    +  T  
  • 122. 122 LR(0) T I0 I2 I7 num * num E I3 I5 num * + T I1 I4 I6
  • 123. 123 LR(0) * + num E T 0 3 1 2 1 4 2 5 3 4 3 6 5 7 6 5 7
  • 124. 124 GOTO * + num $ E T 0 s3 1 2 1 s4 2 s5 3 4 s3 6 5 s7 6 s5 7
  • 125. 125 GOTO * + num $ E T 0 s3 1 2 I1 1 s4 S  →  E     2 s5 E  →  E    +  T   3 4 s3 6 5 s7 6 s5 7
  • 126. 126 GOTO * + num $ E T 0 s3 1 2 I1 1 s4 acc S  →  E     2 s5 E  →  E    +  T   3 4 s3 6 5 s7 6 s5 7
  • 127. 127 GOTO I2 * + num $ E T E  →  T     0 s3 1 2 T  →  T    *  num   1 s4 acc 2 s5 3 4 s3 6 5 s7 6 s5 7
  • 128. 128 GOTO 2 I2 * + num $ E T E  →  T     0 s3 1 2 T  →  T    *  num   1 s4 acc 2 s5 3 4 s3 6 5 s7 6 s5 7
  • 129. 129 GOTO reduce 2 I2 * + num $ E T E  →  T     0 s3 1 2 T  →  T    *  num   1 s4 acc 2 s5 3 4 s3 6 5 s7 6 s5 7
  • 130. 130 GOTO reduce 2 I2 * + num $ E T E  →  T     0 s3 1 2 T  →  T    *  num   1 s4 acc 2 s5 3 shift 5 4 s3 6 5 s7 6 s5 7
  • 131. 131 GOTO reduce 2 I2 * + num $ E T E  →  T     0 s3 1 2 T  →  T    *  num   1 s4 acc 2 s5 3 shift 5 4 s3 6 5 s7 shift-reduce 6 s5 conflict 7
  • 132. 132 shift-reduce conflict (SLR ) 0.  S  →  E   1.  E  →  E  +  T   2.  E  →  T   3.  T  →  T  *  N   4.  T  →  N
  • 133. 133 shift-reduce conflict (SLR ) 0.  S  →  E   1.  E  →  E  +  T   2.  E  →  T   3.  T  →  T  *  N   4.  T  →  N
  • 134. 134 shift-reduce conflict (SLR ) 0.  S  →  E   E 1.  E  →  E  +  T   + $ 2.  E  →  T   3.  T  →  T  *  N   4.  T  →  N •  + $ reduce •  * shift
  • 135. 135 GOTO reduce 2 I2 * + num $ E T E  →  T     0 s3 1 2 T  →  T    *  num   1 s4 acc 2 s5 r2 r2 3 shift 5 4 s3 6 5 s7 shift reduce 6 s5 conflict 7
  • 136. 136 GOTO I3 * + num $ E T T  →  num       0 s3 1 2 1 s4 acc 2 s5 r2 r2 3 4 s3 6 5 s7 6 s5 7
  • 137. 137 GOTO reduce 4 I3 * + num $ E T T  →  num       0 s3 1 2 1 s4 acc 2 s5 r2 r2 3 4 s3 6 5 s7 6 s5 7
  • 138. 138 GOTO reduce 4 I3 * + num $ E T T  →  num       0 s3 1 2 1 s4 acc 2 s5 r2 r2 3 r4 r4 r4 4 s3 6 5 s7 6 s5 7
  • 139. 139 GOTO I6 * + num $ E T E  →  E  +  T     0 s3 1 2 T  →  T    *  num   1 s4 acc 2 s5 r2 r2 3 r4 r4 r4 4 s3 6 5 s7 6 s5 7
  • 140. 140 GOTO reduce 1 I6 * + num $ E T E  →  E  +  T     0 s3 1 2 T  →  T    *  num   1 s4 acc 2 s5 r2 r2 3 r4 r4 r4 4 s3 6 5 s7 6 s5 7
  • 141. 141 GOTO reduce 1 I6 * + num $ E T E  →  E  +  T     0 s3 1 2 T  →  T    *  num   1 s4 acc 2 s5 r2 r2 3 r4 r4 r4 shift 5 4 s3 6 5 s7 6 s5 7
  • 142. 142 GOTO reduce 1 I6 * + num $ E T E  →  E  +  T     0 s3 1 2 T  →  T    *  num   1 s4 acc 2 s5 r2 r2 3 r4 r4 r4 shift 5 4 s3 6 5 s7 6 s5 E 7 + $
  • 143. 143 GOTO reduce 1 I6 * + num $ E T E  →  E  +  T     0 s3 1 2 T  →  T    *  num   1 s4 acc 2 s5 r2 r2 3 r4 r4 r4 shift 5 4 s3 6 5 s7 6 s5 r1 r1 E 7 + $
  • 144. 144 GOTO I7 * + num $ E T T  →  T  *  num       0 s3 1 2 1 s4 acc 2 s5 r2 r2 3 r4 r4 r4 4 s3 6 5 s7 6 s5 r1 r1 7
  • 145. 145 GOTO reduce 3 I7 * + num $ E T T  →  T  *  num       0 s3 1 2 1 s4 acc 2 s5 r2 r2 3 r4 r4 r4 4 s3 6 5 s7 6 s5 r1 r1 7
  • 146. 146 GOTO reduce 3 I7 * + num $ E T T  →  T  *  num       0 s3 1 2 1 s4 acc 2 s5 r2 r2 3 r4 r4 r4 4 s3 6 5 s7 6 s5 r1 r1 7 r3 r3 r3
  • 147. 147 GOTO * + num $ E T 0 s3 1 2 1 s4 acc 2 s5 r2 r2 3 r4 r4 r4 4 s3 6 5 s7 6 s5 r1 r1 7 r3 r3 r3
  • 148. 148 O(n) LR(0) O(n) LR(0) SLR(1) O(n) SLR(1) LALR(1) O(n) LALR(1) LR(1) O(n) LR(1) GLR O(n3) SDF O(n)
  • 149. 149 LR(1) LALR(1) SLR(1) LR(0)
  • 150. 150 expr 2 + 3 * 4
  • 151. 151 expr expr num + 2 + 3 * 4
  • 152. 152 expr expr num + num * num 2 + 3 * 4
  • 153. 153 •  ( ) •  Backtrack parsing •  Packrat parsing
  • 154. 154 E 1.  E    →  T  E’   2.  E’  →  +  E  |  ε   3.  T    →  num  T’   4.  T’  →  *  T  |  ε num + num * num
  • 155. 155 E 1.  E    →  T  E’   LL(1) 2.  E’  →  +  E  |  ε   3.  T    →  num  T’   4.  T’  →  *  T  |  ε num + num * num
  • 156. 156 E 1.  E    →  T  E’   2.  E’  →  +  E  |  ε   3.  T    →  num  T’   4.  T’  →  *  T  |  ε num + num * num
  • 157. 157 E E’ 1.  E    →  T  E’   T 2.  E’  →  +  E  |  ε   3.  T    →  num  T’   4.  T’  →  *  T  |  ε num + num * num
  • 158. 158 E E’ 1.  E    →  T  E’   T 2.  E’  →  +  E  |  ε   3.  T    →  num  T’   4.  T’  →  *  T  |  ε num + num * num
  • 159. 159 E E’ 1.  E    →  T  E’   T 2.  E’  →  +  E  |  ε   num T’ 3.  T    →  num  T’   4.  T’  →  *  T  |  ε num + num * num
  • 160. 160 E E’ 1.  E    →  T  E’   T 2.  E’  →  +  E  |  ε   num T’ 3.  T    →  num  T’   4.  T’  →  *  T  |  ε num + num * num
  • 161. 161 E E’ 1.  E    →  T  E’   T 2.  E’  →  +  E  |  ε   num T’ 3.  T    →  num  T’   4.  T’  →  *  T  |  ε num + num * num
  • 162. 162 E E’ 1.  E    →  T  E’   T 2.  E’  →  +  E  |  ε   num T’ 3.  T    →  num  T’   4.  T’  →  *  T  |  ε num + num * num
  • 163. 163 E E’ 1.  E    →  T  E’   T 2.  E’  →  +  E  |  ε   num T’ 3.  T    →  num  T’   4.  T’  →  *  T  |  ε 1 + num + num * num
  • 164. 164 E E’ 1.  E    →  T  E’   T 2.  E’  →  +  E  |  ε   num T’ 3.  T    →  num  T’   4.  T’  →  *  T  |  ε ε num + num * num
  • 165. 165 E E’ 1.  E    →  T  E’   T 2.  E’  →  +  E  |  ε   num T’ 3.  T    →  num  T’   4.  T’  →  *  T  |  ε ε num + num * num
  • 166. 166 E E’ 1.  E    →  T  E’   T 2.  E’  →  +  E  |  ε   num T’ 3.  T    →  num  T’   4.  T’  →  *  T  |  ε ε num + num * num
  • 167. 167 E E’ 1.  E    →  T  E’   T 2.  E’  →  +  E  |  ε   num T’ 3.  T    →  num  T’   4.  T’  →  *  T  |  ε ε 1 + num + num * num
  • 168. 168 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ 3.  T    →  num  T’   4.  T’  →  *  T  |  ε ε num + num * num
  • 169. 169 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ 3.  T    →  num  T’   4.  T’  →  *  T  |  ε ε num + num * num
  • 170. 170 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ 3.  T    →  num  T’   4.  T’  →  *  T  |  ε ε num + num * num
  • 171. 171 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ 3.  T    →  num  T’   4.  T’  →  *  T  |  ε ε num + num * num
  • 172. 172 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   4.  T’  →  *  T  |  ε ε num + num * num
  • 173. 173 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   4.  T’  →  *  T  |  ε ε num + num * num
  • 174. 174 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ 4.  T’  →  *  T  |  ε ε num + num * num
  • 175. 175 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ 4.  T’  →  *  T  |  ε ε num + num * num
  • 176. 176 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ 4.  T’  →  *  T  |  ε ε num + num * num
  • 177. 177 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ 4.  T’  →  *  T  |  ε ε num + num * num
  • 178. 178 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ 4.  T’  →  *  T  |  ε ε 1 * num + num * num
  • 179. 179 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ 4.  T’  →  *  T  |  ε ε * T num + num * num
  • 180. 180 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ 4.  T’  →  *  T  |  ε ε * T num + num * num
  • 181. 181 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ 4.  T’  →  *  T  |  ε ε * T num + num * num
  • 182. 182 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ 4.  T’  →  *  T  |  ε ε * T num + num * num
  • 183. 183 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ 4.  T’  →  *  T  |  ε ε * T num T’ num + num * num
  • 184. 184 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ 4.  T’  →  *  T  |  ε ε * T num T’ num + num * num
  • 185. 185 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ 4.  T’  →  *  T  |  ε ε * T num T’ num + num * num
  • 186. 186 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ 4.  T’  →  *  T  |  ε ε * T num T’ num + num * num
  • 187. 187 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ 4.  T’  →  *  T  |  ε ε 1 * T num T’ num + num * num
  • 188. 188 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ 4.  T’  →  *  T  |  ε ε * T num T’ num + num * num ε
  • 189. 189 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ 4.  T’  →  *  T  |  ε ε * T num T’ num + num * num ε
  • 190. 190 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ 4.  T’  →  *  T  |  ε ε * T num T’ num + num * num ε
  • 191. 191 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ 4.  T’  →  *  T  |  ε ε * T num T’ num + num * num ε
  • 192. 192 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ 4.  T’  →  *  T  |  ε ε * T num T’ num + num * num ε
  • 193. 193 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ 4.  T’  →  *  T  |  ε ε 1 * T num T’ num + num * num ε
  • 194. 194 E E’ 1.  E    →  T  E’   T + E 2.  E’  →  +  E  |  ε   num T’ T E’ 3.  T    →  num  T’   num T’ ε 4.  T’  →  *  T  |  ε ε * T num T’ num + num * num ε