Парадигмы программирования

       

й разряд записать 44


X = 23 .f. 1,10, a (2) = 44 /* в поле с 1 по 10- й разряд записать 44 */ .ch. 5, text = 'A' /* в 5-й символ текста записать 'A' */
Листинг 4.1. Примеры операторов присваивания в языке Little
Закрыть окно




subr START; /* Разбор оператора присваивания языка Little */ size SYM (48); call SCAN (SYM); /* Чтение первого символа */ call ASSIGN; return; end;
subr ASSIGN; /* Разбор оператора присваивания, первый символ которого уже прочитан процедурой SYM */
if TC(SYM).EQ. TC ( '.' ) go to ASS; if TC(SYM).EQ. TC (NAME) go to NAME1; ERROR;
/ASS/ call SCAN (SYM); /* левая часть*/ IF TC (SYM).ne. TC (PREF) ERROR; call SCAN (SYM);
IF TC (SYM).ne. TC ( '.' ) ERROR; call SCAN (SYM); call SCAN (PREF); /* f, s, e, ch */ /* выделение поля из левой части */ call SCAN (SYM);
IF TC (SYM).ne. TC (NAME) ERROR; go to NAME1;
/NAME1/ call SCAN (SYM); if TC(SYM).EQ. TC ( '=' ) go to NAME2; if TC(SYM).EQ. TC ( '(' ) go to RI-PAR; ERROR;
/RI-PAR/ call SCAN (SYM); IF TC (SYM).ne. TC (EXPR) ERROR; call SCAN (SYM); IF TC (SYM).ne. TC ( ')' ) ERROR; Call SCAN (SYM); IF TC (SYM).ne. TC ( '=' ) ERROR; go to NAME2;
/NAME2/ call SCAN (SYM); IF TC (SYM).ne. TC (NAME) ERROR; return;
/NO/ end;
Листинг 4.2. Программа синтаксического анализа операторов присваивания написанная на языке Little.
Закрыть окно



Содержание раздела