这是语法归约最后一部分了,文法当中还有个外部归约。它已经在前面以及这里都提及到了,也就是把全局声明定义和函数定义整合的过程,最后归约成一颗完整的树。根结点就是translation-unit,因此不再单独示例!其次,文法不是C的全部,真正的C还要包括语义分析部分,也就是把文法推导出来东西进行有意义化!即文法上推出的东西不是全部都合法的!c只用了文法推导结果中的一个子集,而不是全集!好比汉语词汇组合说出来的东西不是全部都有意义,可以有脏话废话和不是人话^_^...
分类:
其他好文 时间:
2014-09-25 17:22:47
阅读次数:
201
上篇文字是基本表达式归约过程示例,本篇将来点高级复杂的玩玩!这部分示例代码源自kernel的20个源程序文件,挑选运算符组合复杂和比较典型的表达式!因此只能用来归约示例,不是可运行代码!挑你有兴趣的运算符组合,瞅瞅!...
分类:
其他好文 时间:
2014-09-22 20:15:43
阅读次数:
150
前三篇博文(0,1,2)主要讨论是声明和定义的相关语法归约。从这篇文字开始,将开始进行有效的计算,涉及表达式和语句。表达式和语句这两个概念是不同的,表达式是没有分号(;)的,而表达式+;构成语句。但这不是语句的全部,语句还可以是跳转,迭代,标签语句等等.就是蛋和鸡的关系!当然不是那个鸡生蛋,蛋生鸡的悖论,而是表达式是蛋,孵化是分号,鸡是语句。蛋孵化成鸡。鸡肚子里可有蛋!就这个理吧!...
分类:
其他好文 时间:
2014-09-21 21:22:21
阅读次数:
408
C函数声明与定义的语法归约过程阐释。抽象数据类型强大到不可撼动!如何解释int (*mother(int (*)(long), int))(int);,它的函数指针又怎么定义在这里将找到答案!...
分类:
其他好文 时间:
2014-09-21 00:01:39
阅读次数:
321
采用LR(1)技术,写了一个C语言的语法归约器!之所以用LR(1)是因为gcc,tcc,ucc和lcc跟商量好似的,清一色的用的LL归约技术,书上也是讲的跟天花一样漂亮,如果再使用LL技术实在是炸不出价值来,源码一抓一大把,看看就够了,重写必要性不大!另外,书中的LR技术讲的项集又是大的没谱,工具YACC自动生成又不知道它玩的猫腻!最终用LR(1)自搞了一套方法high起来,效果还不错^!^...
分类:
其他好文 时间:
2014-09-20 14:07:27
阅读次数:
220