1 Star 0 Fork 1

mengbai/compile2021

forked from Ray/compile2021 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
main.cpp 1.11 KB
一键复制 编辑 原始数据 按行查看 历史
Ray 提交于 2021-11-19 12:03 . grammar
#include <iostream>
#include "Lexer.h"
#include "Parser.h"
int main(int argc, char *argv[]) {
if (argc != 2) {
std::cout << "Usage: " << argv[0] << " filename" << std::endl;
exit(1);
}
std::string filename = argv[1];
std::ifstream fin(filename, std::ios::in);
// test lexer
if (!fin.is_open()) {
std::cout << "Error: File " << filename << " not found" << std::endl;
exit(2);
}
std::string input;
while (!fin.eof()) {
std::string line;
std::getline(fin, line);
line += "\n";
input += line;
line.clear();
if (fin.eof())
{
break;
}
}
input += '\0';
Lexer *lexer = new Lexer(input);
std::vector<Token> tokens = lexer->LexicalAnalyisis();
for (auto token : tokens) {
std::cout << token.GetStringValue();
if (token._type != TOKEN_NEWLINE) {
std::cout << std::endl;
}
}
Parser *parser = new Parser(tokens);
parser->parse();
parser->printTree(nullptr);
fin.close();
delete lexer;
delete parser;
return 0;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mengbai_love/compile2021.git
[email protected]:mengbai_love/compile2021.git
mengbai_love
compile2021
compile2021
master

搜索帮助