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

Семантические процедуры для операционных символов.

Примечание: везде А1, А2 - унаследованные, R - синтезированный.

{дизъюнкция}A1, A2, R

Аномальные ситуации:

1) тип оператора А1, А2 не int.

R = адрес триады or А1, А2

{конъюнкция}A1, A2, R

Аномальные ситуации:

1) тип оператора А1, А2 не int.

R = адрес триады and А1, А2

{равно}A1, A2, R

Аномальные ситуации:

1) тип оператора А1, А2 - vector.

R = адрес триады equ А1, А2

{неравно}A1, A2, R

Аномальные ситуации:

1) тип оператора А1, А2 - vector.

R = адрес триады neq А1, А2

{больше_или_равно}A1, A2, R

Аномальные ситуации:

1) тип оператора А1, А2 - vector.

R = адрес триады geq А1, А2

{меньше_или_равно}A1, A2, R

Аномальные ситуации:

1) тип оператора А1, А2 - vector.

R = адрес триады leq А1, А2

{больше}A1, A2, R

Аномальные ситуации:

1) тип оператора А1, А2 - vector.

R = адрес триады grt А1, А2

{меньше}A1, A2, R

Аномальные ситуации:

1) тип оператора А1, А2 - vector.

R = адрес триады low А1, А2

{унарный_минус}A1, A2, R (параметр А2 фиктивный)

Аномальные ситуации:

1) нет.

R = адрес триады neg А1, А2

{бинарный_плюс}A1, A2, R

Аномальные ситуации:

1) если тип параметров vector и их размерности не совпадают.

2) если один из параметров имеет тип vector а второй int или float.

R = адрес триады add А1, А2

{бинарный_минус}A1, A2, R

Аномальные ситуации:

1) если тип параметров vector и их размерности не совпадают.

2) если один из параметров имеет тип vector а второй int или float.

R = адрес триады sub А1, А2

{умножить}A1, A2, R

Аномальные ситуации:

1) если тип параметров vector и их размерности не совпадают.

R = адрес триады mul А1, А2

{разделить}A1, A2, R

Аномальные ситуации:

1) если тип параметров vector и их размерности не совпадают.

R = адрес триады div А1, А2

{длина_вектора}A1, A2, R (параметр А2 фиктивный)

Аномальные ситуации:

1) если тип параметрa А1 не vector.

R = адрес триады len А1, А2

{элемент_вектора}A1, A2, R

Аномальные ситуации:

1) если тип параметрa А1 не vector.

2) если значение параметра А2 больше, чем размерность вектора.

R = адрес триады elm А1, А2

2) Атрибутная грамматика для подграмматики описаний.

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

OPS

последовательность описаний

OP_

остаток последовательности описаний

KO

конкретное описание

KO’

остаток конкретного описания

KOV

конкретное описание вектора

KO_

остаток конкретного описания вектора

OV

описание вектора

OV’

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

OP

описание

OST

остаток описания

OC

описание константы

Правила :

1) OPS ® OP OP_ 2) OPS ® e 3) OP_ ® OP OP_

4) OP_ ® e 5) KO ® i = V KO'

6) KO' ® e 7) KO' ® , i = V KO'

8) KOV ® OV KO_ 9) KO_ ® e 10) KO_ ® , OV KO_

11) OV ® i = { V OST } 12) OST ® , V OST

13) OST ® e 14) OP ® int KO ;

15) OP ® flt KO ; 16) OP ® vct [ V ] KOV ;

17) OP -> cst OC 18) OC -> int KO ;

19) OC -> flt KO ; 20) OC -> vct [ V ] KOV ;

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