编译器源代码

上传者: morre | 上传时间: 2019-12-21 20:20:30 | 文件大小: 59KB | 文件类型: zip
这个编译器的源代码是我原先为了完成编译原理实验课作业而写的,所以只具有教学价值,现在发出来和大家共享 ;-)和网上流传的版本不同,它从文法开始,一直做到了符号表的实现. 想实现自己的编译器的话,只需在把Initializtion.h中的文法修改为自己的即可.工程结构:Initializtion.h 初始化文法,便于进一步进行分析,它为构造GRAMMAR类提供了信息.其中默认非终极符用括上,修改时需要注意.Grammar.cpp Grammar.h 定义了文法GRAMMAR类,它通过initializtion.h的信息建立文法的内部表示。LL1_Analyser.cpp LL1_Analyser.h 定义了LL1分析器,即LL1_Analyser类.LL1_Recognizer.cpp LL1_Recognizer.h 为LL1语法分析驱动器,可以通过文法,TOKEN序列和LL1分析表,判定语法是否正确,同时驱动动作.Rec_Parse.cpp Rec_Pares.h 实现了递归下降分析器Rec_Parse类, 递归下降的思想和LL1驱动器一样,不过是把压栈改成调用自己,而把弹栈改成返回.Scanner.cpp Scanner.h 实现了词法分析器,可以将程序变为TOKEN序列. 扫描的源程序文件路径也在这里被定义(默认为.//demo.txt)Action.cpp Action.h 实现了语义栈的操作,_Action类定义了动作符号所对应的动作.SymTable.cpp SymTable.h 实现了符号表的建立和输出.希望大家能通过该程序对STL和编译原理有更深刻的理解,Have Fun and Good Luck! -- David.Morre

文件下载

资源详情

[{"title":"( 26 个子文件 59KB ) 编译器源代码","children":[{"title":"Compiler","children":[{"title":"Compiler.opt <span style='color:#111;'> 56.50KB </span>","children":null,"spread":false},{"title":"SymbTable.h <span style='color:#111;'> 884B </span>","children":null,"spread":false},{"title":"LL1_Analyser.h <span style='color:#111;'> 1.21KB </span>","children":null,"spread":false},{"title":"Scanner.cpp <span style='color:#111;'> 3.12KB </span>","children":null,"spread":false},{"title":"Compiler.plg <span style='color:#111;'> 1.84KB </span>","children":null,"spread":false},{"title":"Debug","children":null,"spread":false},{"title":"LL1_Analyser.cpp <span style='color:#111;'> 8.25KB </span>","children":null,"spread":false},{"title":"Initializtion.h <span style='color:#111;'> 8.28KB </span>","children":null,"spread":false},{"title":"Compiler.dsp <span style='color:#111;'> 5.34KB </span>","children":null,"spread":false},{"title":"Compiler.cpp <span style='color:#111;'> 612B </span>","children":null,"spread":false},{"title":"LL1_Recognizer.cpp <span style='color:#111;'> 2.12KB </span>","children":null,"spread":false},{"title":"Action.h <span style='color:#111;'> 953B </span>","children":null,"spread":false},{"title":"Rec_Parse.h <span style='color:#111;'> 746B </span>","children":null,"spread":false},{"title":"LL1_Recognizer.h <span style='color:#111;'> 968B </span>","children":null,"spread":false},{"title":"Rec_Parse.cpp <span style='color:#111;'> 1.50KB </span>","children":null,"spread":false},{"title":"Action.cpp <span style='color:#111;'> 9.12KB </span>","children":null,"spread":false},{"title":"Compiler.ncb <span style='color:#111;'> 185.00KB </span>","children":null,"spread":false},{"title":"StdAfx.cpp <span style='color:#111;'> 301B </span>","children":null,"spread":false},{"title":"Compiler.dsw <span style='color:#111;'> 524B </span>","children":null,"spread":false},{"title":"SymbTable.cpp <span style='color:#111;'> 3.56KB </span>","children":null,"spread":false},{"title":"demo.txt <span style='color:#111;'> 743B </span>","children":null,"spread":false},{"title":"readme.txt <span style='color:#111;'> 1.16KB </span>","children":null,"spread":false},{"title":"StdAfx.h <span style='color:#111;'> 1.08KB </span>","children":null,"spread":false},{"title":"Scanner.h <span style='color:#111;'> 599B </span>","children":null,"spread":false},{"title":"TypeDef.h <span style='color:#111;'> 3.03KB </span>","children":null,"spread":false},{"title":"Grammar.cpp <span style='color:#111;'> 5.44KB </span>","children":null,"spread":false},{"title":"Grammar.h <span style='color:#111;'> 1.54KB </span>","children":null,"spread":false}],"spread":false}],"spread":true}]

评论信息

  • boy2750 :
    资料不错,感觉还好,
    2018-03-14
  • qq_41569934 :
    还行,可以用
    2018-01-05
  • qxhmtqxh :
    不跳看得懂
    2017-11-06
  • zgy_chenxin :
    资料不错,感觉还好,
    2016-06-20
  • 小雨丶 :
    很不错,可以用
    2016-04-02

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明