Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE 340 Recitation Week 4 : Sept 8th – 14th

Similar presentations


Presentation on theme: "CSE 340 Recitation Week 4 : Sept 8th – 14th"— Presentation transcript:

1 CSE 340 Recitation Week 4 : Sept 8th – 14th
Questions Longest Prefix Match Syntax Analysis CFGs Project 3????

2 Questions? Current Project Homework Lecture Other?

3 Lexers Purpose of a Lexer (i.e. getToken()) Source code -> tokens
Token is specified by a regular expression

4 Best word? Q1=(a|b|c) . (d|p|𝜺) . (d|𝜺) . (i|j|k|l|m|n|o|t)*.(a.l|e.l|o.n)

5 Longest Prefix Match If getToken() called repeatedly on the following string, what tokens would it return? positivityisinyourmind LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR

6 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind

7 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1

8 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none

9 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none

10 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3

11 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3

12 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4

13 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4

14 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3

15 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3

16 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3

17 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3

18 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3

19 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3

20 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3

21 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3 ??????

22 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3 R3, 10

23 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3 R3, 10 WHAT NOW? MORE?

24 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3 R3, 10

25 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3 R3, 10

26 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3 R3, 10

27 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3 R3, 10

28 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3 R3, 10

29 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3 R3, 10

30 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3 R3, 10

31 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3 R3, 10

32 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3 R3, 10

33 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3 R3, 10

34 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3 R3, 10

35 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3 R3, 10

36 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind R1, R3, R4 LETR, 1 none R1, R3 R1, 4 R3 R3, 10

37 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10

38 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R1, R2, R3, R4 LETR,1; VOWL,1

39 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R1, R2, R3, R4 LETR,1; VOWL,1

40 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R1, R2, R3, R4 LETR,1; VOWL,1 R2, R3 R2,2

41 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R1, R2, R3, R4 LETR,1; VOWL,1 R2, R3 R2, 2

42 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R1, R2, R3, R4 LETR,1; VOWL,1 R2, R3 R2, 2

43 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R1, R2, R3, R4 LETR,1; VOWL,1 R2, R3 R2, 2

44 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R1, R2, R3, R4 LETR,1; VOWL,1 R2, R3 R2, 2 R2, 4

45 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R1, R2, R3, R4 LETR,1; VOWL,1 R2, R3 R2, 2 R2, 4

46 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R1, R2, R3, R4 LETR,1; VOWL,1 R2, R3 R2, 2 R2, 4 R3

47 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R1, R2, R3, R4 LETR,1; VOWL,1 R2, R3 R2, 2 R2, 4 R3

48 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R1, R2, R3, R4 LETR,1; VOWL,1 R2, R3 R2, 2 R2, 4 R3

49 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R1, R2, R3, R4 LETR,1; VOWL,1 R2, R3 R2, 2 R2, 4 R3

50 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R1, R2, R3, R4 LETR,1; VOWL,1 R2, R3 R2, 2 R2, 4 R3

51 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R2, 4

52 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R2, 4 R1, R3, R4 LETR, 1

53 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R2, 4 R1, R3, R4 LETR, 1

54 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R2, 4 R1, R3, R4 LETR, 1

55 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R2, 4 R1, R3, R4 LETR, 1

56 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R2, 4 R1, R3, R4 LETR, 1

57 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R2, 4 R1, R3, R4 LETR, 1

58 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R2, 4 R1, R3, R4 LETR, 1 R1,4; R4, 4;

59 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R2, 4 R1, R3, R4 LETR, 1 R1,4; R4, 4;

60 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R2, 4 R1, R3, R4 LETR, 1 R1,4; R4, 4; R3

61 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R2, 4 R1, R3, R4 LETR, 1 R1,4; R4, 4;

62 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R2, 4 R1, R3, R4 LETR, 1 R1,4; R4, 4;

63 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R2, 4 R1, 4

64 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R2, 4 R1, 4 R1, R3, R4 LETR, 1

65 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R2, 4 R1, 4 R1, R3, R4 LETR, 1

66 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R2, 4 R1, 4 R1, R3, R4 LETR, 1

67 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R2, 4 R1, 4 R1, R3, R4 LETR, 1

