Подграмматика выражения
|
|
VAR |
( |
) |
+ |
- |
++ |
-- |
~ |
VEC |
* |
/ |
; |
[ |
ε |
|
EXP |
EXPS q SAE t,type {ADD}p1, p2, p3,p4, 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
EXPS |
AE, 7 |
AE, 7 |
|
|
|
++ AEr {++}p, 6 |
-- AEr {--}p, 7 |
~ VEC r,t {~}p1, p, 8 |
|
|
|
|
|
|
|
SAE |
ε, 14 |
(EXPr),4 |
ε, 4 |
+ AEr SAE t,type, 2 |
- AEr SAE t,type, 3 |
|
|
|
|
|
|
ε, 4 |
|
ε, 4 |
|
SME |
ε, 12 |
|
ε, 12 |
ε, 12 |
ε, 12 |
|
|
|
|
* ME t SME, 10 |
/ ME t SME, 11 |
ε, 12 |
|
ε, 12 |
|
AE |
ME t SME q,type {MUL}p1, p2, p3,p4, 9 |
ME t SME q,type {MUL}p1, p2, p3,p4, 9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
ME |
VAR name,type,eql, 14 |
( EXPr ), 13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
VAR |
ВЫЗОВ |
|
|
|
|
|
|
|
|
|
|
|
VAR name,type,eql, 14 |
|
|
+ |
|
|
|
ВЫБРОС |
|
|
|
|
|
|
|
|
|
|
|
- |
|
|
|
|
ВЫБРОС |
|
|
|
|
|
|
|
|
|
|
++ |
|
|
|
|
|
ВЫБРОС |
|
|
|
|
|
|
|
|
|
-- |
|
|
|
|
|
|
ВЫБРОС |
|
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
|
|
ВЫБРОС |
|
|
|
|
|
/ |
|
|
|
|
|
|
|
|
|
|
ВЫБРОС |
|
|
|
|
~ |
|
|
|
|
|
|
|
ВЫБРОС |
|
|
|
|
|
|
|
VEC |
|
|
|
|
|
|
|
|
ВЫЗОВ |
|
|
|
|
|
|
{ADD}p1, p2, p3,p4, |
ВЫДАЧА{ADD}p1, p2, p3,p4, |
|||||||||||||
|
{++}p, |
ВЫДАЧА{++}p, |
|||||||||||||
|
{--}p |
ВЫДАЧА{--}p |
|||||||||||||
|
{~}p1, p |
ВЫДАЧА{~}p1, p |
|||||||||||||
|
{MUL}p1, p2, p3,p4 |
ВЫДАЧА{MUL}p1, p2, p3,p4 |
|||||||||||||
|
┴ |
|
|
|
|
|
|
|
|
|
|
|
|
|
СВЁРТКА,72 |
EXP r → EXPS q SAE t,type {ADD}p1, p2, p3,p4 (1)
p1<-q
p2<-t
r<-p3
p4<- type
SAE t,type → + AEr SAE t,type (2)
t<- k
type<- код операции для сложения
SAE t,type → - AEr SAE t,type (3)
SAE t,type -> (EXPr) (4)
t<- r
type<- 10
SAE t,type → (5)
t<- 10
type<- 10
EXPSq → ++ AEr {++}p1 (6)
p1<- r
EXPS q → -- AEr {--}p1 (7)
p1<- r
EXPS q → AEr
EXPS q → ~ VEC r,t {~}p1, p2 (8)
p1<- r
q<- p2
AEr → ME t SME q,type {MUL}p1, p2, p3,p4 (9)
r<- p3
p1<-t
p2 <-q
p4<- type
SME q,type → * ME t SME (10)
q<- t
type<- код для *
SME q,type → / ME t SME (11)
q<- t
type<- код для /
SME q,type → (12)
q<- 10
type<- 10
MEt → ( EXPr ) (13)
t<-r
MEt → VAR name,type,eql (14)
t<- eql
