#include
#include
char input[200];//存放輸入字串
char token[5];//存放構成單詞符號的字串
char ch; //存放當前讀入字元
int p; //input下標
int fg; //switch標記
int num; //存放整形值
//二維字元陣列,存放關鍵字
char index[6][6]=;
main()
while(ch!='#');
p=0;
do
}while(fg!=0);
getch(); //用於讓程式停留在顯示頁面
} /*詞法掃瞄程式:*/
int scaner()
token[m++]='\0';
ch=input[--p];
fg=10;
for(n=0;n<6;n++)
if(strcmp(token,index[n])==0)//strcmp()函式可比較兩個字串,相等時返回0 }
//數字處理流程 (這裡不懂)
else if((ch<='9'&&ch>='0'))
ch=input[--p];
fg=11;
} //運算子界符處理流程
else
switch(ch)
else if(ch=='=') //產生<=
else
break;
case '>':
token[m++]=ch;
ch=input[p++];
if(ch=='=') //產生》=
else //產生》
break;
case ':':
token[m++]=ch;
ch=input[p++];
if(ch=='=') //產生:=
else //產生:
break;
case '+':fg=13;token[0]=ch;break;
case '-':fg=14;token[0]=ch;break;
case '*':fg=15;token[0]=ch;break;
case '/':fg=16;token[0]=ch;break;
case ':=':fg=18;token[0]=ch;break;
case '<>':fg=21;token[0]=ch;break;
case '<=':fg=22;token[0]=ch;break;
case '>=':fg=24;token[0]=ch;break;
case '=':fg=25;token[0]=ch;break;
case ';':fg=26;token[0]=ch;break;
case '(':fg=27;token[0]=ch;break;
case ')':fg=28;token[0]=ch;break;
case '#':fg=0;token[0]=ch;break;
default:fg=-1; } }