編譯原理 詞法分析

2021-09-24 03:10:16 字數 1395 閱讀 5092

先粘個**,之後完善

#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...