- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一次课堂作业答案.ppt
EBNF
请用扩展的 BNF 描述 C语言里语句的结构;
假定有语法类 exp 表示一般表达式,s-exp 表示可用于 switch 标号的静态表达式;
请用扩展的 BNF 描述 C++语言里类声明的结构;
假定有语句类statement表示语句,有参数列表类parameter_list表达参数列表;
请用扩展的 BNF 描述 Java语言里类声明的结构;
假定有语句类statement表示语句,有参数列表类parameter_list表达参数列表,有表达式类expression表达表达式;
一、扩展BNF描述C语言中的语句
语句
statement ::= block | variable-statement
|assignment-statement
|labeled-statement
| expression-statement
| condition-statement
| iteration-statement
| jump-statement
|empty-statement
2. 语句块
block ::= { [statement-list] }
statement-list ::= [statement-list] statement
3.变量声明
variable-statement ::= variable-type variable-declaration-list ;
variable-declaration-list ::= variable-declaration {,variable-declaration}
variable-declaration ::= identifier [ = exp]
4.赋值语句
assignment-statement ::= identifier = exp ;
5.带标签语句
label-statement ::= identifier : statement | case s-exp : statement | default : statement
6.表达式语句
expression-statement ::= exp ;
7.条件语句
condition-statement ::= if ( exp ) statement
| if ( exp ) statement else statement
| switch ( exp ) statement
8.循环语句
iteration-statement ::= while ( exp ) statement
| do statement while ( exp ) ;
| for ( [exp] ; [exp] ; [exp] ) statement
9.跳转语句
jump-statement ::= continue ; | break ; | return [exp] ; | goto identifier ;
10.空语句
empty-statement ::= ;
二、扩展BNF描述C++语言中的类声明
类声明
class_declaration ::= class identifier { {field_declaration} } ;
2. 域声明
field_declaration ::=
|modifier : {method_declaration | |constructor_declaration |destructor-declaration}
|modifier : {variable_declaration}
变量声明
variable_declaration ::= type identifier { , identifier } ;‘
4. 方法声明
method_declaration ::= type identifier ( [parameter_list] ) ;
5. 构造函数声明
constructor_declaration ::= identifier ( [parameter_list] ) { {statement} } ;
6. 析构函数声明
destructor-declaration ::= ~ identifier ( ) { {statement} } ;
三、扩展BNF描述Java语言中的类声明
类声明
class_declaration ::= modifier class identifier [extends class_name]
[implements interface_name {, interface_name } ] { field_declara
文档评论(0)