68 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R2, 4 R1, 4 R1, R3, R4 LETR, 1 R1, R3

69 positivityisinyourmind
LETR = a|b|c|…|z VOWL = a|e|i|o|u R1= LETR . VOWL . LETR . LETR R2= (VOWL . LETR)* R3=letter* . t.y R4= LETR . VOWL . VOWL . LETR Potential Match positivityisinyourmind none R3, 10 R2, 4 R1, 4 R1, R3, R4 LETR, 1 R1, R3 R1

70 positivityisinyourmind
Potential Match positivityisinyourmind none R3, 10 R2, 4 R1, 4

71 Longest Prefix Match positivityisinyourmind
Poten Match positivityisinyourmind none R3, 10 R2, 4 R1, 4 positivityisinyourmind getToken() // returns enum value for R3 token_type = R3 // enum value for R3 current_token = “positivity” token_length = 10 line = 1

72 Longest Prefix Match positivityisinyourmind
Poten Match positivityisinyourmind none R3, 10 R2, 4 R1, 4 positivityisinyourmind getToken() // returns enum value for R2 token_type = R2 // enum value for R2 current_token = “isin” token_length = 4 line = 1

73 Longest Prefix Match positivityisinyourmind
Poten Match positivityisinyourmind none R3, 10 R2, 4 R1, 4 positivityisinyourmind getToken() // returns enum value for R1 token_type = R4 // enum value for R1 current_token = “your” token_length = 4 line = 1

74 Longest Prefix Match positivityisinyourmind
Poten Match positivityisinyourmind none R3, 10 R2, 4 R1, 4 positivityisinyourmind getToken() // returns enum value for R1 token_type = R1 // enum value for R1 current_token = “mind” token_length = 4 line = 1

75 Syntax Analysis Lexical Analysis Syntax analysis
What are the tokens and what they look like E.g., ID, NUM, IF, … Syntax analysis What order is valid for tokens? We define what the proper order is

76 Syntax Analysis How do we define valid Syntax? Context Free Grammars
We cannot use RE. Why? RE cannot count RE can describe a string that is infinitely long BUT the RE cannot be infinitely long Example: For valid syntax in C, C++, or Java the curly braces must match BUT with RE we cannot do this for an undetermined number of curly braces Context Free Grammars

77 Syntax Analysis Context Free Grammars
Give the ability to indirectly count Recursive CFG’s can be infinite

78 Syntax Analysis Leftmost v. Rightmost parsing
Dictates which non-terminal we expand

79 Syntax Analysis S  [S] | XY X  S | abc | 𝜺 Y  dXY | XY | f
How can we create the string “[abcdabcf]” using a leftmost derivation

80 Syntax Analysis S  [S] | XY X  S | abc | 𝜺 Y  dXY | XY | f
What are the non-terminals? What are the terminals?

81 Syntax Analysis S  [S] | XY X  S | abc | 𝜺 Y  dXY | XY | f
How can we create the string “[[f]]” using a leftmost derivation

82 Syntax Analysis S  [S] | XY X  S | abc | 𝜺 Y  dXY | XY | f
How can we create the string “ddf” using a leftmost derivation

83 Syntax Analysis S  [S] | XY X  S | abc | 𝜺 Y  dXY | XY | f
Is the CFG ambiguous? What does ambiguous mean? How to show ambiguous?

84 Project 3 http://goo.gl/IFs7II C or C++ Reads in CFG
Based on CFG creates First and Follow sets Can use previous getToken BUT will need to modify, it was built to recognize a different grammar

85 Project 3 Grammar Description
digit = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 letter = a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z ID = letter(letter|digit)* HASH = # DOUBLEHASH = ## ARROW = -> All tokens are SPACE Separated

86 Project 3 GRAMMAR DESCRIPTION FOR PROJECT
S → Non-terminal-list Rule-list DOUBLEHASH Non-terminal-list → ID-list HASH ID-list → ID ID-list | ID Rule-list → Rule Rule-list | Rule Rule → ID ARROW Right-hand-side HASH Right-hand-side → ID-list | ε EXAMPLE decl idList1 idList # decl -> idList colon ID # idList -> ID idList1 # idList1 -> # idList1 -> COMMA ID idList1 # ##

