开源编译器学习笔记——实战
文章平均质量分 75
oldbeginner
这个作者很懒,什么都没留下…
展开
-
开源编译器学习笔记01(VC6 词法扫描器)——2014_1_28
开源程序介绍来自(含linux版本下载) http://www.zengl.com/html/genlanmu/zenglbianchengyuyan/article-2.html 程序下载(VC 版本) http://pan.baidu.com/s/15QuDb#dir/path=%2Fzengl_language_for_VC_6.0 和VC版本说明 http://bbs.zen原创 2014-01-28 12:30:21 · 1040 阅读 · 0 评论 -
开源编译器学习笔记02(VC6 词法扫描器 ——GetToken)——2014_1_29
参考文章 http://www.zengl.com/html/genlanmu/zenglbianchengyuyan/article-2.html enum TOKENTYPE getToken() { enum STATES state = START;//设置起始状态为START enum TOKENTYPE token; while(state!=DOWN)//当st原创 2014-01-29 13:36:56 · 978 阅读 · 1 评论 -
开源编译器学习笔记03(VC6 词法扫描器 ——动态内存先放一边)——2014_1_30
理解 getToken( )函数后,再回到主函数中, void main(int argc,char * argv[]) { int len; enum TOKENTYPE token; if(argc != 2) { printf("usage: %s原创 2014-01-30 14:24:34 · 793 阅读 · 1 评论 -
开源编译器学习笔记04(VC6 动态节点数组——AddNode)——2014_1_31
http://www.zengl.com/html/genlanmu/zenglbianchengyuyan/article-3.html void main(int argc,char * argv[]) { int len; enum TOKENTYPE token; if(argc != 2) {原创 2014-01-31 13:16:08 · 760 阅读 · 1 评论 -
开源编译器学习笔记06(VC6 语法分析器——见面语法树状态机之start)——2014_2_2
if(ISTOKTYPE(ID)) //ISTOKTYPE是在global.h里定义的一个宏,用来判断当前节点的token类型是否是一个ID标示符。 { p = curnode; //如果是标示符,就将当前节点设为父节点,并将state设为INID 状态机的枚举值。下一次循环switch case时就会进入INID的程式。原创 2014-02-02 14:47:19 · 917 阅读 · 1 评论 -
开源编译器学习笔记05(VC6 语法分析器——见面语法树状态机)——2014_2_1
http://www.zengl.com/html/genlanmu/zenglbianchengyuyan/article-4.html 文章越来越不通俗, 需要花精力理解 int express() { Node_Type *nodes = AST_nodes.nodes; int state = START; int p=-1; bool IsMidTim_Div =原创 2014-02-01 14:12:43 · 1056 阅读 · 1 评论