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

  • 大小: 1.16MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2023-10-16
  • 語言: 其他
  • 標簽:

資源簡介

程序實現了if-then語句的翻譯程序,生成詞法分析結果,語法分析過程和中間代碼生成,但是對于if-then語句的輸入限制有些多,還有以前上傳了一個同樣的資源但是有些問題,改之后重新上傳

資源截圖

代碼片段和文件信息

#include?
#include
#include?
#include?
#include?
#include?
#include?
#include
#include?
#define?MAXSIZE?50
using?namespace?std;

ifstream?InFile(“if語句.txt“ios::in);
ofstream?OutFileCF(“詞法分析結果.txt“ios::out);
ofstream?OutFileYF(“語法分析過程.txt“ios::out);

stackanalysbackup;
char?cbuffer;
char?*key[7]={“if““else““then““int““void““char““bool“};//關鍵字?1???????????????????????????????????????????????
char?*border[6]={?““??“#“??“{“??“}“??“(“??“)“?};//分界符?2
char?*arithmetic[8]={“+“??“-“??“*“??“/“??“++“??“--““=“?“==“};//運算符?3????
char?*relation[5]={“<“??“<=“??“>“??“>=“??“!=“};//關系運算符6??
queueque;

int?sum=1;/////四元式序列的開始地址
int?s=0;/////////保存sum的值,用于回填地址
char?z=0;
int?flag=-1;//////用于判斷是否為第一次出棧
int?FLAG=0;////判斷指針是否需要后移,0后移,-0無需后移
int?FLAG0=0;
int?t=0;////////作為賦值語句四元式的下標
int?n=0;//////////作為邏輯表達式四元式的下標
int?m=48;///////作為中間變量的下標0的ASCII碼??
stack?opndoptrtempopnd0optr0temp0;//生成中間代碼時用到的棧?

struct?Word{//保存詞法分析結果
char?value[20];
int?type;
Word?*next;
};
struct?SEQ{//保存四元式
char?str[40];
int?address;
};
Word?*Head=new?Word;
Word?*cur=Head;//用于語法分析過程中輸出剩余輸入串
SEQ?sequence[MAXSIZE];
SEQ?logic[MAXSIZE];

void?display(Word?*head)
{
Word?*p=head->next;
while(p)
{
OutFileCF<value<<“\t\t\t“<type< p=p->next;
}
}???

int?search(char?searchchar[]int?wordtype)
{??
int?i=0;
switch?(wordtype)
{
case?1:
{?
for?(i=0;i<=6;i++)?????????//關鍵字
if?(strcmp(key[i]searchchar)==0)
{
Word?*p=Head;
while(p->next)p=p->next;
Word?*q=new?Word;
q->next=NULL;
strcpy(q->valuesearchchar);
q->type=1;
p->next=q;
if(i==0)que.push(‘f‘);
if(i==2)que.push(‘t‘);
return?1;
}

break;
}
case?2:
{
for(i=0;i<=5;i++)????//分界符
{
if(strcmp(border[i]searchchar)==0)
{
Word?*p=Head;
while(p->next)p=p->next;
Word?*q=new?Word;
q->next=NULL;
strcpy(q->valuesearchchar);
q->type=2;
p->next=q;
que.push(searchchar[0]);
return?2;
}
}?
break;
}

case?3:
{
for?(i=0;i<=7;i++)????//運算符
{
if?(strcmp(arithmetic[i]searchchar)==0)
{ que.push(searchchar[0]);
return?3;
}
}
break;
}?

case?4:
{???//常數
Word?*p=Head;
Word?*q=new?Word;
q->next=NULL;
while(p->next)p=p->next;
strcpy(q->valuesearchchar);
q->type=4;
p->next=q;
que.push(‘i‘);
return?4;
}????
case?5://標識符
{
Word?*p=Head;
Word?*q=new?Word;
q->next=NULL;
while(p->next)p=p->next;
strcpy(q->valuesearchchar);
q->type=5;
p->next=q;
que.push(‘i‘);
return?5;
}
case?6:
{
for(i=0;i<=4;i++)
{
if(strcmp(relation[i]searchchar)==0)
{ ?
Word?*p=Head;
while(p->next)p=p->next;
Word?*q=new?Word;
q->ne

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

?????文件?????618548??2009-06-19?10:46??SUCCESS\Debug\fuzhi.exe

?????文件?????851924??2009-06-19?10:46??SUCCESS\Debug\fuzhi.ilk

?????文件?????409273??2009-06-19?10:46??SUCCESS\Debug\fuzhi.obj

?????文件????3243148??2009-06-18?19:26??SUCCESS\Debug\fuzhi.pch

?????文件????1180672??2009-06-19?10:46??SUCCESS\Debug\fuzhi.pdb

?????文件?????156672??2009-06-19?10:46??SUCCESS\Debug\vc60.idb

?????文件?????159744??2009-06-19?10:46??SUCCESS\Debug\vc60.pdb

?????文件??????16352??2009-06-19?11:35??SUCCESS\fuzhi.cpp

?????文件???????3389??2009-06-18?20:11??SUCCESS\fuzhi.dsp

?????文件????????518??2009-06-18?20:30??SUCCESS\fuzhi.dsw

?????文件??????58368??2009-06-19?10:47??SUCCESS\fuzhi.ncb

?????文件??????48640??2009-06-19?10:47??SUCCESS\fuzhi.opt

?????文件????????741??2009-06-19?10:46??SUCCESS\fuzhi.plg

?????文件?????????24??2009-06-18?20:26??SUCCESS\if語句.txt

?????文件????????137??2009-06-19?10:47??SUCCESS\詞法分析結果.txt

?????文件???????2207??2009-06-19?10:47??SUCCESS\語法分析過程.txt

?????目錄??????????0??2009-06-19?10:46??SUCCESS\Debug

?????目錄??????????0??2009-06-19?11:35??SUCCESS

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

??????????????6750357????????????????????18


評論

共有 條評論