.

Синтаксический распознаватель арифметического оператора условного перехода языка FORTRAN

Язык: русский
Формат: реферат
Тип документа: Word Doc
0 668
Скачать документ

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.

Neioaene/aneee ?aniiciaaaoaeue a?eoiaoe/aneiai iia?aoi?a oneiaiiai
ia?aoiaea ycuea FORTRAN.

Oaeoeueoao: AAO.

Eaoaae?a: ANO.

A?oiia: A–513.

Nooaeaio: Aieei Eiinoaioei Aiaoieueaae/.

I?aiiaeaaaoaeue: Oi?ieeia TH?ee Aeaaeeie?iae/.

Annenoaio: Iaiiaa Aa?a Ai?eniaia.

Aeaoa: 30 ai?aey 1997 a.

Ioiaoea i caueoa:

Iiaineae?ne.

sscue iia?aoi?a.

sscue a?eoiaoe/aneiai iia?aoi?a oneiaiiai ia?aoiaea ycuea FORTRAN.

IF() LABEL1,LABEL2,LABEL3

AA – A?eoiaoe/aneia Au?aaeaiea.

LABEL1,LABEL2,LABEL3 – ia?aay, aoi?ay e o?aouey iaoee

niioaaonoaaiii.

A?aiiaoeea ycuea.

G[]:

( IF()

( T | (T | -T

T ( O | T*O | T/O | T((O

O ( () | |

( A{A|Oe}

( Oe{Oe}[(]

( Oe{Oe}[.Oe{Oe}]

Oneiaiua iaicia/aiey:

O – OA?I.

I – IIA?AIAe.

A – AOEAA.

Oe – OeEO?A.

OeAC – OeAEIA AAC CIAEA.

(( – AICAAAeAIEA A NOAIAIUe.

LABEL – IAOEA.

*IC – *ENEI N IEAAATHUAE CAIssOIE.

( – EIIAOe NO?IEE (ionoi).

AA – A?EOIAOE*ANEIA AU?AAEAIEA.

Eeanneoeeaoeey a?aiiaoeee.

Aeaiiay a?aiiaoeea G[], niaeanii eeanneoeeaoeee Oiineiai,
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[] ia yaeyaony aaoiiaoiie, oae eae ia ana a?
?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.

((((((((((((((((((((((((((((((((((((((((

IF(((6/t+g*456)/(9.347*y-555))**6) 64,44,548

((((((((((((((((((((((((((((((((((((((((

Oaeouee neiaie ( – 40.

AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.

Oaeouee neiaie ( – 40.

Term – I?iaa?ea ia Oa?i.

Operand – I?iaa?ea ia Iia?aiae.

AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.

Oaeouee neiaie ( – 40.

Term – I?iaa?ea ia Oa?i.

Operand – I?iaa?ea ia Iia?aiae.

AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.

Oaeouee neiaie 6 – 54.

Term – I?iaa?ea ia Oa?i.

Operand – I?iaa?ea ia Iia?aiae.

IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea 6.

FLOAT – i?iaa?ea ia /enei n ieaaathuae caiyoie n oeeo?u 6.

Oaeouee neiaie / – 47.

Oaeouee neiaie t – 116.

Term – I?iaa?ea ia Oa?i.

Operand – I?iaa?ea ia Iia?aiae.

IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea t.

Oaeouee neiaie + – 43.

AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.

Oaeouee neiaie g – 103.

Term – I?iaa?ea ia Oa?i.

Operand – I?iaa?ea ia Iia?aiae.

IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea g.

Oaeouee neiaie * – 42.

Oaeouee neiaie 4 – 52.

Term – I?iaa?ea ia Oa?i.

Operand – I?iaa?ea ia Iia?aiae.

IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea 4.

FLOAT – i?iaa?ea ia /enei n ieaaathuae caiyoie n oeeo?u 4.

Oaeouee neiaie 5 – 53.

Oaeouee neiaie 6 – 54.

Oaeouee neiaie ) – 41.

Oaeouee neiaie / – 47.

Oaeouee neiaie ( – 40.

Term – I?iaa?ea ia Oa?i.

Operand – I?iaa?ea ia Iia?aiae.

AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.

Oaeouee neiaie 9 – 57.

Term – I?iaa?ea ia Oa?i.

Operand – I?iaa?ea ia Iia?aiae.

IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea 9.

FLOAT – i?iaa?ea ia /enei n ieaaathuae caiyoie n oeeo?u 9.

Oaeouee neiaie . – 46.

Oaeouee neiaie 3 – 51.

Oaeouee neiaie 4 – 52.

Oaeouee neiaie 7 – 55.

Oaeouee neiaie * – 42.

Oaeouee neiaie y – 121.

Term – I?iaa?ea ia Oa?i.

Operand – I?iaa?ea ia Iia?aiae.

IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea y.

Oaeouee neiaie – – 45.

AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.

Oaeouee neiaie 5 – 53.

Term – I?iaa?ea ia Oa?i.

Operand – I?iaa?ea ia Iia?aiae.

IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea 5.

FLOAT – i?iaa?ea ia /enei n ieaaathuae caiyoie n oeeo?u 5.

Oaeouee neiaie 5 – 53.

Oaeouee neiaie 5 – 53.

Oaeouee neiaie ) – 41.

Oaeouee neiaie ) – 41.

Oaeouee neiaie * – 42.

Oaeouee neiaie * – 42.

Oaeouee neiaie 6 – 54.

Term – I?iaa?ea ia Oa?i.

Operand – I?iaa?ea ia Iia?aiae.

IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea 6.

FLOAT – i?iaa?ea ia /enei n ieaaathuae caiyoie n oeeo?u 6.

Oaeouee neiaie ) – 41.

Oaeouee neiaie – 32.

Oaeouee neiaie 6 – 54.

ABS – i?iaa?ea ia Oeaeia Aac Ciaea n oeeo?u 6.

Oaeouee neiaie 4 – 52.

Oaeouee neiaie , – 44.

Oaeouee neiaie 4 – 52.

ABS – i?iaa?ea ia Oeaeia Aac Ciaea n oeeo?u 4.

Oaeouee neiaie 4 – 52.

Oaeouee neiaie , – 44.

Oaeouee neiaie 5 – 53.

ABS – i?iaa?ea ia Oeaeia Aac Ciaea n oeeo?u 5.

Oaeouee neiaie 4 – 52.

Oaeouee neiaie 8 – 56.

Oaeouee neiaie NULL – 0.

((((((((((((((((((((((((((((((((((((((((

((((((((((((((((((((((((((((((((((((((((

IF(r**34/50.22) 3,56,1

((((((((((((((((((((((((((((((((((((((((

Oaeouee neiaie ( – 40.

AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.

Oaeouee neiaie r – 114.

Term – I?iaa?ea ia Oa?i.

Operand – I?iaa?ea ia Iia?aiae.

IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea r.

Oaeouee neiaie * – 42.

Oaeouee neiaie * – 42.

Oaeouee neiaie 3 – 51.

Term – I?iaa?ea ia Oa?i.

Operand – I?iaa?ea ia Iia?aiae.

IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea 3.

FLOAT – i?iaa?ea ia /enei n ieaaathuae caiyoie n oeeo?u 3.

Oaeouee neiaie 4 – 52.

Oaeouee neiaie / – 47.

Oaeouee neiaie 5 – 53.

Term – I?iaa?ea ia Oa?i.

Operand – I?iaa?ea ia Iia?aiae.

IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea 5.

FLOAT – i?iaa?ea ia /enei n ieaaathuae caiyoie n oeeo?u 5.

Oaeouee neiaie 0 – 48.

Oaeouee neiaie . – 46.

Oaeouee neiaie 2 – 50.

Oaeouee neiaie 2 – 50.

Oaeouee neiaie ) – 41.

Oaeouee neiaie – 32.

Oaeouee neiaie 3 – 51.

ABS – i?iaa?ea ia Oeaeia Aac Ciaea n oeeo?u 3.

Oaeouee neiaie , – 44.

Oaeouee neiaie 5 – 53.

ABS – i?iaa?ea ia Oeaeia Aac Ciaea n oeeo?u 5.

Oaeouee neiaie 6 – 54.

Oaeouee neiaie , – 44.

Oaeouee neiaie 1 – 49.

ABS – i?iaa?ea ia Oeaeia Aac Ciaea n oeeo?u 1.

Oaeouee neiaie NULL – 0.

((((((((((((((((((((((((((((((((((((((((

Eenoeia i?ia?aiiu.

//(((((((((((((((((((((((((((((((((((((((

// FILE “KURSOVIC.CPP”.

//(((((((((((((((((((((((((((((((((((((((

// AA?EAHO # 2.

//(((((((((((((((((((((((((((((((((((((((

// A?eoiaoe/aneee iia?aoi? oneiaiiai ia?aoiaea ycuea FORTRAN.

//(((((((((((((((((((((((((((((((((((((((

// Eaoaaepa : ANO.

// Apoiia : A-513.

// Nooaeaio : Aieei Eiinoaioei Aiaoieueaae/.

// Ipaiiaeaaaoaee : eaiaeeaeao oaoie/aneeo iaoe, aeioeaio Oipieeia THpee
Aeaaeeiepiae/,

// annenoaio Iaiiaa Aapa Aipeniaia.

// Aeaoa : 30 ai?aey 1997a.

//((((((((((((((((((((((((((((((((((((((( Caaieiai/iua oaeeu.

//(((((((((((((((((((((((((((((((((((((((

# include

# include

# include

# include

# include “keyboard.h”

# include

# include

//(((((((((((((((((((((((((((((((((((((((

// Eiinoaiou.

//(((((((((((((((((((((((((((((((((((((((

# define FILE_NAME “TEXT.TXT”

# define YES 1

# define NO 2

# define OK 3

//# define TEST

//(((((((((((((((((((((((((((((((((((((((

// Aeiaaeueiua ia?aiaiiua.

//(((((((((((((((((((((((((((((((((((((((

char file1[22][60]; // Iannea no?ie.

char mes[22][30][50]; // Iannea niiauaiee ia ioeaeao.

char bufer[4096]; // Nieiie n ye?aia.

int com=0; // Iieacaoaeue : ioeiiieee?iaai oaee eee iao.

int pos=2; // Oaeouay iiceoeey a no?iea.

char string[80]; // Oaeouay no?iea oaeea.

char nx; // Oaeouee neiaie a no?iea.

int e1=0; // N/ao/ee no?aieoe ianneaa niauaiee ia ioeaeao.

int e2=0; // N/ao/ee no?ie a no?aieoea.

int l=0; // N/ao/ee iaoie.

FILE* fl=fopen(“MESSAGE.TXT”,”wt”); // Oaee n niiauaieyie ia ioeaeao.

//(((((((((((((((((((((((((((((((((((((((

// I?ioioeiu ooieoeee.

//(((((((((((((((((((((((((((((((((((((((

void Windows(int,int,int,int,char*); // Iino?iaiea ieii.

void Beep(int,int); // Caoeiaie neaiae.

void Open_File(void); // Ioe?uoea oaeea.

void Second_Window(void); // Iino?iaiea ieaeiae iaiaee.

void MyPuts(char*,int); // Aiaeia puts(char*).

void Print_File(void); // Ia/aoue oaeea.

void Menu(void); // Iaith.

int i_readkey(void); // Ii?in eeaaeaoo?u.

void Help(void); // Iiiiuue.

void Grammar(void); // A?aiiaoeea ycuea.

void Language(void); // sscue iia?aoi?a.

void Compile(void); // Eiiieeyoeey.

void Operator(char*); // Neaie?iaaiea iia?aoi?a.

void Scan(void); // Neaie?iaaiea neaaeothuaai neiaiea.

void Label(void); // ?aaeecaoeey Label.

int ABS(void); // ?aaeecaoeey ABS.

int IDENT(void); // ?aaeecaoeey IDENT.

int AB(void); // ?aaeecaoeey AB.

void Error(int); // Ia?aaioea ioeaee.

int Term(void); // ?aaeecaoeey Term.

int Operand(void); // ?aaeecaoeey Operand.

int Float(void); // ?aaeecaoeey Float.

void Message(int); // Auaiae niiauaiee ia ioeaeao.

//(((((((((((((((((((((((((((((((((((((((

// Ooieoeey MAIN.

//(((((((((((((((((((((((((((((((((((((((

void main()

{

_setcursortype(_SOLIDCURSOR);

window(1,1,80,25);

textattr(113);

clrscr();

for(int i=0;i1)

{

if(com>0)

window(3,2,47,24);

else

window(3,2,77,24);

y–;

gotoxy(1,y);

textattr(63);

clreol();

cputs(file1[y-1]);

gotoxy(1,y+1);

textattr(31);

clreol();

cputs(file1[y]);

gotoxy(5,23);

cprintf(” %d “,y);

if(com>0)

Message(y-1);

}

break;

case EASC_Down:

if(y0)

window(3,2,47,24);

else

window(3,2,77,24);

gotoxy(1,++y);

textattr(63);

clreol();

cputs(file1[y-1]);

gotoxy(1,y-1);

textattr(31);

clreol();

cputs(file1[y-2]);

gotoxy(5,23);

cprintf(” %d “,y);

if(com>0)

Message(y-1);

}

break;

}

}

}

//(((((((((((((((((((((((((((((((((((((((

// Help.

//(((((((((((((((((((((((((((((((((((((((

void Help(void)

{

window(1,1,80,25);

textattr(78);

clrscr();

Windows(1,1,80,25,”Help”);

window(4,3,77,23);

cprintf(“IIAINEAE?NEEE AINOAeA?NOAAIIUE OAOIE*ANEEE

OIEAA?NEOAO\n\n\r”);

cprintf(” EAOAAe?A ANO\n\n\r”);

cprintf(” Eo?niaay ?aaioa ii nenoaiiiio i?ia?aiie?iaaieth ia
oaio:\n\r”);

cprintf(” \”A?eoiaoe/aneee iia?aoi? oneiaiiai ia?aoiaea ycuea
FORTRAN\”.\n\n\r”);

cprintf(” Nooaeaioa a?oiiu A-513\n\n\r”);

cprintf(” Aieei Eiinoaioeia Aiaoieueaae/a.\n\n\r”);

cprintf(“A i?ia?aiia eniieueciaaiu eeaaeoe:\n\r”);

cprintf(” F1 – aeaiiue Help.\n\r”);

cprintf(” F2 – a?aiiaoeea ycuea.\n\r”);

cprintf(” F3 – ycue iia?aoi?a.\n\r”);

cprintf(” F4 – eiiieeyoeey oaeea.\n\r”);

cprintf(” ESC – auoiae ec i?ia?aiiu.\n\n\r”);

cprintf(” Aeey auoiaea ec Help iaaeieoa ethaoth eeaaeoo.”);

getch();

}

//(((((((((((((((((((((((((((((((((((((((

// A?aiiaoeea.

//(((((((((((((((((((((((((((((((((((((((

void Grammar(void)

{

window(10,2,70,23);

textattr(46);

clrscr();

Windows(10,2,70,23,”Grammar”);

window(12,4,68,22);

cprintf(” 1. -> IF()

cprintf(” 2.

cprintf(” 3. -> T | +T | -T\n\r”);

cprintf(” 4. T -> O | T*O | T/O | T**O\n\r”);

cprintf(” 5. O -> () | | \n\r”);

cprintf(” 6. -> A{A|Oe}\n\r”);

cprintf(” 7. -> Oe{Oe}\n\r”);

cprintf(” 8. -> Oe{Oe}[.Oe{Oe}]\n\n\r”);

cprintf(” Oneiaiua iaicia/aiey:\n\r”);

cprintf(” T – oa?i.\n\r”);

cprintf(” O – iia?aiae.\n\r”);

cprintf(” A – aoeaa.\n\r”);

cprintf(” Oe – oeeo?a.\n\r”);

cprintf(” OeAC – oeaeia aac ciaea.\n\r”);

cprintf(” *IC – /enei n ieaaathuae caiyoie.\n\r”);

cprintf(” ** – aicaaaeaiea a noaiaiue.\n\r”);

cprintf(”

cprintf(” – a?eoiaoe/aneia au?aaeaiea.”);

getch();

}

//(((((((((((((((((((((((((((((((((((((((

// sscue.

//(((((((((((((((((((((((((((((((((((((((

void Language(void)

{

window(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(” AA – A?eoiaoe/aneia Au?aaeaiea.\n\r”);

cprintf(” LABEL1,LABEL2,LABEL3 – ia?aay,aoi?ay e o?aouey iaoee
niioaaonoaaiii.\n\r”);

getch();

}

//(((((((((((((((((((((((((((((((((((((((

// Eiiieeyoeey i?ia?aiiu.

//(((((((((((((((((((((((((((((((((((((((

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 Oaee ioeiiieee?iaai!”);

Beep(900,1000);

return;

}

cputs(“\n Eaeao eiiieeyoeey oaeea.\r\n\n Iiaeaeoenoa,
iiaeiaeaeeoa…”);

#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);

}

//(((((((((((((((((((((((((((((((((((((((

// Iia?aoi?.

//(((((((((((((((((((((((((((((((((((((((

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,” ((((((((((((((((((((((((((((((\n”);

fprintf(fl,”%s\n”,string);

if(strcmp(temp,”IF”)!=0)

{

#ifdef TEST

printf(“Ia iaeaeai iia?aoi? 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!=’ ‘)

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(void)

{

nx=string[pos++];

#ifdef TEST

printf(“Oaeouee neiaie %c – %d.\n”,nx,nx);

#endif

fprintf(fl,”Oaeouee neiaie %c – %d.\n”,nx,nx);

}

//(((((((((((((((((((((((((((((((((((((((

// Iaoea.

//(((((((((((((((((((((((((((((((((((((((

void Label(void)

{

if(ABS() == NO)

{

Error(8);

Scan();

}

else

l++;

}

//(((((((((((((((((((((((((((((((((((((((

// Oeaeia Aac Ciaea.

//(((((((((((((((((((((((((((((((((((((((

int ABS(void)

{

#ifdef TEST

cprintf(“ABS – i?iaa?ea ia Oeaeia Aac Ciaea n oeeo?u %c.\r\n”,nx);

#endif

fprintf(fl,”ABS – i?iaa?ea ia Oeaeia Aac Ciaea n oeeo?u %c.\n”,nx);

if(isdigit(nx))

{

while(isdigit(nx))

Scan();

return(YES);

}

return(NO);

}

//(((((((((((((((((((((((((((((((((((((((

// A?eoiaoe/aneia Au?aaeaiea.

//(((((((((((((((((((((((((((((((((((((((

int AB(void)

{

#ifdef TEST

cprintf(“AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.\r\n”);

#endif

fprintf(fl,”AB – I?iaa?ea ia A?eoiaoe/aneia Au?aaeaiea.\n”);

Scan();

if(nx==’)’)

{

Error(12);

return(NO);

}

Term();

if(nx==’+’)

{

AB();

}

else if(nx==’-‘)

{

AB();

}

if(nx==NULL)

return(OK);

else if(nx!=’*’ && nx!=’/’ && nx!=’)’)

Error(1);

return(YES);

}

//(((((((((((((((((((((((((((((((((((((((

// Oa?i.

//(((((((((((((((((((((((((((((((((((((((

int Term(void)

{

#ifdef TEST

cprintf(“Term – I?iaa?ea ia Oa?i.\r\n”);

#endif

fprintf(fl,”Term – I?iaa?ea ia Oa?i.\n”);

Operand();

if(nx==’/’)

{

Scan();

Term();

}

else if(nx==’*’)

{

Scan();

if(nx==’*’)

{

Scan();

Term();

}

else Term();

}

if(nx==NULL)

return(OK);

else if(nx!=’+’ && nx!=’-‘ && nx!=’)’)

Error(2);

return(OK);

}

//(((((((((((((((((((((((((((((((((((((((

// Iia?aiae.

//(((((((((((((((((((((((((((((((((((((((

int Operand(void)

{

#ifdef TEST

cprintf(“Operand – I?iaa?ea ia Iia?aiae.\r\n”);

#endif

fprintf(fl,”Operand – 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);

}

//(((((((((((((((((((((((((((((((((((((((

// Eaeaioeoeeaoi?.

//(((((((((((((((((((((((((((((((((((((((

int IDENT(void)

{

#ifdef TEST

cprintf(“IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea %c.\r\n”,nx);

#endif

fprintf(fl,”IDENT – I?iaa?ea ia Eaeaioeoeeaoi? n neiaiea %c.\n”,nx);

if(isalpha(nx))

{

while(isalpha(nx) || isdigit(nx))

Scan();

return(YES);

}

return(NO);

}

//(((((((((((((((((((((((((((((((((((((((

// Ioeaee.

//(((((((((((((((((((((((((((((((((((((((

void Error(int num)

{

char *E[]={

“Iaeeaeaaony ‘+’ eee ‘-‘.”,

“Iaeeaeaaony ‘*’,’/’ eee ‘**’.”,

“Iaeeaeaaony ).”,

“Iaeeaeaaony eaeaioeoeeaoi? eee oeaeia aac ciaea.”,

“Ionoonoaoao ‘,’.”,

“Ia eiiaoe no?iee.”,

“Iaeeaeaaony (.”,

“Iaoea – ia oeaeia aac ciaea.”,

“Ionoonoaotho iaoee.”,

“Ia iaeaeai iia?aoi? IF.”,

“Ionoonoaoao iaoea.”,

“Ionoonoaoao AB.”,

NULL

};

sprintf(mes[e1][e2],”%s”,E[num-1]);

e2++;

#ifdef TEST

Beep(1000,100);

cprintf(“Ioeaea: %s\r\n”,E[num-1]);

getch();

#endif

fprintf(fl,” ((((((((((((((((((((((((((((\n”);

fprintf(fl,”Ioeaea: %s\r\n”,E[num-1]);

}

//(((((((((((((((((((((((((((((((((((((((

// Float.

//(((((((((((((((((((((((((((((((((((((((

int Float(void)

{

#ifdef TEST

cprintf(“FLOAT – i?iaa?ea ia /enei n ieaaathuae caiyoie n oeeo?u
%c.\r\n”,nx);

#endif

fprintf(fl,”FLOAT – i?iaa?ea ia /enei n ieaaathuae caiyoie n oeeo?u
%c.\n”,nx);

if(isdigit(nx))

{

while(isdigit(nx))

Scan();

if(nx==’.’)

{

Scan();

while(isdigit(nx))

Scan();

}

return(YES);

}

return(NO);

}

//(((((((((((((((((((((((((((((((((((((((

// Message.

//(((((((((((((((((((((((((((((((((((((((

void Message(int x)

{

window(50,3,76,22);

textattr(95);

clrscr();

gotoxy(1,1);

for(int i=0;mes[x][i][0]!=NULL;i++)

cprintf(“%s\r\n”,mes[x][i]);

}

//(((((((((((((((((((((((((((((((((((((((

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 a?eoiaoe/aneiai iia?aoi?a oneiaiiai
ia?aoiaea ycuea FORTRAN.

Aieei Eiinoaioei Aiaoieueaae/. PAGE 3

Нашли опечатку? Выделите и нажмите CTRL+Enter

Похожие документы
Обсуждение

Оставить комментарий

avatar
  Подписаться  
Уведомление о
Заказать реферат!
UkrReferat.com. Всі права захищені. 2000-2019