Lecture 5 - LL (1) Parsing Algorithm
Lecture 5 - LL (1) Parsing Algorithm
J. Xue
& %
COMP3131/9102 Page 264 March 29, 2010
' $
J. Xue
token
source tree
Scanner Parser
code
get next token
& %
COMP3131/9102 Page 265 March 29, 2010
' $
J. Xue
I NPUT a + b $
X LL(1) Output
S TACK
Y Parsing Program S → T
Z T → XY Z
$ ···
LL(1)
Parsing Table
Output:
• The productions used (representing the leftmost derivation), or
• An AST (Lecture 6)
& %
COMP3131/9102 Page 266 March 29, 2010
' $
J. Xue
& %
COMP3131/9102 Page 267 March 29, 2010
' $
J. Xue
& %
COMP3131/9102 Page 269 March 29, 2010
' $
J. Xue
& %
COMP3131/9102 Page 270 March 29, 2010
' $
J. Xue
& %
COMP3131/9102 Page 271 March 29, 2010
' $
J. Xue
& %
COMP3131/9102 Page 272 March 29, 2010
' $
J. Xue
INT + − ∗ / ( ) $
E TQ TQ
Q +T Q −T Q ǫ ǫ
T FR FR
R ǫ ǫ ∗F R /F R ǫ ǫ
F INT (E)
& %
COMP3131/9102 Page 273 March 29, 2010
' $
J. Xue
& %
COMP3131/9102 Page 275 March 29, 2010
' $
J. Xue
& %
COMP3131/9102 Page 276 March 29, 2010
' $
J. Xue
& %
COMP3131/9102 Page 277 March 29, 2010
' $
J. Xue
& %
COMP3131/9102 Page 278 March 29, 2010
' $
J. Xue
& %
COMP3131/9102 Page 279 March 29, 2010
' $
J. Xue
& %
COMP3131/9102 Page 280 March 29, 2010
' $
J. Xue
• Grammar:
S → (S) | ǫ
• Parsing Table:
( ) $
S (S) ǫ ǫ
• Try to parse the following three inputs:
a. (())
b. (()
c. ())
• Cannot design a DFA/NFA to recognise the language L(S)
& %
COMP3131/9102 Page 281 March 29, 2010
' $
J. Xue
& %
COMP3131/9102 Page 282 March 29, 2010
' $
J. Xue
& %
COMP3131/9102 Page 285 March 29, 2010