• 大小: 2KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: C/C++
  • 标签: 修改  S-->*  

资源简介

(1)E->TG (2)G->+TG|—TG (3)G->ε (4)T->FS (5)S->*FS|/FS (6)S->ε (7)F->(E) (8)F->i

资源截图

代码片段和文件信息

/*
  E->TG  
  T->FS 
  F->(E) 
  F->i 
  S->*FS|/FS| **FS   S->*(FS|*FS)
  S->ε
  G->+TG|-TG 
  G->ε 
*/
#include
#include
using namespace std;
string str;//句子
int flag = 0;//0标记合法1标记非法
int i = 0;
void E();
void T();
void G();
void F();
void S();
void H();
void Q();

void E()
{   cout<<“E->TG“<    T();
    G();
}

void G()
{
    if(str[i] == ‘+‘)
    {   cout<<“G->+TG“<        i++;
        T();
        G();
    }
if(str[i] == ‘-‘)
    {   cout<<“G->-TG“<        i++;
        T();
        G();
    }
else
cout<<“G->ε“<
}

void T()
{   cout<<“T->FS“<    F();
    S();
}

void S()
{   
    if(str[i] == ‘*‘)
    {   i++;
    cout<<“S->Q“<     Q();
        
    }
if(str[i] == ‘/‘)
    {   cout<<“s->/FS“<        i++;
        F();
        S();
    }
else
cout<<“S->ε“<}
void Q()

评论

共有 条评论