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

  • 大小: 1.66MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-09-02
  • 語言: 其他
  • 標簽: 四元式??

資源簡介

這是編譯原理中對于一段代碼進行四元式分析,對于正在學編譯原理這門課的同學幫助很大哦!

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
using?namespace?std;

//列表?
#define?ID?????????1?????/*?標識符?*/
#define?DIGIT??????2?????/*?整數常量?*/
#define?MAINWORD???3?????/*?保留字?*/

#define?SEMI???????4?????/*?;*/
#define?DOT????????5?????/*?.?*/
#define?COMMA??????6?????/*?,*/
#define?COLON??????7?????/*?:?*/
#define?LP?????????8?????/*?(?*/
#define?RP?????????9?????/*?)?*/

#define?PLUS???????10????/*?+?*/
#define?MINUS??????11????/*?-?*/
#define?MUL????????12????/*?*?*/
#define?DIV????????13????/*?/?*/
#define?EQUAL??????14????/*?=?*/
#define?LESS???????15????/*?#define?GREATER????16????/*?>?*/
#define?YU?????????17????/*?&?*/
#define?HUO????????18????/*?|?*/
#define?FEI????????19????/*?!?*/

#define?LESS_EQ????20????/*?<=?*/
#define?GREATER_EQ?21????/*?>=?*/
#define?NOT_EQ?????22????/*?<>?*/
#define?IDENTI_EQ??23????/*?:=?*/

#define?pNOTE??????24????//?/*?
#define?fNOTE??????25????//?*/
#define?NOTE???????26????//

#define?ERROR??????99????/*?錯誤標志?*/
#define?FEOF???????100???/*?輸入結束標志?*/
#define?NONE???????0?????/*?無效數據類型?*/

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//***********************************************【詞法分析部分】*************************************************
struct?Word?//單詞
{
????char???w[100];
????int????type;//類型
????int????row;?//行
????int????col;?//列
};
FILE?*fp*FP;
int?row=0count1=0count2=0count3=0;
static?char?*keyWords[]={“null““word““digit““mainword““;““.““““:““(““)““+““-“
?????????????????????????“*““/““=““<““>““&““|““!““<=““>=““<>““:=““/*““*/““//“NULL};
static?char?*mainWords[]={“null““program““begin““end““var““integer““real““while““do““if““then““else“NULL};?

int?isOperator_1(char?ch)//可能是單目運算符
{
????return?ch==‘;‘||ch==‘.‘||ch==‘‘||ch==‘(‘||ch==‘)‘||ch==‘+‘||ch==‘-‘||ch==‘=‘||ch==‘&‘||ch==‘|‘||ch==‘!‘||ch==‘*‘;?
}

int?isOperator_2(char?ch)//可能是雙目運算符
{
????return?ch==‘<‘?||?ch==‘>‘?||?ch==‘/‘?||?ch==‘:‘;
}

struct?Word?getWord()
{
????struct?Word?t;
????char?word[100];
????static?char?arr[100]=“\n“;
????static?char?*p=arr;
????int?i=0;
????if(ferror(fp))???cout<<“feof!“<????while(*p==‘\n‘?||?*p==‘?‘?||?*p==‘\t‘)//忽略空格如果已到行尾,則讀入下一行
{
if(*p==‘\n‘)
{
fgets(arr100fp);//從文件中讀取下一行代碼
if(feof(fp)){
t.type=FEOF;
return?t;
}//文件已結束返回FEOF
p=arr;
row++;
continue;
}
p++;
}
t.type=ERROR;
if(isalpha(*p)?||?*p==‘_‘){//字母開頭或下劃線開頭?
????????while(isalpha(*p)?||?isdigit(*p)?||?*p==‘_‘)?
word[i++]=*p++;
????????word[i]=‘\0‘;//結束?
t.row=row;???//記錄行號
t.col=p-arr;?//記錄列號
????????for(int?j=1;mainWords[j];j++){??//依次對比關鍵字
????????????if(!strcmp(wordmainWords[j])){//返回0即找到關鍵字?
????????????????t.type=MAINWORD;
????????????????strcpy(t.wword);//詞素內容
????????????????count3++;
????????????????break;
????????????}
???

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-10-22?23:24??四元式生成\
?????文件????????2143??2015-06-12?18:29??四元式生成\answer3.txt
?????文件?????????520??2015-06-12?18:03??四元式生成\test3.txt
?????文件???????19980??2015-06-12?18:04??四元式生成\四元式.cpp
?????文件?????6670065??2015-06-12?18:21??四元式生成\四元式.exe

評論

共有 條評論