Cminus语言的BNF语法定义(精).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C_minus语言的BNF语法定义 C_minus语言的BNF语法定义如下: 1.program→declaration-list 2.declaration-list→declaration-listdeclaration|declaration 3.declaration→var-declaration|fun-declaration 4.var-declaration→type-specifierID;|type-specifierID[NUM]; 5.type-specifier→int|void 6.fun-declaration→type-specifierID(params)|compound-stmt 7.params→params-list|void 8.param-list→param-list,param|param 9.param→type-specifierID|type-specifierID[] 10.compound-stmt→{local-declarationsstatement-list} 11.local-declarations→local-declarationsvar-declaration|empty 12.statement-list→statement-liststatement|empty 13.statement→expression-stmt|compound-stmt|selection-stmt |iteration-stmt|return-stmt 14.expression-stmt→expression;|; 15.selection-stmt→if(expression)statement |if(expression)statementelsestatement 16.iteration-stmt→while(expression)statement 17.return-stmt→return;|returnexpression; 18.expression→var=expression|simple-expression 19.var→ID|ID[expression] 20.simple-expression→additive-expressionrelopadditive-expression|additive-expression 21.relop→=|||=|==|!= 22.additive-expression→additive-expressionaddopterm|term 23.addop→+|- 24.term→termmulopfactor|factor 25.mulop→*|/ 26.factor→(expression)|var|call|NUM 27.call→ID(args) 28.args→arg-list|empty 29.arg-list→arg-list,expression|expression 以下是对C_minus语言的文法定义的一些说明。 对以上每条文法规则,给出了相关语义的简短解释如下: 1.program→declaration-list 2.declaration-list→declaration-list|declaration|declaration 3.declaration→var-declaration|fun-declaration 程序由声明的列表(或序列)组成,声明可以是函数或变量声明,顺序是任意的。至少必须有一个声明。接下来是语义限制(这些在C中不会出现)。所有的变量和函数在使用前必须声明(这避免了向后backpatching引用)。程序中最后的声明必须是一个函数声明,名字为main。注意,C-缺乏原型,因此声明和定义之间没有区别(像C一样)。 4.var-declaration→type-specifierID;|type-specifierID[NUM]; 5.type-specifier→int|void 变量声明或者声明了简单的整数类型变量,或者是基类型为整数的数组变量,索引范围从0到NUM-1。注意,在C-中仅有的基本类型是整型和空类型。在一个变量声明中,只能使用类型指示符 int。void用于函数声明(参见下面)。也要注意,每个声明只能声明一个变量。 6.fun-declaration→type-specifierID(params)compound-stmt 7.params→param-list|void 8.param-list→param-list,param|param 9.param→type-specifierID|type-specifierID[] 函数声

文档评论(0)

_______ + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档