xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

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

資源簡介

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

資源截圖

代碼片段和文件信息

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

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

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

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

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

評論

共有 條評論