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

1 ... 120 121 122 [ 123 ] 124 125 126 ... 156


Colon expected

Выводит ошибку и номер строки, cout \п е[error]; р p buf;

while(р != prog) { находит номер строки с ошибкой Р++;

if(*р == -Хг) { linecount++;

cout in line linecount endl; temp = p;

v4iile(p > p buf && *p != Vn) p-;

Отображает ошибочную строку, while(p <= temp) cout *p++;

cout endl;

Получает лексему-tok types get token() {

char *temp;

tokentype = UNDEFTT; tok = UNDEFTOK;

tenp = token; *temp = \0;

Пропускает пробелы.

while(isspace(*prog) && *prog) ++prog;

Пропускает переход на новую строку, while{*prog == \r) {



++prog; ++prog;

Снова пропускает пробелы.

while (isspace(*prog) ScSc *prog) ++prog;

Проверяет, не конец ли програллы. if(*prog == \0) {

♦token = \0;

tok = END;

return (tokentype = DELIMITER);

Проверяет ограничители блока, if(strchr(--, *prog)) {

♦temp = *prog;

t€mp++;

♦temp = XO;

prog++;

return (token type = BLOCK);

Р1щет коьАентарии. if(*prog == /)

if(*(prog+l) = *) { знак комьлентария /* prog += 2;

do { находит конец KObdbdeHTapHfl

while(*prog != *) prog++; . prog++;

} while (*prog != /); prog++;

return (token type = DELIMITER); } else if (*(prog+l) == /) { знак комьлентария prog += 2;

Находит конец комментария.

while(*prog != \r && *prog != XO) prog++;

if(*prog == \r) prog +=2; ,

return (tokentype = DELIMITER);



Проверяет двойные знаки операций, if(strchr( !<>=+- , *prog)) { switch (*prog) { case =:

. if(*(prog+l) == =) { prog++; prog++; ♦temp = EQ;

temp++; *teinp = EQ; temp++;

*temp = \0; } -

break; case ! :

if(*(prog+l) == = ){

prog++; prog++;

*temp = NE;

tenp++; *temp = NE; temp++; *teinp = \0 ;

break; case < :

if(*(prog+l) == = ) { prog++; prog++;

*ternp = LE; teinp++; *temp = LE;

else if(*(prog+l) == < ) { prog++; prog++;

♦temp = LS; teinp++; *teinp = LSr

else { prog++; ♦temp = LT;-

ternp++; ♦temp = \0; break; case >:

if(*(prog+l) === ){ prog++; prog++;



1 ... 120 121 122 [ 123 ] 124 125 126 ... 156

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