728x90
Shift Reduce Parser Example
Shift Reduce Parser에 대한 예제 문제이다.
아래의 예제 문제를 살펴보며 Shift Reduce Parser에 대해서 이해할 수 있다.
#01 Example
# Parser Table
State | Action | Goto | |||||||
id | + | * | ( | ) | $ | E | T | F | |
0 | S5 | S4 | 1 | 2 | 3 | ||||
1 | S6 | ACCEPT | |||||||
2 | R2 | S7 | R2 | R2 | |||||
3 | R4 | R4 | R4 | R4 | |||||
4 | S5 | S4 | 8 | 2 | 3 | ||||
5 | R6 | R6 | R6 | R6 | |||||
6 | S5 | S4 | 9 | 3 | |||||
7 | S5 | S4 | 10 | ||||||
8 | S6 | S11 | |||||||
9 | R1 | S7 | R1 | R1 | |||||
10 | R3 | R3 | R3 | R3 | |||||
11 | R5 | R5 | R5 | R5 |
# Grammar
E -> E + T
E -> T
T -> T * F
T -> F
F -> (E)
F -> id
# Solution
Step | Stack | Input |
1 | 0 | (id*id)+id |
2 | 0(4 | id*id)+id |
3 | 0(4id5 | *id)+id |
4 | 0(4F3 | *id)+id |
5 | 0(4T2 | *id)+id |
6 | 0(4T2*7 | id)+id |
7 | 0(4T2*7id5 | )+id |
8 | 0(4T2*7F10 | )+id |
9 | 0(4T2 | )+id |
10 | 0(4E8 | )+id |
11 | 0(4E8)11 | +id |
12 | 0F3 | +id |
13 | 0T2 | +id |
14 | 0E1 | +id |
15 | 0E1+6 | id |
16 | 0E1+6id5 | |
17 | Not Accepted |
728x90
'Computer Science' 카테고리의 다른 글
[Programming] 소프트웨어 개발 방법론(Software Development Methodologies) (0) | 2021.09.12 |
---|---|
[Programming] 신입 개발자가 조심해야 하는 것 #01 - 불법 프로그램, 용도 이외의 프로그램 사용 (0) | 2021.08.20 |
[Programming] Amdahl's Law (암달의 법칙) (0) | 2021.08.06 |
[Programming] Scheme Language(스킴): Example Codes (0) | 2021.08.05 |
[Programming] Prolog: Family Tree Example (0) | 2021.08.05 |
댓글