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

  • 大小: 3KB
    文件類型: .cpp
    金幣: 2
    下載: 1 次
    發(fā)布日期: 2021-09-06
  • 語言: C/C++
  • 標(biāo)簽: 語法分析??

資源簡介

需要實現(xiàn)的語法分析程序的功能是,接受一個表達式,分析該表達式,并根據(jù)輸入正確與否給出相應(yīng)信息。測試時,如果輸入的表達式分析正確,則輸出表示分析正確的信息;否則,輸出表示分析錯誤的信息。

資源截圖

代碼片段和文件信息

#include
#include??//用于exit的頭文件
#include??
#include??
#include?

void?expr();//E對應(yīng)的遞歸子程序的聲明
void?exprrest();//E1對應(yīng)的遞歸子程序的聲明
void?term();//T對應(yīng)的遞歸子程序的聲明
void?termrest();//T1對應(yīng)的遞歸子程序的聲明
void?factor();//F對應(yīng)的遞歸子程序的聲明
void?Error();//出錯處理函數(shù)的聲明
void?gettoken();//詞法分析函數(shù)gettoken()的聲明
char?ch?=?‘?‘;//用來裝當(dāng)前輸入對應(yīng)的字符
int?i=0;//數(shù)組位置變量置0
char?strToken[30]={“?“};//用來裝數(shù)字串的數(shù)組
FILE?*in=fopen(?“input.txt“?“r“?);//建立文件指針并打開文件

//將字符串置成空串函數(shù)
void?Retract(char?str[30])
{
for(int?j=0;j<30;j++)
{
str[j]=0;//將數(shù)組內(nèi)的數(shù)值全部重置
}
}

//詞法分析函數(shù)
void?gettoken()
{??
????ch=fgetc(in);//讀入一個字符
if(isspace(ch))//判斷是否為空格
{
while(1)
{
if(isspace(ch)){ch=fgetc(in);}//如果是空格則指針一直下移
else?break;//直到第一個不為空格的為止,跳出本次循環(huán)
}
}

if(isdigit(ch))//判斷是否是數(shù)字
{
while(1)
{
if(isdigit(ch))
{
??????strToken[i]=ch;//將后個數(shù)字放入前一下數(shù)字之后
??i++;//數(shù)組中空位置后移?
??ch=fgetc(in);//讀入下一個字符
????}
else?
{
printf(“%s“strToken);//輸出數(shù)字串
????????i=0;//將空位置重新計數(shù)
????????Retract(strToken);//將數(shù)組重新開始置起
????????fseek(in-21);//將指針的位置在當(dāng)前位置的基礎(chǔ)上向前移2個字符
????????ch=fgetc(in);//讀入當(dāng)前字符
????break;//跳出循環(huán)
}?
}
}
????else
{?
?????????if(ch==‘+‘){printf(“+“);}//當(dāng)前是符號+的處理
?????else?if(ch==‘-‘){printf(“-“);}//當(dāng)前是符號-的處理
?????else?if(ch==‘*‘){printf(“*“);}//當(dāng)前是符號*的處理
?????else?if(ch==‘

評論

共有 條評論