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

  • 大小: 18KB
    文件類型: .zip
    金幣: 2
    下載: 1 次
    發布日期: 2021-08-17
  • 語言: C/C++
  • 標簽: 編譯原理??C語言??

資源簡介

編譯原理C語言實現詞法分析程序帶容錯處理!

資源截圖

代碼片段和文件信息


#include
#include
#include
#define?_KEY_WORD_END?“waiting?for?your?expanding“
typedef?struct
{
??int?typenum;
??char?*?word;????????
}WORD;
char?input[255];
char?token[255]=““;
int?p_input;
int?p_token;
char?ch;
char?*?rwtab[]={“begin““if““then““while““do““end““_KEY_WORD_END“};
WORD*?scaner();
int?main()
{
?aaa:
????fflush(stdin);??
??int?over=1;
??WORD*?oneword=new?WORD;
??printf(“Enter?Your?words(end?with?#?):“);
??scanf(“%[^#]s“input);

??p_input=0;
??printf(“Your?words:\n%s\n“input);
??while(over<1000&&over!=-1)
??{
????oneword=scaner();
????if(oneword->typenum<1000)
????printf(“(%d%s)“oneword->typenumoneword->word);
????over=oneword->typenum;??????????????????????????
??}?????
??printf(“\n?if?you?want?out?press?any?key?to?exit?or?press?N?go?no?:“);
??fflush(stdin);
??char?abc=getchar();

??
??if?(abc==‘N‘)
???goto?aaa;

}
char?m_getch()
{
??ch=input[p_input];
??p_input=p_input+1;
??return?(ch);?????
}
void?getbc()
{
???while(ch==‘?‘||ch==10)
???{
?????ch=input[p_input];
?????p_input=p_input+1;?????????????????????
???}?????
}
void?concat()
{
??token[p_token]=ch;
??p_token=p_token+1;
??token[p_token]=‘\0‘;?????
}
int?letter()
{
??if(ch>=‘a‘&&ch<=‘z‘||ch>=‘A‘&&ch<=‘Z‘)return?1;
??else?return?0;????
}
int?digit()
{
????if(ch>=‘0‘&&ch<=‘9‘)return?1;
????else?return?0;????
}
int?reserve()
{
??int?i=0;
??while(i<6&&(strcmp(rwtab[i]_KEY_WORD_END)))??
??{if(i<6&&(!strcmp(rwtab[i]token)))
??????return?i+1;???
???i=i+1;?????????????????????????????
??}
??return?10;
}
void?retract()
{
??p_input=p_input-1;?????
}
char*?dtb()
{
???return?NULL;??????
}
WORD*?scaner()
{
??WORD*?myword=new?WORD;
??myword->typenum=10;
??myword->word=““;
??p_token=0;
??m_getch();
??getbc();
??if(letter())
??{
????while(letter()||digit())?????????????
????{
???????concat();
???????m_getch();?????????????????????????????????????
????}??
????retract();
????myword->typenum=reserve();
????myword->word=token;
????return?(myword);
??}???
??else?if?(digit()){
???????while(digit()){
????????????concat();
????????????m_getch();??????????
??????????????????????
??????????????????????}
????????retract();
????????myword->typenum=20;
????????myword->word=token;
????????return(myword);?????????????
???????
???????}?
??else?switch(ch)
??{
????case‘=‘:?m_getch();
????if(ch==‘=‘)
????{
??????myword->typenum=39;
??????myword->word=“==“;
??????return?(myword);????????
????}????
????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=“*“;
???????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????5848??2013-10-10?22:09??cifa.cpp
?????文件???????49117??2013-10-10?22:09??cifa.exe

評論

共有 條評論