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

Грамматика № 1_3. Метка

Правила :

1) M -> i

2) M -> n

Терминалы :

i = идентификатор, n = целое без знака

Нетерминалы :

M = метка


Матрица предшествования:

Функция перенос Функция свертка


правила грамматики :

1) M -> i

2) M -> n

Грамматика № 2. Раздел операторов

Правила :

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]

где:

Терминалы :

beg = ключевое слово begin,

end = ключевое слово

n = целое без знака

str = ключевое слово string

; , : , := , ' ,

gt = ключевое слово goto

if = ключевое слово

th = ключевое слово then

els = ключевое слово else

whi = ключевое слово while

do = ключевое слово

r = ключевое слово read

rln = ключевое слово readln

w = ключевое слово write

wln = ключевое слово writeln

-- = бинарный минус

vr = выражение (грамматика № 3)

, , [ , ] , ( , ),

i = идентификатор

Нетерминалы :

SOP = составной оператор

LS = список операторов

OPR = оператор

OP1, OP2, OP3,

LM = список меток

M = метка

Z = целое

O:= = оператор присваивания

OR = оператор ввода

OW = оператор вывода

OG = безусловный переход

OI = условный оператор

OWI = оператор цикла

LPR = список параметров

PAR = параметр

TMP = переменная

Матрица предшествования:

Функция перенос

Функция свертка

Грамматика № 3. Описание выражений

Правила :

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 -> V10 not V11

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

где:

Терминалы :

–, – –, = , < , > , <> , / , + , ( , ) , *, [ , ] ,

i = идентификатор

n = целое без знака

or = ключевое слово

and = ключевое слово

not = ключевое слово

Нетерминалы :

VR = выражение

V1, V2, V3, V4, V5, V6, V7, V8, V9, V10, V11, Z, F

TMP = переменная

Матрица предшествования

Функция перенос

Функция свертка

правила грамматики :

1) VR -> VR or VR

2) VR -> VR and VR

3) VR -> VR < VR

4) VR -> VR > VR

5) VR -> VR <> VR

6) VR -> VR = VR

7) VR -> VR + VR

8) VR -> VR - VR

9) VR -> VR * VR

10) VR -> VR / VR

11) VR -> VR not VR

12) VR -> ( VR )

13) VR -> -- VR

14) VR -> n

15) VR -> i

16) VR -> i [ VR ]

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