(20,7,60,17);
textattr (62);
clrscr ();
Windows (20,7,60,17, "Language");
window (22,9,58,16);
cprintf ("IF (<АВ>) LABEL1, LABEL2, LABEL3 n n r ");
cprintf ("АВ - Арифметичне Вираз. N r ");
cprintf (" LABEL1, LABEL2, LABEL3 - перша, друга і третя мітки відповідно. N r ");
getch ();
}
// Компіляція програми.
void Compile (void)
{
window (20,7,55,13);
textattr (94);
clrscr ();
Windows (20,7,55,13, ​​"Compile");
window (22,8,58,16);
gotoxy (1,1);
if (com! = 0)
{
cprintf (" n n Файл откомпилирован! ");
Beep (900,1000);
return;
}
cputs (" n Йде компіляція файлу. r n n ласка, почекайте ... ");
# ifdef TEST
window (1,1,80,25);
clrscr ();
# endif
for (int i = 0; file1 [i] [0]! = NULL; i + +)
{
Operator (file1 [i]);
if (l! = 3 && l! = 0)
Error (11);
e1 + +;
e2 = 0;
}
com + +;
delay (300);
Beep (1000,200);
}
// Оператор.
void Operator (char * str)
{
pos = 2;
l = 0;
string [0] = NULL;
strcpy (string, str);
string [strlen (string) -1] = NULL;
char temp [3];
temp [0] = str [0];
temp [1] = str [1];
temp [2] = NULL;
# ifdef TEST
puts (string);
puts (temp);
getch ();
# endif
fprintf (fl, "
fprintf (fl, "% s n", string);
if (strcmp (temp, "IF")! = 0)
{
# ifdef TEST
printf ("Не знайдений оператор IF. n");
# endif
Error (10);
return;
}
Scan ();
if (nx == '')
Scan ();
if (nx! = '(')
Error (7);
if (nx == NULL)
{
Error (12);
Error (9);
return;
}
AB ();
while (nx! = ')' && nx! = NULL && Nx! = '') p> Scan ();
if (nx! = ')')
Error (3);
if (nx == NULL)
{
Error (9);
return;
}
Scan ();
if (nx == NULL)
{
Error (9);
return;
}
if (nx == '')
Scan ();
Label ();
if (nx! = ',')
{
Error (5);
Scan ();
}
else
Scan ();
if (nx == NULL)
return;
Label ();
if (nx! = ',')
{
Error (5);
Scan ();
}
else
Scan ();
if (nx == NULL)
return;
Label ();
if (nx! = NULL)
{
Error (6);
Scan ();
}
return;
}
// Scan.
void Scan (v...