gawk1.1源码分析03

165 篇文章 0 订阅
107 篇文章 1 订阅

gawk1.1源码分析03
下午把awk1.c,awk2.c等文件翻了一下,其中重点看了awk1.c,对其中流程有一个大致了解,作者没有有getopt进行命令行选项的分析,而是自己手工写的。用
./gawk -d '{print $1}' 
 ./gawk -d '{print $1}' test.1
(3)   0x620644 = left<--(0x62065c PRINT.48)
(4)    0x62062c = left<--(0x620644 Exp_list.39)
(5)     0x61f010 = left<--(0x62062c Field.14)
(6)      (0x61f010 Number 1)
Found a rule:6424180
Statements:6424156
PRINT:6424156
var_type ref:6424108
DATA:6418448
this
Found a rule:6424180
Statements:6424156
PRINT:6424156
var_type ref:6424108
DATA:6418448
ok
就出现了一大串,前面的拷不出来。
可惜我看不懂,因为与bison进行了交互。
于是,硬着头皮向下看,下面好象都是利用了NODE,就像链表一样。
再快速的读了awk.y,其中前面语法分析树的看懂了,但其中还有C语言代码就没看明白了。
《unix编程环境》中有一篇引文《awk----a pattern scanning and processing language》我以为是介绍awk的设计思路,用必应
https://cn.bing.com/search?q=awk+a+pattern+scanning+and+processing+language&qs=n&form=QBLH&sp=-1&pq=awk+a+pattern+scanning+and+processing+language&sc=0-46&sk=&cvid=E0A8C36C0A6345FC80C8F3817ED96762
找到这篇文章,可惜其中介绍的只是如何使用awk。
于是,还是只有读源码了。
作者的那个数据结构相当复杂,以这个数据结构进行编译。因此,只能慢慢啃,但这次是能看懂一点点,而不是全部不懂了。总之,还是有进步的。
休息一会儿,再看吧。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值