C语言编写的简单计算器
使用SLR Parser实现语法分析,本项目除了实现了SLR Parser外还实现了几种简单的数据结构:数组栈、循环队列、哈希表和哈希集合 以及 树。应该可以勉强作为数据结构的课程设计,编译原理我还没正式学,SLR Parser是我在维基百科和网上找的一个关于LR Parser的课件里面学到的一点皮毛,如有错误欢迎指出。
项目结构说明
📦src
┣ 📂main 项目主体代码文件夹
┃ ┣ 📜evaluator.c 计算器
┃ ┣ 📜grammar.c 语法定义和语法分析表生成
┃ ┣ 📜lexer.c 分词器
┃ ┣ 📜main.c 程序入口
┃ ┣ 📜map.c 哈希表
┃ ┣ 📜parser.c 语法分析器、语法分析树(ParseTree)转抽象语法树AST 以及 AST转字符串表达式
┃ ┣ 📜queue.c 循环队列
┃ ┣ 📜set.c 基于哈希表实现的哈希集合
┃ ┣ 📜stack.c 数组栈
┗ 📂test
┃ ┣ 📜evaluator_test.c 计算器测试
┃ ┣ 📜grammar_test.c 语法定义和语法分析表生成测试
┃ ┣ 📜hash_map_test.c 哈希表测试
┃ ┣ 📜hash_set_test.c 哈希集合测试
┃ ┣ 📜lexer_test.c 分词器测试
┃ ┣ 📜parser_test.c 语法分析测试
┃ ┣ 📜queue_test.c 循环队列测试
┃ ┣ 📜stack_test.c 数组栈测试
┃ ┣ 📜test.c 测试入口
</