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

資源簡介

擴充pl\0編譯器設計之詞法分析程序 內嵌函數: void clearToken(); //清空token字符數組 int isSpace(); //空格 int isNewline(); //換行符 int isTab(); //Tab int isLetter(); //字母 int isDigit(); //數字 int isColon(); //冒號 : int isComma(); //逗號 , int isSemi(); //分號 ; int isEqu(); //等號 = int isPlus(); //加號 + int isMinus(); //減號 - int isDivi(); //除號 / int isStar(); //乘號 * int isLpar(); //左括號 ( int isRpar(); //右括號 ) int isLbrack(); //左中括號 [ int isRbrack(); //右中括號 ] int isLbrace(); //左大括號 { int isRbrace(); //右大括號 } int isLss(); //小于號 int isPeriod(); //點號 . int isQmark(); //單引號 ' int isDqmark(); //雙引號 " int isStringElement(); //字符串合法字符,ASCII碼值為32,33,35-126的字符 void catToken(); //每次調用前把當前ch中的字符與token字符數組中的字符串聯結 void retract(); //將讀字符指針后退一個字符 void reserve(); //保留字 void lexical_error(); //錯誤處理過程

資源截圖

代碼片段和文件信息

#include
#include
#include

#define?MAX?100?//最大字符串長度
#define?RESERVE_NUM?21?//保留字個數

FILE?*fsrc?*fobj;?//詞法分析源文件與分析結果保存文件
char?ch;?//讀取當前字符到ch
char?token[MAX];?//存放單詞的字符串
int?num?=?1;?//存放當前判斷單詞個數
char?symbol[15];?//存放當前所識別的單詞的類型

void?start();?//啟動程序
int?getsym();?//詞法分析子程序

void?clearToken();?//清空token字符數組
int?isSpace();?//空格
int?isNewline();?//換行符
int?isTab();?//Tab
int?isLetter();?//字母
int?isDigit();?//數字
int?isColon();?//冒號?:
int?isComma();?//逗號?
int?isSemi();?//分號?;
int?isEqu();?//等號?=
int?isPlus();?//加號?+
int?isMinus();?//減號?-
int?isDivi();?//除號?/
int?isStar();?//乘號?*
int?isLpar();?//左括號?(
int?isRpar();?//右括號?)
int?isLbrack();?//左中括號?[
int?isRbrack();?//右中括號?]
int?isLbrace();?//左大括號?{
int?isRbrace();?//右大括號?}
int?isLss();?//小于號?<
int?isGre();?//大于號?>
int?isPeriod();?//點號?.
int?isQmark();?//單引號?‘
int?isDqmark();?//雙引號?“
int?isStringElement();?//字符串合法字符,ASCII碼值為323335-126的字符
void?catToken();?//每次調用前把當前ch中的字符與token字符數組中的字符串聯結
void?retract();?//將讀字符指針后退一個字符
void?reserve();?//保留字
void?lexical_error();?//錯誤處理過程

void?clean_filename(char*);?//特殊系統文件路徑處理

char?reserves[RESERVE_NUM][15]?=?{
“array“?????“begin“?????“by“
“char“??????“const“?????“do“
“else“??????“end“???????“for“
“function“??“if“????????“integer“
“of“????????“procedure“?“read“
“real“??????“then“??????“to“
“var“???????“while“?????“write“
};
char?reserves_tk[RESERVE_NUM][15]?=?{
“ARRAYTK“???“BEGINTK“???“BYTK“
“CHARTK“????“CONSTTK“???“DOTK“
“ELSETK“????“ENDTK“?????“FORTK“
“FUNCTK“????“IFTK“??????“INTTK“
“OFTK“??????“PROCETK“???“READTK“
“FLOATTK“???“THENTK“????“TOTK“
“VARTK“?????“WHILETK“???“WRITETK“
};

int?main(){
start();
return?0;
}

