Составители:
Рубрика:
{
while(!isdelim(*prog) && !iswhite(*prog)) *temp++=*prog++;
*temp='\0';
return(token_type=NUMBER);
}
if (isalpha(*prog)) /* тип: переменная или команда */
{
while(!isdelim(*prog) && !iswhite(*prog))
{*temp++=*prog++;
};
token_type=STRING;
}
*temp='\0';
if (token_type==STRING)
{
tok=look_up(token);
if(!tok) token_type=VARIABLE;
else token_type=COMMAND;
}
return token_type;
}
Предложенная функция распознает шесть типов лексем (см. табл. 3).
Глобальная ( extern ) переменная token_type хранит результат работы
функции - тип лексемы. Внутренне представление лексемы помещается в
переменную tok, имеющую глобальный статус extern. Конструкция
extern (глобальная) открывает доступ к
содержимому переменных для
других функций.
Для повторного просмотра лексемы, если это необходимо
предлагается функция возврата putback().
/* Возврат лексемы во входной поток */
void putback()
{
char *t;
t=token;
for(; *t; t++)prog--;
}
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »