📄 4ex3.cpp
字号:
//第4章 习题3⑤
//S→a|^|(T)
//T→T,S|S
#include "fstream.h"
#include "iostream.h"
#include "stdlib.h"
void S( ); //函数原型
void T( );
void T1( ); //用T1表示T'
char t; //定义字符变量,存放单词种别。
ifstream cinf("lex_r.txt",ios::in); //从文件lex_r.txt输入数据
void main( )
{
cinf>>t;cout<<t; //读一个单词的种别并显示
S( );
if(t=='#')
cout<<endl<<"ok"<<endl;
else
cout<<endl<<"err in main()"<<endl;
}
void S( ) //S→a|^|(T)
{
if(t=='a'||t=='^'){
cinf>>t;cout<<t; //读一个单词的种别并显示
}
else
if(t=='('){
cinf>>t;cout<<t; //读一个单词的种别并显示
T( );
if(t==')'){
cinf>>t;cout<<t; //读一个单词的种别并显示
}
else{
cout<<endl<<"err in S1"<<endl;exit(0);
}
}
else{
cout<<endl<<"err in S2"<<endl;exit(0);
}
}
void T( ) //T→ST',用T1表示T'。
{
if(t=='a'||t=='^'||t=='('){ // if(t∈first(S))
S( );T1( );
}
else{
cout<<endl<<"err in T( )"<<endl;exit(0);
}
}
void T1() //T'→,ST'|ε,用T1表示T'。
{
if(t==','){
cinf>>t;cout<<t; //读一个单词的种别并显示
S( );T1( );
}
else if(t!=')'){ // if(!t∈follow(T1))
cout<<endl<<"err in T1( )"<<endl;exit(0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -