《编译技术编译原理 (2).pdf》由会员分享,可在线阅读,更多相关《编译技术编译原理 (2).pdf(18页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、基于python的简易编译器实现IRsCode GenerationScannerParser记号列表Semantic AnalysisCFG源码分析树CFG 定义输出TypeDefinition编译器架构IRsCode GenerationScannerParser记号列表Semantic AnalysisCFG源码分析树CFG 定义输出TypeDefinition编译器架构Scanner的作用将输入的char*变成token list,供句法分析器作进一步分析。Scanner的作用将输入的char*变成token list,供句法分析器作进一步分析。划分token的依据是什么?Scanne
2、r的作用将输入的char*变成token list,供句法分析器作进一步分析。划分token的依据是什么?Type Definition类型定义将类型定义从scanner中分离出来的理由:不同的应用需要不同的类型定义将类型定义从scanner中分离出来的理由:不同的应用需要不同的类型定义计算器类型定义将类型定义从scanner中分离出来的理由:SQL类型定义不同的应用需要不同的类型定义计算器类型定义SQL类型定义将类型定义从scanner中分离出来的理由:Identifierb(a-zA-Z|_)(a-zA-Z|0-9|_)0,32b id正式名称匹配规则显示名称类型定义格式typeDef.py部分实现逐行读取&添加定义typeDef.py部分实现在添加定义时保存映射减少后续步骤内存占用Scanner词法分析器偷懒调用了python的re库来实现读取类型定义后,利用正则表达式进行匹配scanner.py部分实现利用re的函数迭代match objectscanner.py部分实现Scanner输出感谢围观