87 Project 3 What are the non-terminals What are the terminals?
EXAMPLE #2 NT1 NT2 NT3# NT1 -> NT2 NT3# NT2 -> NT2 amp NT2 # NT2 -> NT2 pipe NT2 # NT2 -> ID # NT3 -> semicolon ## What are the non-terminals What are the terminals?

88 Project 3 What are the non-terminals What are the terminals?
EXAMPLE #2 NT1 NT2 NT3# NT1 -> NT2 NT3# NT2 -> NT2 amp NT2 # NT2 -> NT2 pipe NT2 # NT2 -> ID # NT3 -> semicolon ## What are the non-terminals Non-terminals = { NT1, NT2, NT3 } What are the terminals? Terminals = {amp, pipe, ID, semicolon}

89 Project 3 This is valid input, newlines are not a delimiter!
EXAMPLE #2 (crazy style) NT1 NT2 NT3 # NT1 -> NT2 NT3 # NT2 -> NT2 amp NT2 # NT2 -> NT2 pipe NT2 # NT2 -> ID # NT3 -> semicolon ## This is valid input, newlines are not a delimiter!

90 Project 3 – Part 1 0 (a zero) is passed in as an argument
First line lists all non-terminals delimited by a space Non-terminals listed in order encountered After last Non-terminal line will be ended with a new line character

91 Project 3 – Part 1 Remaining Lines, create a line for each unique terminal A terminal is followed by a colon A space An integer, which is number of rules in which terminal appears on the right –side A new line

92 Project 3 – Part 1 NT1 NT2 NT3 # NT1 -> NT2 NT3 #
EXAMPLE NT1 NT2 NT3 # NT1 -> NT2 NT3 # NT2 -> NT2 amp NT2 amp ID # NT2 -> NT2 pipe NT2 amp ID # NT2 -> ID # NT3 -> semicolon ##

93 Project 3 – Part 1 NT1 NT2 NT3 # NT1 -> NT2 NT3 #
EXAMPLE #2 NT1 NT2 NT3 # NT1 -> NT2 NT3 # NT2 -> NT2 amp NT2 amp ID # NT2 -> NT2 pipe NT2 amp ID # NT2 -> ID # NT3 -> semicolon ## NT3 -> amp; EXAMPLE #2 as OUTPUT from Part 1 NT1 NT2 NT3 amp: 2 pipe: 1 ID: 1 semicolon: 1 Why is amp 2 not 3 or 4? “number of rules in which that terminal appears on the right hand side”

94 Project 3 – Part 1 NT1 NT2 NT3 # NT1 -> NT2 NT3 #
EXAMPLE #2 NT1 NT2 NT3 # NT1 -> NT2 NT3 # NT2 -> NT2 amp NT2 amp ID # NT2 -> NT2 pipe NT2 amp ID # NT2 -> ID # NT3 -> semicolon ## NT3 -> amp; EXAMPLE #2 as OUTPUT from Part 1 NT1 NT2 NT3 amp: 2 pipe: 1 ID: 1 semicolon: 1 Why is amp 2 not 3 or 4? “number of rules in which that terminal appears on the right hand side”

95 Project 3 – Part 1 NT1 NT2 NT3 # NT1 -> NT2 NT3 #
EXAMPLE #3 NT1 NT2 NT3 # NT1 -> NT2 NT3 # NT2 -> NT2 amp NT2 amp ID # ## NT2 -> NT2 pipe NT2 amp ID # NT2 -> ID # NT3 -> semicolon ##

96 Project 3 – Part 1 NT1 NT2 NT3 # NT1 -> NT2 NT3 #
EXAMPLE #3 NT1 NT2 NT3 # NT1 -> NT2 NT3 # NT2 -> NT2 amp NT2 amp ID # ## NT2 -> NT2 pipe NT2 amp ID # NT2 -> ID # NT3 -> semicolon ## EXAMPLE #3 as OUTPUT from Part 1 NT1 NT2 NT3 amp: 1


Download ppt "CSE 340 Recitation Week 4 : Sept 8th – 14th"

Similar presentations


Ads by Google