←ïðåäûäóùàÿ ñëåäóþùàÿ→
1 2 3 4
)==TRUE) return; // åñëè ÷èñëî áåç çíàêà - âåpíóòüñÿ
error(7); // èíà÷å - îøèáêà
}
/***********************************************************/
/* */
/* ×èñëî áåç çíàêà */
/* */
/***********************************************************/
int cbz(void)
{
if (dc()==FALSE) return(FALSE); // åñëè íå äåñÿòè÷íîå ÷èñëî âåpíóòü ëîæü
sc();
if(next=='E') // åñëè 'E'
{
sc();
if(isdigit(next))
{
while(isdigit(next)) sc(); // ñ÷èòûâàòü ïîêà öèôpû
unsc();
return(TRUE); // âåpíóòü èñòèíó
}
return(FALSE); // èíà÷å âåpíóòü ëîæü
}
unsc();
return(TRUE);
}
/********************************************************/
/* */
/* Äåñÿòè÷íîå ÷èñëî */
/* */
/********************************************************/
int dc(void)
{
int i=0;
sc();
if(isdigit(next))
{
while(isdigit(next)) // ïîêà îäíè öèôpû
{
sc(); // ñ÷èòûâàåì
if(next=='.'&&i!=1) // åñëè '.'
{
i=1;
sc(); // ñ÷èòàòü
}
}
unsc();
return(TRUE);
}
else
{
unsc();
return(FALSE);
}
}
/**************************************************/
/* */
/* Ôóíêöèÿ îápàáîòêè îøèáîê */
/* */
/**************************************************/
void error(int i)
{
num_err++; // óâåëè÷èòü ñ÷åò÷èê îøèáîê
gotoxy(1,num_err);
switch(i)
{
case 1: cprintf("%d ñòð. Îæèäàåòñÿ êîíåö ñòpîêè",cur_str);
break;
case 2: cprintf("%d ñòð. Îæèäàåòñÿ TO",cur_str);
break;
case 3: cprintf("%d ñòð. Îæèäàåòñÿ FOR",cur_str);
break;
case 4: cprintf("%d ñòð. Îæèäàåòñÿ èäåíòèôèêàòîð",cur_str);
break;
case 5: cprintf("%d ñòð. Îæèäàåòñÿ ')'",cur_str);
break;
case 6: cprintf("%d ñòð. Îæèäàåòñÿ '='",cur_str);
break;
case 7: cprintf("%d ñòð. Îæèäàåòñÿ ÷èñëî, èä-ð èëè âûð-èå ",cur_str);
break;
case 8: cprintf("%d ñòð. Íåïðåäâèäåííûé êîíåö ñòðîêè èëè ôàéëà",cur_str);
}
}
/*****************************************************/
/* */
/* Ôóíêöèÿ ñ÷èòûâàíèÿ ñëåäóþùåãî ñèìâîëà */
/* */
/*****************************************************/
void sc(void)
{
next=fgetc(fd);
}
/*******************************************************/
/* */
/* Ôóíêöèÿ âîçâpàùåíèÿ ñ÷èòàííîãî ñèìâîëà â ïîòîê */
/* */
/*******************************************************/
void unsc(void)
{
ungetc(next,fd);
}
/*************************************************/
/* */
/* Ôóíêöèÿ ïpîïóñêà òåêóùåãî ñëîâà */
/* */
/************************************************/
void next_lex(void)
{
sc();
while(next!=' ') sc(); // ñ÷èòûâàòü äî 1-ãî ïpîáåëà
unsc();
}
/**********************************************/
/* */
/* Ôóíêöèÿ óäàëåíèÿ ïpîáåëîâ */
/* */
/**********************************************/
void del_space(void)
{
char liter;
liter=fgetc(fd);
while((isspace(liter))) liter=fgetc(fd); // ñ÷èòûâàòü ïîêà ïpîáåëû
ungetc(liter,fd);
}
void main()
{
clrscr();
for (;;) // áåñêîíå÷íûé öèêë
{
switch (menu(27,8,"Âûáåpèòå íóæíîå",ss)) // âûâåñòè ìåíþ
{
case 0 : about();
break;
case 1 : grammatic();
break;
case 2 : language();
break;
case 3 : load();
break;
default : quit();
}
}
}
←ïðåäûäóùàÿ ñëåäóþùàÿ→
1 2 3 4
|
|