You are on page 1of 38

BOTTOM-UP PARSING

Grammar:

0. S’ ::= S $
• S ::= ( L )
• S ::= x
• L ::= S
• L ::= L , S

S’ ::= @ S $
S ::= @ ( L )
S ::= @ x
Grammar:

0. S’ ::= S $
• S ::= ( L )
• S ::= x
• L ::= S
• L ::= L , S

S’ ::= @ S $
S ::= @ ( L )
S ::= @ x

S’ ::= S @ $
Grammar:

0. S’ ::= S $
• S ::= ( L )
• S ::= x
• L ::= S
• L ::= L , S

(
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S
S ::= @ x L ::= @ L , S
S ::= @ ( L )
S S ::= @ x

S’ ::= S @ $
Grammar:

0. S’ ::= S $
• S ::= ( L )
• S ::= x
• L ::= S
• L ::= L , S

(
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S
S ::= @ x L ::= @ L , S
S ::= @ ( L )
S S ::= @ x

S’ ::= S @ $
Grammar:

0. S’ ::= S $
• S ::= ( L )
• S ::= x
• L ::= S
• L ::= L , S

(
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S
S ::= @ x L ::= @ L , S
S ::= @ ( L )
S S ::= @ x

S’ ::= S @ $
Grammar:

0. S’ ::= S $
• S ::= ( L )
• S ::= x
• L ::= S
• L ::= L , S

(
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S
S ::= @ x L ::= @ L , S
S ::= @ ( L ) L S ::= ( L @ )
S ::= @ x L ::= L @ , S
S

S’ ::= S @ $
Grammar:

0. S’ ::= S $
• S ::= ( L )
• S ::= x
• L ::= S
• L ::= L , S

(
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S
S ::= @ x L ::= @ L , S
S ::= @ ( L ) L S ::= ( L @ )
S ::= @ x L ::= L @ , S
S

S
S’ ::= S @ $
L ::= S @
Grammar:

0. S’ ::= S $
• S ::= ( L )
• S ::= x
• L ::= S
• L ::= L , S
S ::= x @

x
(
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S
S ::= @ x L ::= @ L , S
S ::= @ ( L ) L S ::= ( L @ )
S ::= @ x L ::= L @ , S
S

S
S’ ::= S @ $
L ::= S @
Grammar:

0. S’ ::= S $
• S ::= ( L )
• S ::= x
• L ::= S
• L ::= L , S
S ::= x @

x
(
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S
S ::= @ x L ::= @ L , S
S ::= @ ( L ) L S ::= ( L @ )
S ::= @ x L ::= L @ , S
S
)
S
S’ ::= S @ $
S ::= ( L ) @
L ::= S @
Grammar:

0. S’ ::= S $
• S ::= ( L )
• S ::= x
• L ::= S
• L ::= L , S
S ::= x @
L ::= L , @ S
x S ::= @ ( L )
S ::= @ x
(
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S ,
S ::= @ x L ::= @ L , S
S ::= @ ( L ) L S ::= ( L @ )
S ::= @ x L ::= L @ , S
S
)
S
S’ ::= S @ $
S ::= ( L ) @
L ::= S @
Grammar:

0. S’ ::= S $
• S ::= ( L )
• S ::= x
• L ::= S
• L ::= L , S
S ::= x @
L ::= L , @ S
x S ::= @ ( L )
S ::= @ x
(
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S ,
S ::= @ x L ::= @ L , S
S ::= @ ( L ) L S ::= ( L @ )
S ::= @ x L ::= L @ , S
S
)
S
S’ ::= S @ $
S ::= ( L ) @
L ::= S @
Grammar:

0. S’ ::= S $
• S ::= ( L ) L ::= L , S @
• S ::= x
• L ::= S S
• L ::= L , S
S ::= x @
L ::= L , @ S
x S ::= @ ( L )
S ::= @ x
(
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S ,
S ::= @ x L ::= @ L , S
S ::= @ ( L ) L S ::= ( L @ )
S ::= @ x L ::= L @ , S
S
)
S
S’ ::= S @ $
S ::= ( L ) @
L ::= S @
Grammar:

0. S’ ::= S $
• S ::= ( L ) L ::= L , S @
• S ::= x
• L ::= S S
• L ::= L , S
S ::= x @
L ::= L , @ S
x S ::= @ ( L )
( S ::= @ x
(
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S ,
S ::= @ x L ::= @ L , S
S ::= @ ( L ) L S ::= ( L @ )
S ::= @ x L ::= L @ , S
S
)
S
S’ ::= S @ $
S ::= ( L ) @
L ::= S @
Grammar:

0. S’ ::= S $
• S ::= ( L ) L ::= L , S @
• S ::= x
• L ::= S S
• L ::= L , S
x
S ::= x @
L ::= L , @ S
x S ::= @ ( L )
x
( S ::= @ x
(
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S ,
S ::= @ x L ::= @ L , S
S ::= @ ( L ) L S ::= ( L @ )
S ::= @ x L ::= L @ , S
S
)
S
S’ ::= S @ $
S ::= ( L ) @
L ::= S @
Grammar: Assigning numbers to states:

0. S’ ::= S $
• S ::= ( L ) 9 L ::= L , S @
• S ::= x
• L ::= S S
• L ::= L , S 8
x
2 S ::= x @
L ::= L , @ S
x S ::= @ ( L )
x
( S ::= @ x
1 (
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S ,
S ::= @ x ( L ::= @ L , S 5
S ::= @ ( L ) L S ::= ( L @ )
3 S ::= @ x L ::= L @ , S
S
)
S
4 S’ ::= S @ $
6 S ::= ( L ) @
7 L ::= S @
9 L ::= L , S @
0. S’ ::= S $
• S ::= ( L ) S
x 8
• S ::= x 2 S ::= x @
• L ::= S x L ::= L , @ S
• L ::= L , S x S ::= @ ( L )
( S ::= @ x
1 (
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S ,
S ::= @ x ( L ::= @ L , S 5
S ::= @ ( L ) L S ::= ( L @ )
3 S ::= @ x L ::= L @ , S
S
)
S
4 S’ ::= S @ $ 7 L ::= S @ 6 S ::= ( L ) @

states ( ) x , $ S L
1
2
3
4
...
9 L ::= L , S @
0. S’ ::= S $
• S ::= ( L ) S
x 8
• S ::= x 2 S ::= x @
• L ::= S x L ::= L , @ S
• L ::= L , S x S ::= @ ( L )
( S ::= @ x
1 (
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S ,
S ::= @ x ( L ::= @ L , S 5
S ::= @ ( L ) L S ::= ( L @ )
3 S ::= @ x L ::= L @ , S
S
)
S
4 S’ ::= S @ $ 7 L ::= S @ 6 S ::= ( L ) @

states ( ) x , $ S L
1 s3
2
3
4
...
9 L ::= L , S @
0. S’ ::= S $
• S ::= ( L ) S
x 8
• S ::= x 2 S ::= x @
• L ::= S x L ::= L , @ S
• L ::= L , S x S ::= @ ( L )
( S ::= @ x
1 (
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S ,
S ::= @ x ( L ::= @ L , S 5
S ::= @ ( L ) L S ::= ( L @ )
3 S ::= @ x L ::= L @ , S
S
)
S
4 S’ ::= S @ $ 7 L ::= S @ 6 S ::= ( L ) @

states ( ) x , $ S L
1 s3 s2
2
3
4
...
9 L ::= L , S @
0. S’ ::= S $
• S ::= ( L ) S
x 8
• S ::= x 2 S ::= x @
• L ::= S x L ::= L , @ S
• L ::= L , S x S ::= @ ( L )
( S ::= @ x
1 (
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S ,
S ::= @ x ( L ::= @ L , S 5
S ::= @ ( L ) L S ::= ( L @ )
3 S ::= @ x L ::= L @ , S
S
)
S
4 S’ ::= S @ $ 7 L ::= S @ 6 S ::= ( L ) @

states ( ) x , $ S L
1 s3 s2 g4
2
3
4
...
9 L ::= L , S @
0. S’ ::= S $
• S ::= ( L ) S
x 8
• S ::= x 2 S ::= x @
• L ::= S x L ::= L , @ S
• L ::= L , S x S ::= @ ( L )
( S ::= @ x
1 (
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S ,
S ::= @ x ( L ::= @ L , S 5
S ::= @ ( L ) L S ::= ( L @ )
3 S ::= @ x L ::= L @ , S
S
)
S
4 S’ ::= S @ $ 7 L ::= S @ 6 S ::= ( L ) @

states ( ) x , $ S L
1 s3 s2 g4
2 r2 r2 r2 r2 r2
3
4
...
9 L ::= L , S @
0. S’ ::= S $
• S ::= ( L ) S
x 8
• S ::= x 2 S ::= x @
• L ::= S x L ::= L , @ S
• L ::= L , S x S ::= @ ( L )
( S ::= @ x
1 (
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S ,
S ::= @ x ( L ::= @ L , S 5
S ::= @ ( L ) L S ::= ( L @ )
3 S ::= @ x L ::= L @ , S
S
)
S
4 S’ ::= S @ $ 7 L ::= S @ 6 S ::= ( L ) @

states ( ) x , $ S L
1 s3 s2 g4
2 r2 r2 r2 r2 r2
3 s3 s2
4
...
9 L ::= L , S @
0. S’ ::= S $
• S ::= ( L ) S
x 8
• S ::= x 2 S ::= x @
• L ::= S x L ::= L , @ S
• L ::= L , S x S ::= @ ( L )
( S ::= @ x
1 (
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S ,
S ::= @ x ( L ::= @ L , S 5
S ::= @ ( L ) L S ::= ( L @ )
3 S ::= @ x L ::= L @ , S
S
)
S
4 S’ ::= S @ $ 7 L ::= S @ 6 S ::= ( L ) @

states ( ) x , $ S L
1 s3 s2 g4
2 r2 r2 r2 r2 r2
3 s3 s2 g7 g5
4
...
9 L ::= L , S @
0. S’ ::= S $
• S ::= ( L ) S
x 8
• S ::= x 2 S ::= x @
• L ::= S x L ::= L , @ S
• L ::= L , S x S ::= @ ( L )
( S ::= @ x
1 (
S’ ::= @ S $ S ::= ( @ L )
S ::= @ ( L ) L ::= @ S ,
S ::= @ x ( L ::= @ L , S 5
S ::= @ ( L ) L S ::= ( L @ )
3 S ::= @ x L ::= L @ , S
S
)
S
4 S’ ::= S @ $ 7 L ::= S @ 6 S ::= ( L ) @

states ( ) x , $ S L
1 s3 s2 g4
2 r2 r2 r2 r2 r2
3 s3 s2 g7 g5
4 a
...
states ( ) x , $ S L 0. S’ ::= S $
1 s3 s2 g4 • S ::= ( L )
• S ::= x
2 r2 r2 r2 r2 r2
• L ::= S
3 s3 s2 g7 g5 • L ::= L , S
4 a
5 s6 s8
6 r1 r1 r1 r1 r1
7 r3 r3 r3 r3 r3
8 s3 s2 g9
9 r4 r4 r4 r4 r4

yet to read

input: ( x , x ) $

stack: 1
states ( ) x , $ S L 0. S’ ::= S $
1 s3 s2 g4 • S ::= ( L )
• S ::= x
2 r2 r2 r2 r2 r2
• L ::= S
3 s3 s2 g7 g5 • L ::= L , S
4 a
5 s6 s8
6 r1 r1 r1 r1 r1
7 r3 r3 r3 r3 r3
8 s3 s2 g9
9 r4 r4 r4 r4 r4

yet to read

input: ( x , x ) $

stack: 1(3
states ( ) x , $ S L 1. S’ ::= S $
1 s3 s2 g4 2. S ::= ( L )
3. S ::= x
2 r2 r2 r2 r2 r2
4. L ::= S
3 s3 s2 g7 g5 5. L ::= L , S
4 a
5 s6 s8
6 r1 r1 r1 r1 r1
7 r3 r3 r3 r3 r3
8 s3 s2 g9
9 r4 r4 r4 r4 r4

yet to read

input: ( x , x ) $

stack: 1(3x2
states ( ) x , $ S L 0. S’ ::= S $
1 s3 s2 g4 • S ::= ( L )
• S ::= x
2 r2 r2 r2 r2 r2
• L ::= S
3 s3 s2 g7 g5 • L ::= L , S
4 a
5 s6 s8
6 r1 r1 r1 r1 r1
7 r3 r3 r3 r3 r3
8 s3 s2 g9
9 r4 r4 r4 r4 r4

yet to read

input: ( x , x ) $

stack: 1(3S
states ( ) x , $ S L 0. S’ ::= S $
1 s3 s2 g4 • S ::= ( L )
• S ::= x
2 r2 r2 r2 r2 r2
• L ::= S
3 s3 s2 g7 g5 • L ::= L , S
4 a
5 s6 s8
6 r1 r1 r1 r1 r1
7 r3 r3 r3 r3 r3
8 s3 s2 g9
9 r4 r4 r4 r4 r4

yet to read

input: ( x , x ) $

stack: 1(3S7
states ( ) x , $ S L 0. S’ ::= S $
1 s3 s2 g4 • S ::= ( L )
• S ::= x
2 r2 r2 r2 r2 r2
• L ::= S
3 s3 s2 g7 g5 • L ::= L , S
4 a
5 s6 s8
6 r1 r1 r1 r1 r1
7 r3 r3 r3 r3 r3
8 s3 s2 g9
9 r4 r4 r4 r4 r4

yet to read

input: ( x , x ) $

stack: 1(3L
states ( ) x , $ S L 0. S’ ::= S $
1 s3 s2 g4 • S ::= ( L )
• S ::= x
2 r2 r2 r2 r2 r2
• L ::= S
3 s3 s2 g7 g5 • L ::= L , S
4 a
5 s6 s8
6 r1 r1 r1 r1 r1
7 r3 r3 r3 r3 r3
8 s3 s2 g9
9 r4 r4 r4 r4 r4

yet to read

input: ( x , x ) $

stack: 1(3L5
states ( ) x , $ S L 0. S’ ::= S $
1 s3 s2 g4 • S ::= ( L )
• S ::= x
2 r2 r2 r2 r2 r2
• L ::= S
3 s3 s2 g7 g5 • L ::= L , S
4 a
5 s6 s8
6 r1 r1 r1 r1 r1
7 r3 r3 r3 r3 r3
8 s3 s2 g9
9 r4 r4 r4 r4 r4

yet to read

input: ( x , x ) $

stack: 1(3L5,8
states ( ) x , $ S L 0. S’ ::= S $
1 s3 s2 g4 • S ::= ( L )
• S ::= x
2 r2 r2 r2 r2 r2
• L ::= S
3 s3 s2 g7 g5 • L ::= L , S
4 a
5 s6 s8
6 r1 r1 r1 r1 r1
7 r3 r3 r3 r3 r3
8 s3 s2 g9
9 r4 r4 r4 r4 r4

yet to read

input: ( x , x ) $

stack: 1(3L5,8x2
states ( ) x , $ S L 0. S’ ::= S $
1 s3 s2 g4 • S ::= ( L )
• S ::= x
2 r2 r2 r2 r2 r2
• L ::= S
3 s3 s2 g7 g5 • L ::= L , S
4 a
5 s6 s8
6 r1 r1 r1 r1 r1
7 r3 r3 r3 r3 r3
8 s3 s2 g9
9 r4 r4 r4 r4 r4

yet to read

input: ( x , x ) $

stack: 1(3L5,8S
states ( ) x , $ S L 0. S’ ::= S $
1 s3 s2 g4 • S ::= ( L )
• S ::= x
2 r2 r2 r2 r2 r2
• L ::= S
3 s3 s2 g7 g5 • L ::= L , S
4 a
5 s6 s8
6 r1 r1 r1 r1 r1
7 r3 r3 r3 r3 r3
8 s3 s2 g9
9 r4 r4 r4 r4 r4

yet to read

input: ( x , x ) $

stack: 1(3L5,8S9
states ( ) x , $ S L 0. S’ ::= S $
1 s3 s2 g4 • S ::= ( L )
• S ::= x
2 r2 r2 r2 r2 r2
• L ::= S
3 s3 s2 g7 g5 • L ::= L , S
4 a
5 s6 s8
6 r1 r1 r1 r1 r1
7 r3 r3 r3 r3 r3
8 s3 s2 g9
9 r4 r4 r4 r4 r4

yet to read

input: ( x , x ) $

stack: 1(3L
states ( ) x , $ S L 0. S’ ::= S $
1 s3 s2 g4 • S ::= ( L )
• S ::= x
2 r2 r2 r2 r2 r2
• L ::= S
3 s3 s2 g7 g5 • L ::= L , S
4 a
5 s6 s8
6 r1 r1 r1 r1 r1
7 r3 r3 r3 r3 r3
8 s3 s2 g9
9 r4 r4 r4 r4 r4

yet to read

input: ( x , x ) $

stack: 1(3L5 etc ......


LR(0)

 Even though we are doing LR(0) parsing we are using some look
ahead (there is a column for each non-terminal)
 however, we only use the terminal to figure out which state to go
to next, not to decide whether to shift or reduce

You might also like