Теория языков программирования и методы трансляции. Копейкин М.В - 10 стр.

UptoLike

extern char *prog;
/* *prog указывает на входной поток лексем */
char *tok_a;
get_token() /* получить */
{
int ch;
register char *temp;
token_type=0; tok=0;
prog_W=prog;
temp=token;
if (*prog=='\0') /* проверка на конец */
{
*token=0;
tok=FINISHED;
tok_a=tok;
return(token_type=DELIMITER);
}
while(iswhite(*prog))++prog; /* iswhite - */
if (*prog=='\r') /* Ctrl */
{
++prog; ++prog;
tok=EOL; *token='\r';
token[1]='\n'; token[2]=0;
return(token_type=DELIMITER);
}
if (strchr("+-*^/%=';().><",*prog)) /* тип - разделитель */
{
*temp=*prog;
++prog;
temp++;
*temp=0;
return(token_type=DELIMITER);
}
if (*prog=='"') /* тип - кавычки */
{
prog++;
while(*prog!='"' && *prog!='\r') *temp++=*prog++;
if(*prog=='\r') serror(1);
prog++; *temp=0;
return(token_type=QUOTE);
}
if (isdigit(*prog)) /* тип - цифра */