You are on page 1of 23

Syntax Analysis Using LL(1) Parser

H A MA D U L Q U D O U S
Grammar
 
FIRST SET
E {ID, NUM}
E’ {+, ε}
T {ID, NUM}
T’ {*, ε}
F {ID, NUM}
FOLLOW SET
E {$}
E’ {$}
T {+, $}
T’ {+, $}
F {*, +, $}
GRAMMAR

2
3
4
5
6
7
8
Parse Table
+ * ID NUM $

E 1 1

E’ 2 3

T 4 4

T’ 6 5 6

F 7 8
PARSE A SYNTAX USING LL(1)
PARSER
SYNTAX LINE ID + NUM * NUM $

PARSE TABLE
STACK + * ID NUM $
E TE’ 1
E’ 2 3
E T 4 4
$ T’ 6 5 6
F 7 8
CONTD..
SYNTAX LINE ID + NUM * NUM $

PARSE TABLE
STACK + * ID NUM $
E 1 1
T E’ 2 3
E’ T FT’ 4
$ T’ 6 5 6
F 7 8
CONTD..
SYNTAX LINE ID + NUM * NUM $

PARSE TABLE
STACK + * ID NUM $
F E 1 1
T’ E’ 2 3
E’ T 4 4
$ T’ 6 5 6
F ID 8
CONTD..
SYNTAX LINE ID + NUM * NUM $

POP (STACK TOP == SYNTAX LINE HEAD)


PARSE TABLE
STACK + * ID NUM $
ID E 1 1
T’ E’ 2 3
E’ T 4 4
$ T’ 6 5 6
F 7 8
CONTD..
SYNTAX LINE ID + NUM * NUM $

PARSE TABLE
STACK + * ID NUM $
E 1 1
T’ E’ 2 3
E’ T 4 4
$ T’ 6 5 6
F 7 8
CONTD..
SYNTAX LINE ID + NUM * NUM $

WHEN YOU ENCOUNTER NULL POP FROM STACK

PARSE TABLE
STACK + * ID NUM $
E 1 1
T’ E’ 2 3
E’ T 4 4
$ T’ ε 5 6
F 7 8
CONTD..
SYNTAX LINE ID + NUM * NUM $

PARSE TABLE
STACK + * ID NUM $
E 1 1
E’ +TE’ 3
E’ T 4 4
$ T’ 6 5 6
F 7 8
CONTD..
SYNTAX LINE ID + NUM * NUM $

POP (STACK TOP == SYNTAX LINE HEAD)


PARSE TABLE
STACK + * ID NUM $
+ E 1 1
T E’ 2 3
E’ T 4 4
$ T’ 6 5 6
F 7 8
CONTD..
SYNTAX LINE ID + NUM * NUM $

PARSE TABLE
STACK + * ID NUM $
E 1 1
T E’ 2 3
E’ T 4 FT’
$ T’ 6 5 6
F 7 8
CONTD..
SYNTAX LINE ID + NUM * NUM $

PARSE TABLE
STACK + * ID NUM $
F E 1 1
T’ E’ 2 3
E’ T 4 4
$ T’ 6 5 6
F 7 NUM
CONTD..
SYNTAX LINE ID + NUM * NUM $

POP (STACK TOP == SYNTAX LINE HEAD)


PARSE TABLE
STACK + * ID NUM $
NUM E 1 1
T’ E’ 2 3
E’ T 4 4
$ T’ 6 5 6
F 7 NUM
CONTD..
SYNTAX LINE ID + NUM * NUM $

POP (STACK TOP == SYNTAX LINE HEAD)


PARSE TABLE
STACK + * ID NUM $
E 1 1
*
E’ 2 3
F
T 4 4
T’ T’ 6 *FT’ 6
E’ F 7 8
$
CONTD..
SYNTAX LINE ID + NUM * NUM $

PARSE TABLE
STACK + * ID NUM $
E 1 1
E’ 2 3
F
T 4 4
T’ T’ 6 5 6
E’ F 7 NUM
$
CONTD..
SYNTAX LINE ID + NUM * NUM $

POP (STACK TOP == SYNTAX LINE HEAD)


PARSE TABLE
STACK + * ID NUM $
E 1 1
E’ 2 3
NUM
T 4 4
T’ T’ 6 5 6
E’ F 7 NUM
$
CONTD..
SYNTAX LINE ID + NUM * NUM $

WHEN YOU ENCOUNTER NULL POP FROM STACK

PARSE TABLE
STACK + * ID NUM $
E 1 1
E’ 2 3
T 4 4
T’ T’ 6 5 ε
E’ F 7 8
$
CONTD..
SYNTAX LINE ID + NUM * NUM $

WHEN YOU ENCOUNTER NULL POP FROM STACK

PARSE TABLE
STACK + * ID NUM $
E 1 1
E’ 2 ε
T 4 4
T’ 6 5 6
E’ F 7 8
$
CONTD..
SYNTAX LINE ID + NUM * NUM $

WHEN WE HAVE $ ON BOTH STACK AND SYNTAX LINE TAPE == ACCEPTANCE

PARSE TABLE
STACK + * ID NUM $
E 1 1
E’ 2 3
T 4 4
T’ 6 5 6
F 7 8
$

You might also like