20160930 詞法分析程式

2022-06-04 23:33:07 字數 2830 閱讀 2788

#include//包含庫所用的某些巨集和變數

#include//包含庫

#include//包含字串處理庫

#define _key_woed_end "waiting for your expanding" //定義關鍵字結束標誌

typedef struct

word;

char input[255]; //輸入換緩衝區

char token[255]=""; //單詞緩衝區

int p_input; //輸入換緩衝區指標

int p_token; //單詞緩衝區指標

char ch; //當前所讀的字元

char *rwtab=; //c語言關鍵字

word * scaner(); //詞法掃瞄函式,獲得關鍵字

main()

}char m_getch()

void getbc()

}void concat()

int letter()

int digit()

int reserve()

i=i+1;

}return 10;

}void retract()

word *scaner()

retract();

myword->typenum=reserve();

myword->word=token;

return(myword);

}else if(digit())

retract();

myword->typenum=20;

myword->word=token;

return(myword);

}else

retract();

myword->typenum=21;

myword->word="=";

return(myword);

break;

case '+':

myword->typenum=22;

myword->word="+";

return(myword);

break;

case '-':

myword->typenum=23;

myword->word="-";

return(myword);

break;

case '*':

myword->typenum=24;

myword->word="*";

return(myword);

break;

case '/':

myword->typenum=25;

myword->word="/";

return(myword);

break;

case '(':

myword->typenum=26;

myword->word="(";

return(myword);

break;

case ')':

myword->typenum=27;

myword->word=")";

return(myword);

break;

case '[':

myword->typenum=28;

myword->word="[";

return(myword);

break;

case ']':

myword->typenum=29;

myword->word="]";

return(myword);

break;

case '':

myword->typenum=31;

myword->word="}";

return(myword);

break;

case ',':

myword->typenum=32;

myword->word=",";

return(myword);

break;

case ':':

myword->typenum=33;

myword->word=":";

return(myword);

break;

case ';':

myword->typenum=34;

myword->word=";";

return(myword);

break;

case '>':

myword->typenum=35;

myword->word=">";

return(myword);

break;

case '<':

myword->typenum=36;

myword->word="<";

return(myword);

break;

case '!':

m_getch();

if(ch=='=')

retract();

myword->typenum=-1;

myword->word="error";

return(myword);

break;

case '\0':

myword->typenum=1000;

myword->word="over";

return(myword);

break;

default:

myword->typenum=-1;

myword->word="error";

return(myword);}}

}

詞法分析程式

上課沒聽啥,一邊看書,一邊做的。基本上,老師的要求是實現了,能把乙個句子 也可以是一整個程式,但還不完善,由於時間急,很多情況來不及考慮了 中的單詞項分析出它是保留字,還是識別符號,運算子等等。開始是在控制台下做得,也比較純正 lex.h ifndef lex h define lex h incl...

詞法分析程式

include include char scanin 300 scanout 300 extern int testscan char scanin 300 scanout 300 file fin,fout 指向輸入輸出檔案的指標 int main include include include...

詞法分析程式

include include void fenxi char c,char b void word char a void number char a int i 定義全域性變數i int s 1 用來記錄是否存在非法字元 main printf n void number char a 對數字字...