Программирование >>  Формирование пользовательского контейнера 

1 ... 49 50 51 [ 52 ] 53 54 55 ... 156


tolower(ch) == е I I

ch == - I I ch == + ) { tok += ch; ch = fin.get 0 ;

fin.putback(ch); return true;

Ищет сиьлвольную комбинацию \ *

if(ch == -W) { ch2 = fin.get 0 ; if(ch2 == ) { tok += ch;. tok += ch2; ch = fin.getO; } else

fin.putback(ch2) ;

Ищет символ if (ch == Ч ) { ch2 = fin.getO ; if (ch2 == ) { tok += ch; tok += ch2; return true; } else

fin.putback(ch2);

Ищет начало символов комментария, if(ch == / ) {

tok += ch;

ch = fin.getO;

if(ch == / II ch == * ) { tok += ch;

else fin.putback(ch);



return true;

Ищет конец символов комментария. if(ch == *) {

tok += ch;

ch = fin.getO ;

if(ch == / ) { tok += ch;

else fin.putback(ch); return true;

tok += ch; return true;

Транслирует цикл foreach. void foreach О {

string tokai;

string varname;

string arrayname;

char forvamame[5] = .i ; static char counter[2] = a ;

Создает управлякадую переменную цикла для генерируемого цикла for,

strcat (f orvamame, counter); coxmter[0]++;

В файле может быть только 26 циклов foreach, так как число генерируемых управляющих переменных цикла ограничено . диапазоном от ia до iz. При желании это можно изменить, if(counter[0] > z)

throw SyntaxExcCToo many foreach loops. );

fout int forvamame

= 0;\n ;



II Записывает начало генерируемого цикла for. fout indent for( ;

skipspaces();

Считывает ( gettoken(token); if(token[0] != ( )

throw SyntaxExc( ( expected in foreach. );

skipspaces();

Получает тип переменной цикла foreach. gettoken(token); fout token ;

skipspaces();

Читает и сохраняет имя переменной цикла foreach. gettoken(token); vamame = token;

skipspaces();

Читает in , gettoken(token); if(token != in )

throw SyntaxExc( in expected in foreach. );

skipspaces();

Читает имя массива, gettoken(token); arrayname = token;

fout vamame = arrayname [0];\n ; Конструирует результирующую строку.



1 ... 49 50 51 [ 52 ] 53 54 55 ... 156

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика