代码易懂,无需注释就能看懂。
#include<iostream>
#include<unordered_map>
#include<vector>
#include<fstream>
#include<sstream>
#include<unordered_set>
#include<map>
#include<iomanip>
using namespace std;
class OutPut{
public:
OutPut(string step,string symbolStack,string inputString,string production,string action):
step(std::move(step)),symbolStack(std::move(symbolStack)),inputString(std::move(inputString)),
production(std::move(production)),action(std::move(action)){
};
void run(){
cout << setiosflags(ios::left) << setw(14) << step << setiosflags(ios::left) << setw(14) << symbolStack
<< setiosflags(ios::left) << setw(14) << inputString<< setiosflags(ios::left) << setw(14) << production
<< setiosflags(ios::left) << setw(14) << action<<endl;
}
private:
string step,symbolStack,inputString,production,action;
};
class LL1Analyzer{
public:
explicit LL1Analyzer(const string& path){
startchar='$';
ifstream readFile(path);
string grammar;
while(!readFile.eof()){
getline(readFile,grammar,'\n')

本文介绍了一次通过(LL(1))预测分析的原理,并提供了使用C++实现的清晰代码示例,无需额外注释即可理解。
最低0.47元/天 解锁文章
8134

被折叠的 条评论
为什么被折叠?



