1) PROG ;
2) DCONST ;
3) CONS ;
4) DVARB ;
5) DFUNC ;
6) PARAM ;
7) BODY ;
8) STML ;
9) STAT ;
10) EXPR ;
11) TERM ;
12) FACT ;
13) FCTL .
13 , SPL. () PROG.
1) PROG (DCONST | DFUNC | DVARB)* eof
, , . , . , , . , . eof . , .
2) DCONST constl CONS (, CONS)* ;
const, constl . CONS. . ;.
3) CONS iden = [+ | -] numb
, =, .
2- 3- , SPL.
, const k=4, m=-5, q=125;
4) DVARB → intl iden (, iden) * ;
int. intl. . . ;.
5) DFUNC → iden PARAM BODY
, .
6) PARAM → ( [ iden (, iden) * ] )
. .
7) BODY → beginl (DVARB | DCONST)* STML endl
begin, beginl. . end ( endl).
8) STML → STAT (, STAT)*
,.
9) STAT → iden = EXPR |
readl iden |
pritl EXPR |
retrl EXPR |
ifl EXPR thenl STML endl |
whilel EXPR dol STML endl
SPL :
1 , .
2 .
|
|
3 .
4 .
5 . . , , then end.
6 . , () do end, , while .
10) EXPR → [, | -] TERM ((+ | -) TERM)*
, . + - .
11) TERM → FACT ((* | / | %) FACT)*
*, /, % .
12) FACT → ( EXPR ) | numb | iden [ ( ]FCTL ] ) ]
- , , . . . .
14) FCTL → EXPR (, EXPR)*
.
7