编译成功的gawk1.01源码上传了

编译成功的gawk1.01源码上传了
世界上最幸福的事,就是把代码编译成功了。然后一个屏幕对代码进行编辑,另一屏幕,进行测试,立即看到效果。太爽了。
今天,我把gawk1.01编译成功,我开始进行一些简单的测试,如从内置函数开始。如何测试呢?
yang@DESKTOP-V9HS3B6:~/gawk101/gawk$ ./gawk 'BEGIN {print 2+3}'
5
yang@DESKTOP-V9HS3B6:~/gawk101/gawk$ ./gawk 'BEGIN {print exp(2);}'
7.38906
^C
yang@DESKTOP-V9HS3B6:~/gawk101/gawk$ ./gawk 'BEGIN {print index("abcd","bc");}'
2
^C
再读index的源码,如下:
NODE *
do_index(tree)
NODE *tree;
{
        NODE *s1,*s2;
        register char *p1,*p2;
        register int l1,l2;

        get_two(tree,&s1,&s2);
        p1=s1->stptr;
        p2=s2->stptr;
        l1=s1->stlen;
        l2=s2->stlen;
        while(l1) {
                if(!strncmp(p1,p2,l2))
                        return tmp_number((AWKNUM)(1+s1->stlen-l1));
                l1--;
                p1++;
        }
        return tmp_number(0.0);
}
对那些看不懂的,先略过,如NODE,get_two()函数,反正是得到了两个值,再进行比较,比较时,用笨办法,没有用正则表达式,也没有用KMP算法,就是笨办法,逐个的比较。那个while循环办的事。
我试着把
return tmp_number(0.0);改成
return tmp_number(-1.0);
再编译,再测试,果然生效了。心情很是高兴。
我想,这样才是读代码呢。一边读,一边对代码进行修改,这样来验证自己的理解,太爽了。前段时间,只是碰个代码读,在头脑中想象,太难了。现在自己可以编译代码,可以修改,立即看到修改的效果,太爽了。
今天还试着把修改后的代码上传了。发现csdn可以上传源码,真是很好。也算,让其他人少摸索。因为修改源码,使之能编译成功的过程,真是太麻烦了。
可惜,现在真正能闲下心来,读源码的人太少了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章