【编译原理】作业五
编译原理 第五次作业
151220129 计科 吴政亿 18805156360@163.com
4.7.1
- 规范LR项集族
I0:
[S' -> ·S , $]
[S' -> ·SS+, $], [S' -> ·SS+, a]
[S' -> ·SS*, $], [S' -> ·SS*, a]
[S' -> ·a , $], [S' -> ·a , a]
I1:
[S' -> a· , $], [S' -> a· , a]
I2:
[S' -> S· , $]
[S' -> S·S+, $], [S' -> S·S+, a]
[S' -> S·S*, $], [S' -> S·S*, a]
[S' -> ·SS+, a], [S' -> ·SS+, *], [S' -> ·SS+, +]
[S' -> ·SS*, a], [S' -> ·SS*, *], [S' -> ·SS*, +]
[S' -> ·a , a], [S' -> ·a , *], [S' -> ·a , +]
I3:
[S' -> a· , a], [S' -> a· , *], [S' -> a· , +]
I4:
[S' -> SS·+, $], [S' -> SS·+, a]
[S' -> SS·*, $], [S' -> SS·*, a]
[S' -> S·S+, a], [S' -> S·S+, *], [S' -> S·S+, +]
[S' -> S·S*, a], [S' -> S·S*, *], [S' -> S·S*, +]
[S' -> ·SS+, a], [S' -> ·SS+, *], [S' -> ·SS+, +]
[S' -> ·SS*, a], [S' -> ·SS*, *], [S' -> ·SS*, +]
[S' -> ·a , a], [S' -> ·a , *], [S' -> ·a , +]
I5:
[S' -> SS+·, $], [S' -> SS+·, a]
I6:
[S' -> SS*·, $], [S' -> SS*·, a]
I7:
[S' -> SS·+, a], [S' -> SS·+, *], [S' -> SS·+, +]
[S' -> SS·*, a], [S' -> SS·*, *], [S' -> SS·*, +]
[S' -> S·S+, a], [S' -> S·S+, *], [S' -> S·S+, +]
[S' -> S·S*, a], [S' -> S·S*, *], [S' -> S·S*, +]
[S' -> ·SS+, a], [S' -> ·SS+, *], [S' -> ·SS+, +]
[S' -> ·SS*, a], [S' -> ·SS*, *], [S' -> ·SS*, +]
[S' -> ·a , a], [S' -> ·a , *], [S' -> ·a , +]
I8:
[S' -> SS+·, a], [S' -> SS+·, *], [S' -> SS+·, +]
I9:
[S' -> SS*·, a], [S' -> SS*·, *], [S' -> SS*·, +]
- LALR项集族:
I0:
[S' -> ·S , $]
[S' -> ·SS+, $], [S' -> ·SS+, a]
[S' -> ·SS*, $], [S' -> ·SS*, a]
[S' -> ·a , $], [S' -> ·a , a]
I1:
[S' -> S· , $]
[S' -> S·S+, $], [S' -> S·S+, a]
[S' -> S·S*, $], [S' -> S·S*, a]
[S' -> ·SS+, a], [S' -> ·SS+, *], [S' -> ·SS+, +]
[S' -> ·SS*, a], [S' -> ·SS*, *], [S' -> ·SS*, +]
[S' -> ·a , a], [S' -> ·a , *], [S' -> ·a , +]
I2:
[S' -> SS·+, a], [S' -> SS·+, *], [S' -> SS·+, +], [S' -> SS·+, $]
[S' -> SS·*, a], [S' -> SS·*, *], [S' -> SS·*, *], [S' -> SS·*, $]
[S' -> S·S+, a], [S' -> S·S+, *], [S' -> S·S+, +]
[S' -> S·S*, a], [S' -> S·S*, *], [S' -> S·S*, +]
[S' -> ·SS+, a], [S' -> ·SS+, *], [S' -> ·SS+, +]
[S' -> ·SS*, a], [S' -> ·SS*, *], [S' -> ·SS*, +]
[S' -> ·a , a], [S' -> ·a , *], [S' -> ·a , +]
I3:
[S' -> a· , a], [S' -> a· , *], [S' -> a· , +], [S' -> a· , $]
I4:
[S' -> SS+·, a], [S' -> SS+·, *], [S' -> SS+·, +], [S' -> SS+·, $]
I5:
[S' -> SS*·, a], [S' -> SS*·, *], [S' -> SS*·, +], [S' -> SS*·, $]
5.1.2
| 产生式 | 语法规则 |
|---|---|
| L−>En L − > E n | L.val=E.val L . v a l = E . v a l |
| E−>TE′ E − > T E ′ | E′.inh=T.val E ′ . i n h = T . v a l |
| E.val=E′.syn E . v a l = E ′ . s y n | |
| E′−>+TE′1 E ′ − > + T E 1 ′ | E′1.inh=E′.inh+T.val E 1 ′ . i n h = E ′ . i n h + T . v a l |
| E′.syn=E′1.syn E ′ . s y n = E 1 ′ . s y n | |
| E′−>ϵ E ′ − > ϵ | E′.syn=E′.inh E ′ . s y n = E ′ . i n h |
| T−>FT′ T − > F T ′ | T′.inh=F.val T ′ . i n h = F . v a l |
| T.val=T′.syn T . v a l = T ′ . s y n | |
| T′−>∗FT′1 T ′ − > ∗ F T 1 ′ | T′1.inh=T′.inh∗F.val, T 1 ′ . i n h = T ′ . i n h ∗ F . v a l , |
| T′.syn=T′1.syn T ′ . s y n = T 1 ′ . s y n | |
| T′−>ϵ T ′ − > ϵ | T′.syn=T′.inh T ′ . s y n = T ′ . i n h |
| F−>(E) F − > ( E ) | F.val=E.val F . v a l = E . v a l |
| F−>digit F − > d i g i t | F.val=digit.lexval F . v a l = d i g i t . l e x v a l |