├── .gitignore ├── README.md ├── imgs ├── for语句.png ├── if语句.png ├── repeat语句.png ├── while语句.png ├── 主函数流程图.png ├── 主程序.png ├── 主符号表结构.png ├── 函数调用.png ├── 函数过程定义.png ├── 分程序.png ├── 变量.png ├── 变量引用.png ├── 复合语句.png ├── 子符号表结构.png ├── 常量定义.png ├── 形式参数列表.png ├── 数据流图.png ├── 模块图.png ├── 模块图2.png ├── 类型.png ├── 表达式.png ├── 语句.png ├── 赋值语句.png ├── 过程调用语句.png └── 运行逻辑表.png ├── lex-yacc-src ├── PPT上的更正说明.txt ├── PascalProgram.pas ├── auto_compile.sh ├── auto_complie_and_run.bat ├── lex.l ├── main.cpp ├── main.h ├── pascal2c.exe ├── preProcessed.pas ├── unistd.h ├── yacc.output ├── yacc.tab.h ├── yacc.y └── 添加了错误个数控制的版本,与vs工程关联,所以无法单独正确运行 │ ├── lex.l │ ├── main.cpp │ ├── main.h │ └── yacc.y ├── src ├── ASTnodes.cpp ├── ASTnodes.h ├── CMakeLists.txt ├── FunctionReturnExistedCheck.cpp ├── PascalProgram.pas ├── codeGenerate.cpp ├── lex.yy.cpp ├── main.cpp ├── main.h ├── parseTree2AST.cpp ├── semanticAnalyse.cpp ├── symbolTable.cpp ├── symbolTable.h ├── yacc.tab.cpp └── yacc.tab.h ├── test-cases ├── lex错误测试样例.md ├── 代码生成测试样例.md ├── 综合测试用例.md ├── 语义分析测试样例.md └── 语法分析测试用例.md ├── 各模块测试文档 ├── 代码生成 - 测试文档.docx ├── 整体设计 - 测试文档.docx ├── 词法分析 - 测试文档.docx ├── 语义分析 - 测试文档.docx └── 语法分析 - 测试文档 - 不带调试输出.docx └── 各模块详细设计 ├── 代码生成 - 详细设计.docx ├── 整体设计 - 详细设计.docx ├── 词法分析 - 详细设计.docx ├── 语义分析 - 详细设计.docx └── 语法分析 - 详细设计.docx /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/README.md -------------------------------------------------------------------------------- /imgs/for语句.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/for语句.png -------------------------------------------------------------------------------- /imgs/if语句.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/if语句.png -------------------------------------------------------------------------------- /imgs/repeat语句.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/repeat语句.png -------------------------------------------------------------------------------- /imgs/while语句.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/while语句.png -------------------------------------------------------------------------------- /imgs/主函数流程图.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/主函数流程图.png -------------------------------------------------------------------------------- /imgs/主程序.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/主程序.png -------------------------------------------------------------------------------- /imgs/主符号表结构.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/主符号表结构.png -------------------------------------------------------------------------------- /imgs/函数调用.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/函数调用.png -------------------------------------------------------------------------------- /imgs/函数过程定义.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/函数过程定义.png -------------------------------------------------------------------------------- /imgs/分程序.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/分程序.png -------------------------------------------------------------------------------- /imgs/变量.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/变量.png -------------------------------------------------------------------------------- /imgs/变量引用.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/变量引用.png -------------------------------------------------------------------------------- /imgs/复合语句.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/复合语句.png -------------------------------------------------------------------------------- /imgs/子符号表结构.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/子符号表结构.png -------------------------------------------------------------------------------- /imgs/常量定义.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/常量定义.png -------------------------------------------------------------------------------- /imgs/形式参数列表.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/形式参数列表.png -------------------------------------------------------------------------------- /imgs/数据流图.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/数据流图.png -------------------------------------------------------------------------------- /imgs/模块图.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/模块图.png -------------------------------------------------------------------------------- /imgs/模块图2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/模块图2.png -------------------------------------------------------------------------------- /imgs/类型.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/类型.png -------------------------------------------------------------------------------- /imgs/表达式.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/表达式.png -------------------------------------------------------------------------------- /imgs/语句.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/语句.png -------------------------------------------------------------------------------- /imgs/赋值语句.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/赋值语句.png -------------------------------------------------------------------------------- /imgs/过程调用语句.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/过程调用语句.png -------------------------------------------------------------------------------- /imgs/运行逻辑表.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/imgs/运行逻辑表.png -------------------------------------------------------------------------------- /lex-yacc-src/PPT上的更正说明.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/lex-yacc-src/PPT上的更正说明.txt -------------------------------------------------------------------------------- /lex-yacc-src/PascalProgram.pas: -------------------------------------------------------------------------------- 1 | program test(input,output; 2 | begin 3 | 4 | end. -------------------------------------------------------------------------------- /lex-yacc-src/auto_compile.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/lex-yacc-src/auto_compile.sh -------------------------------------------------------------------------------- /lex-yacc-src/auto_complie_and_run.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/lex-yacc-src/auto_complie_and_run.bat -------------------------------------------------------------------------------- /lex-yacc-src/lex.l: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/lex-yacc-src/lex.l -------------------------------------------------------------------------------- /lex-yacc-src/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/lex-yacc-src/main.cpp -------------------------------------------------------------------------------- /lex-yacc-src/main.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/lex-yacc-src/main.h -------------------------------------------------------------------------------- /lex-yacc-src/pascal2c.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/lex-yacc-src/pascal2c.exe -------------------------------------------------------------------------------- /lex-yacc-src/preProcessed.pas: -------------------------------------------------------------------------------- 1 | 2 | program test(input,output; 3 | begin 4 | 5 | end. -------------------------------------------------------------------------------- /lex-yacc-src/unistd.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/lex-yacc-src/unistd.h -------------------------------------------------------------------------------- /lex-yacc-src/yacc.output: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/lex-yacc-src/yacc.output -------------------------------------------------------------------------------- /lex-yacc-src/yacc.tab.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/lex-yacc-src/yacc.tab.h -------------------------------------------------------------------------------- /lex-yacc-src/yacc.y: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/lex-yacc-src/yacc.y -------------------------------------------------------------------------------- /lex-yacc-src/添加了错误个数控制的版本,与vs工程关联,所以无法单独正确运行/lex.l: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/lex-yacc-src/添加了错误个数控制的版本,与vs工程关联,所以无法单独正确运行/lex.l -------------------------------------------------------------------------------- /lex-yacc-src/添加了错误个数控制的版本,与vs工程关联,所以无法单独正确运行/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/lex-yacc-src/添加了错误个数控制的版本,与vs工程关联,所以无法单独正确运行/main.cpp -------------------------------------------------------------------------------- /lex-yacc-src/添加了错误个数控制的版本,与vs工程关联,所以无法单独正确运行/main.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/lex-yacc-src/添加了错误个数控制的版本,与vs工程关联,所以无法单独正确运行/main.h -------------------------------------------------------------------------------- /lex-yacc-src/添加了错误个数控制的版本,与vs工程关联,所以无法单独正确运行/yacc.y: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/lex-yacc-src/添加了错误个数控制的版本,与vs工程关联,所以无法单独正确运行/yacc.y -------------------------------------------------------------------------------- /src/ASTnodes.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/src/ASTnodes.cpp -------------------------------------------------------------------------------- /src/ASTnodes.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/src/ASTnodes.h -------------------------------------------------------------------------------- /src/CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/src/CMakeLists.txt -------------------------------------------------------------------------------- /src/FunctionReturnExistedCheck.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/src/FunctionReturnExistedCheck.cpp -------------------------------------------------------------------------------- /src/PascalProgram.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/src/PascalProgram.pas -------------------------------------------------------------------------------- /src/codeGenerate.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/src/codeGenerate.cpp -------------------------------------------------------------------------------- /src/lex.yy.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/src/lex.yy.cpp -------------------------------------------------------------------------------- /src/main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/src/main.cpp -------------------------------------------------------------------------------- /src/main.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/src/main.h -------------------------------------------------------------------------------- /src/parseTree2AST.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/src/parseTree2AST.cpp -------------------------------------------------------------------------------- /src/semanticAnalyse.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/src/semanticAnalyse.cpp -------------------------------------------------------------------------------- /src/symbolTable.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/src/symbolTable.cpp -------------------------------------------------------------------------------- /src/symbolTable.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/src/symbolTable.h -------------------------------------------------------------------------------- /src/yacc.tab.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/src/yacc.tab.cpp -------------------------------------------------------------------------------- /src/yacc.tab.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/src/yacc.tab.h -------------------------------------------------------------------------------- /test-cases/lex错误测试样例.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/test-cases/lex错误测试样例.md -------------------------------------------------------------------------------- /test-cases/代码生成测试样例.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/test-cases/代码生成测试样例.md -------------------------------------------------------------------------------- /test-cases/综合测试用例.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/test-cases/综合测试用例.md -------------------------------------------------------------------------------- /test-cases/语义分析测试样例.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/test-cases/语义分析测试样例.md -------------------------------------------------------------------------------- /test-cases/语法分析测试用例.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/test-cases/语法分析测试用例.md -------------------------------------------------------------------------------- /各模块测试文档/代码生成 - 测试文档.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/各模块测试文档/代码生成 - 测试文档.docx -------------------------------------------------------------------------------- /各模块测试文档/整体设计 - 测试文档.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/各模块测试文档/整体设计 - 测试文档.docx -------------------------------------------------------------------------------- /各模块测试文档/词法分析 - 测试文档.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/各模块测试文档/词法分析 - 测试文档.docx -------------------------------------------------------------------------------- /各模块测试文档/语义分析 - 测试文档.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/各模块测试文档/语义分析 - 测试文档.docx -------------------------------------------------------------------------------- /各模块测试文档/语法分析 - 测试文档 - 不带调试输出.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/各模块测试文档/语法分析 - 测试文档 - 不带调试输出.docx -------------------------------------------------------------------------------- /各模块详细设计/代码生成 - 详细设计.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/各模块详细设计/代码生成 - 详细设计.docx -------------------------------------------------------------------------------- /各模块详细设计/整体设计 - 详细设计.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/各模块详细设计/整体设计 - 详细设计.docx -------------------------------------------------------------------------------- /各模块详细设计/词法分析 - 详细设计.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/各模块详细设计/词法分析 - 详细设计.docx -------------------------------------------------------------------------------- /各模块详细设计/语义分析 - 详细设计.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/各模块详细设计/语义分析 - 详细设计.docx -------------------------------------------------------------------------------- /各模块详细设计/语法分析 - 详细设计.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yorange0/pascal2c-compiler/HEAD/各模块详细设计/语法分析 - 详细设计.docx --------------------------------------------------------------------------------