Скачиваний:
6
Добавлен:
01.05.2014
Размер:
35.84 Кб
Скачать

4. Построение атрибутной транслирующей грамматики.

4.1 ПОСТРОЕНИЕ ТРАНСЛИРУЮЩЕЙ ГРАММАТИКИ.

Для построения транслирующей грамматики в самую крайнюю правую позицию каждого i-го правила вывода входной грамматики вставляется операционный символ {СВЕРТКА i}.

4.2 ДОБАВЛЕНИЕ АТРИБУТОВ.

Атрибутная граматика для арифметических выражений :

1) VR -> VR or V1 {СВЕРТКА }

2) VR -> V1 {СВЕРТКА }

3) V1 -> V1 and V2 {СВЕРТКА }

4) V1 -> V2 {СВЕРТКА }

5) V2 -> V2 < V3 {СВЕРТКА }

6) V2 -> V3 {СВЕРТКА }

7) V3 -> V3 > V4 {СВЕРТКА }

8) V3 -> V4 {СВЕРТКА }

9) V4 -> V4 <> V5 {СВЕРТКА }

10) V4 -> V5 {СВЕРТКА }

11) V5 -> V5 = V6 {СВЕРТКА }

12) V5 -> V6 {СВЕРТКА }

13) V6 -> V6 + V7 {СВЕРТКА }

14) V6 -> V7 {СВЕРТКА }

15) V7 -> V7 - V8 {СВЕРТКА }

16) V7 -> V8 {СВЕРТКА }

17) V8 -> V8 * V9 {СВЕРТКА }

18) V8 -> V9 {СВЕРТКА }

19) V9 -> V9 / V10 {СВЕРТКА }

20) V9 -> V10 {СВЕРТКА }

21) V10 -> not V10 {СВЕРТКА }

22) V10 -> V11 {СВЕРТКА }

23) V11 -> ( VR ) {СВЕРТКА }

24) V11 -> Z {СВЕРТКА }

25) V11 -> TMP {СВЕРТКА }

26) Z -> -- F {СВЕРТКА }

27) Z -> n {СВЕРТКА }

28) TMP -> i {СВЕРТКА }

29) TMP -> i [ VR ] {СВЕРТКА }

30) F -> n {СВЕРТКА }

Атрибутная граматика для подграмматики операторов :

1) SOP -> beg LS end {СВЕРТКА }

2) SOP -> beg end {СВЕРТКА }

3) LS -> OPR {СВЕРТКА }

4) LS -> LS ; OPR {СВЕРТКА }

5) OPR -> OP1 {СВЕРТКА }

6) OPR -> LM : {СВЕРТКА }

7) OP1 -> LM : OP2 {СВЕРТКА }

8) OP1 -> OP2 {СВЕРТКА }

9) LM -> M {СВЕРТКА }

10) LM -> LM : M {СВЕРТКА }

11) M -> i {СВЕРТКА }

12) M -> n {СВЕРТКА }

13) Z -> -- n {СВЕРТКА }

14) Z -> n {СВЕРТКА }

15) OP2 -> OP3 {СВЕРТКА }

16) OP2 -> SOP {СВЕРТКА }

17) OP3 -> O:= {СВЕРТКА }

18) OP3 -> OR {СВЕРТКА }

19) OP3 -> OW {СВЕРТКА }

20) OP3 -> OG {СВЕРТКА }

21) OP3 -> OI {СВЕРТКА }

22) OP3 -> OWI {СВЕРТКА }

23) O:= -> TMP := vr {СВЕРТКА }

24) OR -> r ( LPR ) {СВЕРТКА }

25) OR -> rln ( LPR ) {СВЕРТКА }

26) OW -> w ( LPR ) {СВЕРТКА }

27) OW -> wln ( LPR ) {СВЕРТКА }

28) OG -> gt M {СВЕРТКА }

29) OI -> if vr th SOP {СВЕРТКА }

30) OI -> if vr th SOP els SOP {СВЕРТКА }

31) OWI -> whi vr do OP2 {СВЕРТКА }

32) LPR -> PAR {СВЕРТКА }

33) LPR -> LPR , PAR {СВЕРТКА }

34) PAR -> TMP {СВЕРТКА }

35) PAR -> Z {СВЕРТКА }

36) PAR -> ' str ' {СВЕРТКА }

37) TMP -> i {СВЕРТКА }

38) TMP -> i [ vr ] {СВЕРТКА }

Атрибутная граматика для подграмматики описания :

1) RO -> lab OM {СВЕРТКА }

2) RO -> c OC {СВЕРТКА }

3) RO -> var OP {СВЕРТКА }

4) OC -> i = VR ; {СВЕРТКА }

5) OC -> i = VR ; OC {СВЕРТКА }

6) OP -> LP : T ; OP {СВЕРТКА }

7) OP -> LP : T ; {СВЕРТКА }

8) OM -> m {СВЕРТКА }

9) OM -> OM , m {СВЕРТКА }

10) LP -> i {СВЕРТКА }

11) LP -> LP , i {СВЕРТКА }

12) T -> int {СВЕРТКА }

13) T -> bl {СВЕРТКА }

14) T -> ar [ PR ] of bl {СВЕРТКА }

15) VR -> Z {СВЕРТКА }

16) VR -> tru {СВЕРТКА }

17) VR -> fal {СВЕРТКА }

18) Z -> -- n {СВЕРТКА }

19) Z -> n {СВЕРТКА }

20) PR -> n . . n {СВЕРТКА }

Атрибутная граматика для подграмматики меток :

1) M -> i {СВЕРТКА }

2) M -> n {СВЕРТКА }

Атрибутная граматика для подграмматики программы :

1) PRG -> pr i ; OO ; sop . {СВЕРТКА }

2) PRG -> pr i ; sop . {СВЕРТКА }

3) PRG -> OO ; sop . {СВЕРТКА }

4) PRG -> sop . {СВЕРТКА }

5) OO -> ro {СВЕРТКА }

6) OO -> OO ro {СВЕРТКА }

Соседние файлы в папке Курсовая работа1