当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: V. 现在开始-一个简单例子 这一章的目的是教您怎样在一个语言开发项目中使用PCYACC,为了达到这个目标,我们假定您熟悉C语言。
 

 

 ·购物车    »显示摘要«
    摘要:castclass.asp <%class shopbag ´放商品的空间 private prospace ´商品信息个数 private itemscout ´=============================================================´ 共有的´================================================......
 ·如何在kdevelop中添加appwizard    »显示摘要«
    摘要:kdevelop 是linux的一个program-ide,类似windows下的vc,当然我认为没有vc好用,毕尽是个开源代码,不过在linux下他也是一个不错的ide了。而且只要你有兴趣,你可以订制修改kdevelop的源代码。 由于项目需要,最近研究了一下kdevelop的appwizard。并且自己做了一个wizard,这个wizard是生成高通公司(brew)手机上的一个helloword,并且编译生成.so库。 下面介绍一下如何通过在kdeve......


小例子学习PCYACC和编译器开发

v. getting started -- a small example 【相关文章:查询锁定表中所有记录。

【扩展阅读:企业信息工厂:商业智能的一个概念体系

这一章的目的是教您怎样在一个语言开发项目中使用pcyacc,为了达到这个目标,我们假定您熟悉c语言。我们同样假定您有一份abraxas pcyacc与一个c语言编译器(c compiler)。 【扩展信息:qmail队列清除办法之一

v. 现在开始-一个简单例子

这一章给你使用pcyacc的程序开发流程的概述。本章的例子是一个简单的计算器,它能够做普通算术操作。这个例子将会向您展示它-我们暂时定名为sacalc(simple arithmetic calculator program)的pcyacc程序清单,同时举例说明怎样用pcyacc与c编译器建立可执行的sacalc,在稍后的一章中我们还会用一个稍微高级一点的例子来详细描述开发过程。

1.sacalc的语法描述文件(grammar description file)

下面是这个简单计算器例子的gdf代码文件:sacalc.y,为了引用的方便,我们在其中加入了行号(请注意,行号不能出现在您的gdl文件中)

01: %{

02:

03: #define yystype double /* stack data type */

04:

05: %}

06:

07: %token number

08: %left ´+´ ´-´ /* left associative */

09: %left ´*´ ´/´ /* left associative */

10: %left unaryminus

11:

12: %%

13:

14: list: /* nothing */

15: | list ´\n´

16: | list expr ´\n´

17: { printf("\t%.8g\n", $2); }

18: | list error ´\n´

19: { yyerrok; }

20: ;

21:

22: expr: number

23: { $$ = $1; }

24: | ´-´ expr %prec unaryminus

25: { $$ = -$2; }

26: | expr ´+´ expr

27: { $$ = $1 + $3; }

28: | expr ´-´ expr

29: { $$ = $1 - $3; }

30: | expr ´*´ expr

31: { $$ = $1 * $3; }

32: | expr ´/´ expr


...   下一页
 ·apache 2.0.50 released    »显示摘要«
    摘要:apache 2.0.50发布,这个版本包括一些重要的安全更新以及bug修正. 点这里 查看详细信息.以及2.0.50的变动清单 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE