91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 246KB
    文件類型: .rar
    金幣: 1
    下載: 0 次
    發布日期: 2021-09-05
  • 語言: 其他
  • 標簽:

資源簡介

do-while語句 輸出三地址表示 簡單優先法

資源截圖

代碼片段和文件信息

#include“Stack.h“
#include
#include
#include?
using?namespace?std;
#define?norw?13????//關鍵字的個數
#define?nmax?14????//數字的最大位數
#define?al?10??????//符號的最大長度
#define?N?-10???????
#define?getchdo?if(getch()==-1)return?-1
#define?getsymdo?if(getsym()==-1)return?-1
ifstream?*fin;
SeqStack?SymOptOpr;
char?*pch;
char?str[20];????
char?inputstr[100];?//保存從文件讀入的所有字符
char?buf[5][20];
int?count1=0count2=0;
int?ip=0rowline;
enum?symbol?sym;???//當前的符號
int?num;???????????//當前number
char?a[al+1];??????//臨時符號
char?id[al+1];?????//當前ident
char?word[norw][al];??//保留字
enum?symbol?wsym[norw];????//關鍵字的符號值
enum?symbol?ssym[256];?????//單字符的符號值???
enum?symbol{
??????nul ident number plus ??minus ?times
??slash????oddsym?????eql????????neq??????lss???????leq?
??gtr??????geq????????lparen?????rparen???lbrace????rbrace
??comma????semicolon??period?????becomes??beginsym??endsym
??????????ifsym????elsesym????whilesym???writesym?readsym???dosym
??callsym??constsym???varsym?????procsym
};?
void?ThreeAddr();
void?init()
{
//設置單字符符號
for(int?i=0;i<=255;i++)
{
ssym[i]=nul;
}
ssym[‘+‘]=plus;
ssym[‘-‘]=minus;
ssym[‘*‘]=times;
ssym[‘/‘]=slash;
ssym[‘(‘]=lparen;
ssym[‘)‘]=rparen;
ssym[‘{‘]=lbrace;
ssym[‘}‘]=rbrace;
ssym[‘=‘]=eql;
ssym[‘‘]=comma;
ssym[‘.‘]=period;
ssym[‘#‘]=neq;
ssym[‘;‘]=semicolon;
//設置保留字名字,
strcpy(&(word[0][0])“begin“);
strcpy(&(word[1][0])“call“);
strcpy(&(word[2][0])“const“);
strcpy(&(word[3][0])“do“);
strcpy(&(word[4][0])“end“);
strcpy(&(word[5][0])“if“);
strcpy(&(word[6][0])“odd“);
strcpy(&(word[7][0])“procedure“);
strcpy(&(word[8][0])“read“);
strcpy(&(word[9][0])“then“);
strcpy(&(word[10][0])“var“);
strcpy(&(word[11][0])“while“);
strcpy(&(word[12][0])“write“);
//設置保留字符號
wsym[0]=beginsym;
wsym[1]=callsym;
wsym[2]=constsym;
wsym[3]=dosym;
wsym[4]=endsym;
wsym[5]=ifsym;
wsym[6]=oddsym;
wsym[7]=procsym;
wsym[8]=readsym;
wsym[9]=elsesym;
wsym[10]=varsym;
wsym[11]=whilesym;
wsym[12]=writesym;
}


char?rule[12][20]={
“S->do{B}while(E)\0“
“B->d=C;\0“
“C->A+A\0“
????????“C->A-A\0“
“C->A*A\0“
“C->A/A\0“
“C->A\0“
????????“E->A>A\0“
????????“E->A “E->A==A\0“
“E->A\0“
“A->d\0“};??//文法

int?getch()
{
if(fin->get(ch))
{
if(ch!=‘?‘?&&?ch!=9?&&?ch!=10)
{
inputstr[ip]=ch; ????
ip++;
} ????
cout< return?0;
}
else?return?-1;
}
//詞法分析
int?getsym()
{
int?ijk;
while(ch==‘?‘||ch==10||ch==9)
{
getchdo;
sym=nul;
}
if(ch>=‘a‘&&ch<=‘z‘)
{
k=0;
do{
if(k {
a[k]=ch;
k++;
}
getchdo;
}while(ch>=‘a‘&&ch<=‘z‘||ch>=‘0‘&&ch<=‘9‘);
a[k]=0;
strcpy(ida);
i=0;
j=norw-1;
do{??????????????//搜索當前符號是否為保留字
k=(i+j)/2;
if(strcmp(idword[k])<=0)
{
j=k-1;
}
????if(strcmp(idword[k])>=0)
{
i=k

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????4353??2010-01-06?19:03??compile\compile.dsp

?????文件????????537??2010-01-06?08:26??compile\compile.dsw

?????文件??????50176??2010-01-10?19:55??compile\compile.ncb

?????文件??????53760??2010-01-10?19:55??compile\compile.opt

?????文件????????248??2010-01-10?19:55??compile\compile.plg

?????文件?????577600??2010-01-10?19:55??compile\Debug\compile.exe

?????文件?????817496??2010-01-10?19:55??compile\Debug\compile.ilk

?????文件????2165296??2010-01-07?11:01??compile\Debug\compile.pch

?????文件????1131520??2010-01-10?19:55??compile\Debug\compile.pdb

?????文件?????305585??2010-01-10?19:55??compile\Debug\do-while.obj

?????文件??????91136??2010-01-10?19:55??compile\Debug\vc60.idb

?????文件?????135168??2010-01-10?19:55??compile\Debug\vc60.pdb

?????文件??????11489??2010-01-10?19:56??compile\do-while.cpp

?????文件?????????29??2010-01-10?19:54??compile\simple.txt

?????文件???????1140??2010-01-07?10:59??compile\Stack.h

?????目錄??????????0??2010-01-10?18:35??compile\Debug

?????目錄??????????0??2010-01-10?19:56??compile

-----------?---------??----------?-----??----

??????????????5345533????????????????????17


評論

共有 條評論