先粘個**,之後完善
#include#include#includeusing namespace std;
char filename[30]; //檔名
file *fpin; //宣告乙個函式指標
char ch,prog[1000],token[8];
char *keyword[8]=;
int p=0,symbol=0,n;
/* symbol表
0-> 字母 -> 1 -> 其他 -> 2
if -> 3
then -> 4
else -> 5
end -> 6
repeat -> 7
until -> 8
read -> 9
write -> 10
數字 -> 11 -> 其他 -> 12
+ -> 13
- -> 14
* -> 15
/ -> 16
= -> 17
< -> 18
; -> 19
*/void gettoken() //詞法分析
n=0;
ch=prog[p++];
while(ch==' '||ch=='\n'||ch=='\t') //跳過空格,換行符,製表符
if((ch>='a'&&ch<='z')||(ch>='a'&&ch<='z'))while((ch>='a'&&ch<='z')||(ch>='a'&&ch<='z'));
symbol=2;
for(n=0;n<8;n++)
}p--;
}else if(ch=='while(ch!='}');
symbol=-1;
return;
}else if(ch>='0'&&ch<='9')while(ch>='0'&&ch<='9');
symbol=12;
p--;
return;
}else
}}int main(void)
if((fpin=fopen(filename,"r"))!=null)
break;
else
cout<<"檔案路徑錯誤!請重新輸入源檔名:";
}/*將檔案內容存入字串prog*/
p=0;
dowhile(ch!=eof);
ofstream outfile;
outfile.open("c:\\users\\45312\\documents\\lex.txt"); //儲存輸出檔案的位置
p=0;
do}while(ch!=eof);
return 0;
}
編譯原理詞法分析
編譯原理實驗一 詞法分析練習 include include include define tokenmax 100 define progmax 1000 define k esc 27 void analytics 詞法分析 void scanner 輸入掃瞄 bool isletter cha...
詞法分析(編譯原理)
詞法分析 英語 lexical analysis 是電腦科學中將字串行轉換為單詞 token 序列的過程。進行詞法分析的程式或者函式叫作詞法分析器 lexical analyzer,簡稱lexer 也叫掃瞄器 scanner 詞法分析器一般以函式的形式存在,供語法分析器呼叫。完成詞法分析任務的程式稱...
編譯原理詞法分析
1 注意識別符號和無符號整數的重複問題,本人採用map解決。2 cin ch自動忽略空白字元。include include include include using namespace std struct pairs int isboundaries char ch return 3 case...