Ieienoa?noai iaoee, aunoae oeieu e oaoie/aneie iieeoeee ?inneeneie
Oaaea?aoeee.
Iiaineae?neee Ainoaea?noaaiiue
Oaoie/aneee Oieaa?neoao.
Eo?niaay ?aaioa ii nenoaiiiio i?ia?aiie?iaaieth.
?ac?aaioea neioaene/aneiai ?aniiciaaaoaey au/eneyaiiai iia?aoi?a
ia?aoiaea ycuea FORTRAN.
Oaeoeueoao: AAO.
Eaoaae?a: ANO.
A?oiia: A-513.
Nooaeaio: Ai?cia Aiae?ae Ieeieaaae/.
I?aiiaeaaaoaeue: Oi?ieeia TH?ee Aeaaeeie?iae/.
Annenoaio: Iaiiaa Aa?a Ai?eniaia.
Aeaoa: 19 iay 1997 aiaea.
Ioiaoea i caueoa: _______________________________
Iiaineae?ne – 1997.
sscue iia?aoi?a.
sscue au/eneyaiiai iia?aoi?a ia?aoiaea ycuea FORTRAN.
GOTO IAOEA(EIINOAIOA(A?EOIAOE*ANEIA AU?AAEAIEA
IAOEA – Eaeaioeoeeaoi?
EIINOAIOA – OeAEIA AAC CIAEA
A?EOIAOE*ANEIA AU?AAEAIEA – AU?AAEAIEA, NIAeA?AEAUAA A NAAA IIA?AOeEE *,
/, -, +, **, A OAEAEA ( ).
** – AICAAAeAIEA A NOAIAIUe.
A?aiiaoeea ycuea.
G[
O ( I (O(I ( O/I (O((I
I ((
O – OA?I
I – IIA?AIAe
A – AOEAA
Oe – OeEO?A
AeAC – Ae?IAIIA AAC CIAEA
( – EIIAOe NO?IEE (ionoi)
** – AICAAAeAIEA A NOAIAIUe
Eeanneoeeaoeey a?aiiaoeee.
Aeaiiay a?aiiaoeea G[
yaeyaony eiioaenoii-naiaiaeiie, oae eae i?aaay /anoue eaaeaeie
?aaeoeoeee ia/eiaaony eeai n oa?ieiaeueiiai neiaiea, eeai n
iaoa?ieiaeueiiai, i?eiaaeeaaeauaai iauaaeei?iiiio neiaa?th.
A ( a, A(Vn, a(V(.
A?aiiaoeea G[
?aaeoeoeee ia/eiathony n oa?ieiaeueiiai neiaiea. Ii yoie aea i?e/eia
aeaiiay a?aiiaoeea ia yaeyaony S – a?aiiaoeeie.
Iaoiae aiaeeca.
Aeey aeaiiie a?aiiaoeee ?aaeeciaai ?acai? iaoiaeii ?aeo?neaiiai nionea,
iineieueeo iia ioiineony e eeanno eiioaenoii-naiaiaeiuo.
Eaeay iaoiaea ninoieo a oii, /oi eaaeaeiio iaoa?ieiaeueiiio neiaieo
noaaeony a niioaaonoaea ii?aaeae?iiay i?ia?aiiiay aaeeieoea (ooieoeey),
eioi?ay ?aniicia?o oeaii/eo, ii?iaeaeaaioth yoei iaoa?ieiaeii.
Yoe i?ioeaaeo?u e ooieoeee aucuaathony a niioaaonoaee n i?aaeeaie
a?aiiaoeee e eiiaaea aucuaatho naie naay.
Aeaiiue iaoiae ?aaeeciaai ia ycuea C++, iineieueeo ii iaeaaeaao
?aeo?neaiuie aiciiaeiinoyie.
Aeeaaiinoeea e iaeo?aeecaoeey ioeaie.
Aeey aeaiiie a?aiiaoeee i?iecaiaeeony oieueei aeeaaiinoeea e
iaeo?aeecaoeey ioeaie. Eni?aaeaiea ioeaie ia i?iecaiaeeony.
Iaeo?aeecaoeey ioeaie inouanoaeyaony ii iaoiaeo Ae?iina, oi anoue,
nioneaynue ii neioaene/aneiio aea?aao aac aica?aoa ii eiioaenoo, i?e
iaia?oaeaiee ooieeiaie neooaoeee ioa?anuaathony oa eeoa?u (neiaieu),
eioi?ua i?eaaee a ooieeiaoth neooaoeeth e ?acai? i?iaeieaeaaony.
Oanoe?iaaiea.
((((((((((((((((((((((((((((((((((((((((
I?ioieie ?aaiou neioaene/aneiai ?aniiciaaaoaey au/eneyaiiai iia?aoi?a
ia?aoiaea ycuea FORTRAN.
((((((((((((((((((((((((((((((((((((((((
GOTO A+B-DD**(CC/(23+34**R))+Y*((C))
((((((((((((((((((((((((((((((((((((((((
AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘A’ n eiaeii 65.
T – I?iaa?ea ia Oa?i.
O – I?iaa?ea ia Iia?aiae.
IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea A.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘+’ n eiaeii 43.
AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘B’ n eiaeii 66.
T – I?iaa?ea ia Oa?i.
O – I?iaa?ea ia Iia?aiae.
IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea B.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘-‘ n eiaeii 45.
AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘D’ n eiaeii 68.
T – I?iaa?ea ia Oa?i.
O – I?iaa?ea ia Iia?aiae.
IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea D.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘D’ n eiaeii 68.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘*’ n eiaeii 42.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘*’ n eiaeii 42.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘(‘ n eiaeii 40.
T – I?iaa?ea ia Oa?i.
O – I?iaa?ea ia Iia?aiae.
AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘C’ n eiaeii 67.
T – I?iaa?ea ia Oa?i.
O – I?iaa?ea ia Iia?aiae.
IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea C.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘C’ n eiaeii 67.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘/’ n eiaeii 47.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘(‘ n eiaeii 40.
T – I?iaa?ea ia Oa?i.
O – I?iaa?ea ia Iia?aiae.
AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘2’ n eiaeii 50.
T – I?iaa?ea ia Oa?i.
O – I?iaa?ea ia Iia?aiae.
IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea 2.
FLOAT – I?iaa?ea ia Ae?iaiia Aac Ciaea n oeeo?u 2.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘3’ n eiaeii 51.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘+’ n eiaeii 43.
AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘3’ n eiaeii 51.
T – I?iaa?ea ia Oa?i.
O – I?iaa?ea ia Iia?aiae.
IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea 3.
FLOAT – I?iaa?ea ia Ae?iaiia Aac Ciaea n oeeo?u 3.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘4’ n eiaeii 52.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘*’ n eiaeii 42.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘*’ n eiaeii 42.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘R’ n eiaeii 82.
T – I?iaa?ea ia Oa?i.
O – I?iaa?ea ia Iia?aiae.
IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea R.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘)’ n eiaeii 41.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘)’ n eiaeii 41.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘+’ n eiaeii 43.
AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘Y’ n eiaeii 89.
T – I?iaa?ea ia Oa?i.
O – I?iaa?ea ia Iia?aiae.
IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea Y.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘*’ n eiaeii 42.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘(‘ n eiaeii 40.
T – I?iaa?ea ia Oa?i.
O – I?iaa?ea ia Iia?aiae.
AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘(‘ n eiaeii 40.
T – I?iaa?ea ia Oa?i.
O – I?iaa?ea ia Iia?aiae.
AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘C’ n eiaeii 67.
T – I?iaa?ea ia Oa?i.
O – I?iaa?ea ia Iia?aiae.
IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea C.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘)’ n eiaeii 41.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘)’ n eiaeii 41.
SCAN – Neaie?iaaiea. Oaeouee neiaie NULL n eiaeii 0.
((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((
GOTO A
((((((((((((((((((((((((((((((((((((((((
AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.
SCAN – Neaie?iaaiea. Oaeouee neiaie ‘A’ n eiaeii 65.
T – I?iaa?ea ia Oa?i.
O – I?iaa?ea ia Iia?aiae.
IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea A.
SCAN – Neaie?iaaiea. Oaeouee neiaie NULL n eiaeii 0.
((((((((((((((((((((((((((((((((((((((((
Eenoeia i?ia?aiiu.
//(((((((((((((((((((((((((((((((((((((((
// FILE “KURSOVIK.CPP”.
//(((((((((((((((((((((((((((((((((((((((
// AA?EAHO ? 3.
//(((((((((((((((((((((((((((((((((((((((
// Iia?aoi? ia?aoiaea au/eneyaiue ycuea FORTRAN.
//(((((((((((((((((((((((((((((((((((((((
// Eaoaae?a: ANO.
// A?oiia: A-513.
// Nooaeaio: Ai?cia Aiae?ae Heeieaaae/.
// I?aiiaeaaaoaee: eaiaeeaeao oaoie/aneeo iaoe, aeioeaio Oi?ieeia TH?ee
Aeaaeeie?iae/,
// annenoaio Iaiiaa Aa?a Ai?eniaia.
// Aeaoa: 29 ai?aey 1997a.
//(((((((((((((((((((((((((((((((((((((((
// Iiaeeeth/aaiua oaeeu.
//(((((((((((((((((((((((((((((((((((((((
#include
#include
#include
#include
#include
#include
#include
#include”keyboard.h”
//(((((((((((((((((((((((((((((((((((((((
// Iae?iii?aaeaeaiey.
//(((((((((((((((((((((((((((((((((((((((
#define ERROR 0 // Eiae ioeaee.
#define COL_STR 20 // Iaeneiaeueiia eiee/anoai no?ie.
#define STR_LEN 35 // Aeeeia no?iee.
#define MAX_STR_LEN 255 // Iaeneiaeueiay aeeeia no?iee.
#define FILENAME “TEST.TXT” // Eiy oaeea, ioe?uaaaiiai ii oiie/aieth.
#define YES 1
#define NO 2
#define OK 3
//#define TEST // Ii?aaeaeaii, anee aeeth/ai ioeaaei/iue ?aaeei.
//(((((((((((((((((((((((((((((((((((((((
// I?ioioeiu ooieoeee.
//(((((((((((((((((((((((((((((((((((((((
int I_ReadKey(void); // Ii?in eeaaeaoo?u.
void Welcome(void); // Ye?ai i?e noa?oa i?ia?aiiu.
void Menu(void); // Iaith.
void Help(void); // Iiiiuue.
void MyExit(int=0); // Ei??aeoiue auoiae ec i?ia?aiiu.
void Beep(int=500,int=100); // Caoeiaie neaiae.
void Usage(void); // Eniieueciaaiea i?ia?aiiu.
int OpenFile(void); // Ioe?uoea oaeea.
void DrawBox(int,int,int,int,char*); // ?enoao ?aieo n caaieiaeii.
void PrintText(void); // Ia/aoaao iniiaiie oaeno.
void Screen(void); // Ia?a?eniaea ye?aia.
void Compile(void); // Eiiieeyoeey.
void Message(int); // Auaiae niiauaiee ia ioeaeao.
void MyPuts(char*,int); // Aiaeia puts(char*);.
void Language(void); // sscue iia?aoi?a.
void Grammar(void); // A?aiiaoeea ycuea.
void GetFilename(void); // Cai?in eiaie oaeea aeey ioe?uoey.
int ScanStr(char*); // Iiene GOTO.
int Scaner(char*); // Ia?aaioea no?iee.
void Scan(void); // Neaie?iaaiea neaaeothuaai neiaiea.
void Delspace(char*); // Oaeaeaiea iaioaeiuo i?iaaeia a no?iea.
int AB(void); // ?aaeecaoeey iaoa?ieiaea
int T(void); // ?aaeecaoeey iaoa?ieiaea
int O(void); // ?aaeecaoeey iaoa?ieiaea .
int IDENT(void); // ?aaeecaoeey iaoa?ieiaea
int FLOAT(void); // ?aaeecaoeey iaoa?ieiaea
void Error(int=0,char* =””); // Ia?aaioea ioeaee.
//(((((((((((((((((((((((((((((((((((((((
// Aeiaaeueiua ia?aiaiiua.
//(((((((((((((((((((((((((((((((((((((((
char filename[MAX_STR_LEN]; // Eiy oaeea.
char *text[COL_STR+1]; // Iannea oeacaoaeae ia no?iee oaenoa.
char screen[4096]; // Aooa? iiae eiieth ye?aia.
char mes[21][20][80]; // Iannea iiae niiauaiey ia ioeaeao.
char nx; // Oaeouee neiaie.
int pos; // Oaeouay iiceoeey a no?iea.
char STR[80]; // Neaie?oaiay no?iea.
int ERR1; // N/ao/ee no?aieoe a ianneaa ioeaie.
int ERR2; // N/ao/ee no?ie a ianneaa ioeaie.
FILE *errors; // Aeane?eioi? oaeea.
//(((((((((((((((((((((((((((((((((((((((
// Ooieoeey MAIN.
//(((((((((((((((((((((((((((((((((((((((
void main(int argc,char* argv[])
{
textcolor(LIGHTGRAY);
textbackground(BLACK);
_setcursortype(_NOCURSOR);
clrscr();
if(argc>2)
{
Usage();
MyExit();
}
if(argc==2)
strcpy(filename,argv[1]);
else
{
Welcome();
gettext(20,7,60,17,screen);
GetFilename();
}
while(OpenFile())
{
puttext(20,7,60,17,screen);
GetFilename();
}
Menu();
}
//(((((((((((((((((((((((((((((((((((((((
// Auaiae niiauaiee ia ioeaeao.
//(((((((((((((((((((((((((((((((((((((((
void Message(int j)
{
window(42,3,79,23);
textcolor(BLUE);
textbackground(CYAN);
clrscr();
for(int i=0;i
cputs(” 2.
cputs(” 3. T -> O | T*O | T/O | T**O\r\n”);
cputs(” 4. O -> (
cputs(” 5.
cputs(” 6.
cputs(” T – Oapi;\r\n”);
cputs(” O – Iiapaiae;\r\n”);
cputs(” A – Aoeaa;\r\n”);
cputs(” Oe – Oeeopa;\r\n”);
cputs(” AeAC – Ae?iaiia Aac Ciaea;\r\n”);
cputs(” ** – aicaaaeaiea a noaiaiue.”);
I_ReadKey();
}
//(((((((((((((((((((((((((((((((((((((((
// sscue iia?aoi?a.
//(((((((((((((((((((((((((((((((((((((((
void Language(void)
{
window(1,25,80,25);
textattr(112);
MyPuts(” ~F1~ Help ~F2~ Grammar ~F3~ Language ~F9~ Compile ~F10~
Quit ~Alt-X~
Quit ~Esc~ Quit”,DARKGRAY);
window(20,8,60,18);
textcolor(WHITE);
textbackground(GREEN);
clrscr();
DrawBox(2,1,40,11,”sscue iia?aoi?a”);
window(22,9,58,17);
textcolor(BLACK);
cputs(“\r\n”);
cputs(” GOTO CONST | VAR | AA\r\n\n”);
cputs(” CONST – Ae?iaiia aac ciaea,\r\n”);
cputs(” VAR – eaeaioeoeeaoip,\r\n”);
cputs(” AA – apeoiaoe/aneia aupaaeaiea.”);
I_ReadKey();
}
//(((((((((((((((((((((((((((((((((((((((
// Eiiieeyoeey.
//(((((((((((((((((((((((((((((((((((((((
void Compile(void)
{
static int compile=0;
window(1,25,80,25);
textattr(112);
MyPuts(” ~F1~ Help ~F2~ Grammar ~F3~ Language ~F9~ Compile ~F10~
Quit ~Alt-X~
Quit ~Esc~ Quit”,DARKGRAY);
window(20,8,60,18);
textcolor(WHITE);
textbackground(RED);
clrscr();
DrawBox(2,1,40,11,”Eiiieeyoeey”);
window(22,9,58,17);
textcolor(YELLOW);
cputs(“\r\n”);
if(compile>0)
{
cputs(” Oaeno OAEA ioeiiieee?iaai!!!”);
Beep(900,1000);
return;
}
errors=fopen(“PROTOCOL.TXT”,”wt”);
cputs(” Eaeao eiiieeyoeey.\r\n\n Iiaeaeoenoa, iiaeiaeaeeoa…”);
#ifdef TEST
window(1,1,80,25);
textattr(78);
clrscr();
#endif
fprintf(errors,”/******************************************************
*\n”);
fprintf(errors,”–––––––––––––––––––––––––––––––––––––––––––––––––––––––
–\n”);
fprintf(errors,”( I?ioieie ?aaiou neioaene/aneiai ?aniiciaaaoaey
au/eneyaiiai (\n”);
fprintf(errors,”( iia?aoi?a ia?aoiaea ycuea
FORTRAN. (\n”);
fprintf(errors,”–––––––––––––––––––––––––––––––––––––––––––––––––––––––
–\n”);
for(int i=0;text[i] != NULL;i++)
Scaner(text[i]);
fprintf(errors,”–––––––––––––––––––––––––––––––––––––––––––––––––––––––
–\n”);
fprintf(errors,”( EIIAOe.
(\n”);
fprintf(errors,”–––––––––––––––––––––––––––––––––––––––––––––––––––––––
–\n”);
fprintf(errors,”*******************************************************
/\n”);
Beep(900,100);
compile++;
}
//(((((((((((((((((((((((((((((((((((((((
// Ia?aaioea no?iee.
//(((((((((((((((((((((((((((((((((((((((
int Scaner(char* string)
{
char tmpstr[STR_LEN];
strcpy(tmpstr,string);
Delspace(tmpstr);
ScanStr(tmpstr);
return 0;
}
//(((((((((((((((((((((((((((((((((((((((
// Iiene a no?iea iia?aoi?a GOTO.
//(((((((((((((((((((((((((((((((((((((((
int ScanStr(char* string)
{
int j;
int i=0;
int k=0;
static int a=0;
char tmp[80];
char label=NO;
strcpy(STR,string);
fprintf(errors,”–––––––––––––––––––––––––––––––––––––––––––––––––––––––
–\n”);
fprintf(errors,”%s\n”,string);
fprintf(errors,”–––––––––––––––––––––––––––––––––––––––––––––––––––––––
–\n”);
do
{
tmp[0]=NULL;
j=0;
while(!isspace(string[k++]) && string[k-1]!=NULL)
{
tmp[j++]=string[k-1];
}
tmp[j]=NULL;
if((strcmp(tmp,”GOTO”) != 0) && !isdigit(tmp[0]))
{
#ifdef TEST
cprintf(“Ia ii?aaeaeai eaeaioeoeeaoi? %s.\r\n”,tmp);
#endif
ERR1=a;
ERR2=i;
i++;
Error(5,tmp);
}
else if(!isdigit(tmp[0]))
{
label=YES;
ERR1=a;
ERR2=i;
pos=k;
while(AB()!=OK);
break;
}
}
while(string[k] != NULL);
if(label==NO)
{
#ifdef TEST
cprintf(“Ia iaeaeai iia?aoi? GOTO.\r\nNo?iea ?acai?o ia
iiaeeaaeeo.\r\n”);
#endif
Error(6);
}
a++;
return(OK);
}
//(((((((((((((((((((((((((((((((((((((((
// Oaeaeaiea a no?iea i?iaaeia.
//(((((((((((((((((((((((((((((((((((((((
void Delspace(char* string)
{
char str[STR_LEN];
int j=0;
int i=0;
while(isspace(string[i]) && string[i] != NULL)
i++;
for(;string[i] != NULL;i++)
{
if(islower(string[i]))
string[i]=toupper(string[i]);
str[j++]=string[i];
}
str[j]=NULL;
sprintf(string,”%s”,str);
string[j-1]=NULL;
#ifdef TEST
textattr(30);
clreol();
cputs(string);
textattr(78);
cputs(“\r\n”);
#endif
}
//(((((((((((((((((((((((((((((((((((((((
// ?aaeecaoeey iaoa?ieiaea .
//(((((((((((((((((((((((((((((((((((((((
int AB(void)
{
#ifdef TEST
cprintf(“AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.\r\n”);
#endif
fprintf(errors,”AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.\n”);
Scan();
T();
if(nx==’+’)
{
AB();
}
else if(nx==’-‘)
{
AB();
}
if(nx==NULL)
return(OK);
else if(nx!=’*’ && nx!=’/’ && nx!=’)’)
Error(1);
return(YES);
}
//(((((((((((((((((((((((((((((((((((((((
// ?aaeecaoeey iaoa?ieiaea
//(((((((((((((((((((((((((((((((((((((((
int T(void)
{
#ifdef TEST
cprintf(“T – I?iaa?ea ia Oa?i.\r\n”);
#endif
fprintf(errors,”T – I?iaa?ea ia Oa?i.\n”);
O();
if(nx==’/’)
{
Scan();
T();
}
else if(nx==’*’)
{
Scan();
if(nx==’*’)
{
Scan();
T();
}
else T();
}
if(nx==NULL)
return(OK);
else if(nx!=’+’ && nx!=’-‘ && nx!=’)’)
Error(2);
return(OK);
}
//(((((((((((((((((((((((((((((((((((((((
// ?aaeecaoeey iaoa?ieiaea
//(((((((((((((((((((((((((((((((((((((((
int O(void)
{
#ifdef TEST
cprintf(“O – I?iaa?ea ia Iia?aiae.\r\n”);
#endif
fprintf(errors,”O – I?iaa?ea ia Iia?aiae.\n”);
if(nx=='(‘)
{
AB();
if(nx!=’)’)
Error(3);
else
{
Scan();
return(OK);
}
}
else
if(IDENT() == NO)
{
if(FLOAT() == NO)
Error(4);
}
return(OK);
}
//(((((((((((((((((((((((((((((((((((((((
// ?aaeecaoeey iaoa?ieiaea
//(((((((((((((((((((((((((((((((((((((((
int IDENT(void)
{
#ifdef TEST
cprintf(“IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea %c.\r\n”,nx);
getch();
#endif
fprintf(errors,”IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea
%c.\n”,nx);
if(isalpha(nx))
{
while(isalpha(nx) || isdigit(nx))
Scan();
return(YES);
}
return(NO);
}
//(((((((((((((((((((((((((((((((((((((((
// ?aaeecaoeey iaoa?ieiaea
//(((((((((((((((((((((((((((((((((((((((
int FLOAT(void)
{
#ifdef TEST
cprintf(“FLOAT – I?iaa?ea ia Ae?iaiia Aac Ciaea n oeeo?u %c.\r\n”,nx);
getch();
#endif
fprintf(errors,”FLOAT – I?iaa?ea ia Ae?iaiia Aac Ciaea n oeeo?u
%c.\n”,nx);
if(isdigit(nx))
{
while(isdigit(nx))
Scan();
if(nx==’.’)
{
Scan();
while(isdigit(nx))
Scan();
}
return(YES);
}
return(NO);
}
//(((((((((((((((((((((((((((((((((((((((
// Neaie?iaaiea neaaeothuaai neiaiea ec no?iee.
//(((((((((((((((((((((((((((((((((((((((
void Scan(void)
{
#ifdef TEST
cprintf(“SCAN – Neaie?iaaiea. Oaeouee neiaie ‘%c’ n eiaeii
%d.\r\n”,STR[pos],STR[pos]);
getch();
#endif
fprintf(errors,”SCAN – Neaie?iaaiea. Oaeouee neiaie ‘%c’ n eiaeii
%d.\n”,STR[pos],STR[pos]);
nx=STR[pos];
pos++;
}
//(((((((((((((((((((((((((((((((((((((((
// Ia?aaioea ioeaie.
//(((((((((((((((((((((((((((((((((((((((
void Error(int num,char* s)
{
char *E[40]=
{
“Iaeeaeaaony ‘+’ eee ‘-‘”,
“Iaeeaeaaony ‘*’, ‘/’ eee ‘**'”,
“Iaeeaeaaony ‘)'”,
“Iaeeaeaaony eaeaioeoeeaoi? eee Ae?iaiia aac ciaea”,
“Ia ii?aaeaeai eaeaioeoeeaoi? “,
“Ia iaeaeai iia?aoi? GOTO\r\nNo?iea ?acai?o ia iiaeeaaeeo”,
NULL
};
sprintf(mes[ERR1][ERR2],”%s%s”,E[num-1],s);
fprintf(errors,”–––––––––––––––––––––––––––––––––––––––––––––––––––––––
–\n”);
fprintf(errors,”Error – Ioeaea no?iea %d, ioeaea # %d.\n”,ERR1,ERR2);
#ifdef TEST
cprintf(“Error – Ioeaea: no?iea # %d, ioeaea # %d.\r\n”,ERR1,ERR2);
cprintf(“%s\r\n”,mes[ERR1][ERR2]);
Beep(1000,200);
getch();
#endif
fprintf(errors,”%s\n”,mes[ERR1][ERR2]);
fprintf(errors,”–––––––––––––––––––––––––––––––––––––––––––––––––––––––
–\n”);
ERR2++;
mes[ERR1][ERR2][0]=NULL;
}
//(((((((((((((((((((((((((((((((((((((((
// Iiaeeeth/aaiue oaee.
//(((((((((((((((((((((((((((((((((((((((
#include”intface.h” // Oaee n ooieoeeyie eioa?oaena.
//(((((((((((((((((((((((((((((((((((((((
// ( 1997 Ai?cia Aiae?ae Heeieaaae/. E-mail:
[email protected]
//(((((((((((((((((((((((((((((((((((((((
Eeoa?aoo?a.
Eo?n eaeoeee ii nenoaiiiio i?ia?aiie?iaaieth.
Aa?aa?o Oeeaeo «C aeey i?ioanneiiaeueiuo i?ia?aiienoia».
Neioaene/aneee ?aniiciaaaoaeue au/eneyaiiai iia?aoi?a ia?aoiaea ycuea
FORTRAN.
A?oiia A-513. Ai?cia Aiae?ae Ieeieaaae/. PAGE 2
Нашли опечатку? Выделите и нажмите CTRL+Enter