`gram` `prog` `prog` `stat` ; `prog'` `prog'` `prog` `prog'` `ID` `id` `id` `id/call` `id'` `id'` `id'` . `id` `id/call` `id-el` `id/call'` `id/call'` `id/call'` `call` `id-el` "ID" `id-el` ID `stat` `call-or-assig` `call-or-assig` `ID` `call-or-assig'` `call-or-assig'` `assig` `call-or-assig'` `assig` := `e` `stat` `if` `if` ÅÑËÈ `e` ÒÎ `prog` `if'` `if'` ÊÎÍÅÖ `if'` ÈÍÀ×Å `prog` ÊÎÍÅÖ `if` IF `e` THEN `prog` `if''` `if''` END `if''` ELSE `prog` END `e` `se` `e'` `e'` `rop` `se` `e'` ÍÅ `rop` `se` `e'` `rop` = `rop` <> `rop` < `rop` > `rop` <= `rop` >= `rop` in `se` `ae` `se` + `ae` `se` - `ae` `ae` `t` `ae'` `ae'` `aop` `ae` `ae'` `aop` + `aop` - `aop` ÈËÈ `aop` xor `t` `f` `t'` `t'` `mop` `t` `t'` `mop` * `mop` / `mop` div `mop` rem `mop` È `f` 10E46 `f` `ID` `f` ( `e` ) `f` ÍÅ `f` `f` NOT `f` `stat` `while` `while` ÏÎÊÀ `e` ÄÅËÀÒÜ `prog` ÊÎÍÅÖ `while` WHILE `e` DO `prog` END `stat` `for` `for` ÏÎÂÒÎÐÈÒÜ `e` `times` `prog` ÊÎÍÅÖ `for` REPEAT `e` TIMES `prog` END `times` ÐÀÇ `times` ÐÀÇÀ `call` `arglist` `arglist` `arglist` ( `args` ) `args` `e` `args'` `args'` `args'` , `args` `f` 'Ñòðîêà' `f` ÈÑÒÈÍÀ `f` ËÎÆÜ `f` TRUE `f` FALSE