void?start(){
char?filename[100];
//獲取詞法分析源文件
printf(“Please?type?in?the?file?name?to?analyse:\n“);
gets(filename);
clean_filename(filename);
while((fsrc?=?fopen(filename?“r“))?==?NULL){
printf(“Open?file?%s?failed!\nPlease?type?in?the?filename?again:\n“?filename);
gets(filename);
clean_filename(filename);
}
//保存分析結果的文件
/* printf(“Please?type?in?the?file?name?to?save?result:\n“);
gets(filename);
while((fobj?=?fopen(filename?“w“))?==?NULL){
printf(“Open?file?%s?failed!\nPlease?type?in?the?filename?again:\n“?filename);
gets(filename);
}
*/
if((fobj?=?fopen(“11061156_token.txt“?“w“))?==?NULL){
printf(“Open?file?11061156_token.txt?failed!\n“);
exit(1);
}
//對文件中的所有詞進行詞法分析
while(!feof(fsrc)){
ch?=?fgetc(fsrc);
getsym();
}

printf(“The?result?has?been?saved?into?11061156_token.txt.\n“);

fclose(fobj);
fclose(fsrc);
}

int?getsym(){?//詞法分析子程序

clearToken();

while(isSpace()?||?isNewline()?||?isTab())?//讀取字符,跳過空格、換行和Tab
ch?=?fgetc(fsrc);

if(isLetter()){?//判斷當前字符是否是一個字母
while(isLetter()?||?isDigit()){?//將字符拼接成字符串
catToken();?
ch?=?fgetc(fsrc);
}
retract();?//指針后退一個字符
reserve();
fprintf(fobj?“%

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-11-21?19:05??LexicalAnalysis\
?????文件?????????526??2013-11-14?19:54??LexicalAnalysis\11061156_token.txt
?????目錄???????????0??2013-11-16?23:01??LexicalAnalysis\Debug\
?????文件??????172145??2013-11-16?23:01??LexicalAnalysis\Debug\LexicalAnalysis.exe
?????文件??????191968??2013-11-16?23:01??LexicalAnalysis\Debug\LexicalAnalysis.ilk
?????文件???????37714??2013-11-16?23:01??LexicalAnalysis\Debug\LexicalAnalysis.obj
?????文件??????190920??2013-11-16?23:01??LexicalAnalysis\Debug\LexicalAnalysis.pch
?????文件??????459776??2013-11-16?23:01??LexicalAnalysis\Debug\LexicalAnalysis.pdb
?????文件???????33792??2013-11-16?23:01??LexicalAnalysis\Debug\vc60.idb
?????文件???????53248??2013-11-16?23:01??LexicalAnalysis\Debug\vc60.pdb
?????文件????????9469??2013-11-16?23:01??LexicalAnalysis\LexicalAnalysis.c
?????文件????????4390??2013-11-13?00:21??LexicalAnalysis\LexicalAnalysis.dsp
?????文件?????????555??2013-11-12?20:24??LexicalAnalysis\LexicalAnalysis.dsw
?????文件???????58368??2013-11-21?19:05??LexicalAnalysis\LexicalAnalysis.ncb
?????文件???????48640??2013-11-21?19:05??LexicalAnalysis\LexicalAnalysis.opt
?????文件?????????264??2013-11-16?23:01??LexicalAnalysis\LexicalAnalysis.plg
?????目錄???????????0??2013-11-14?19:53??LexicalAnalysis\Release\
?????文件???????36864??2013-11-14?19:30??LexicalAnalysis\Release\LexicalAnalysis.exe
?????文件???????23998??2013-11-14?19:30??LexicalAnalysis\Release\LexicalAnalysis.obj
?????文件??????199196??2013-11-14?19:30??LexicalAnalysis\Release\LexicalAnalysis.pch
?????文件???????25600??2013-11-14?19:30??LexicalAnalysis\Release\vc60.idb
?????文件?????????140??2013-11-14?18:44??LexicalAnalysis\test.txt

評論

共有 條評論