EBNF请用扩展的BNF描述C语言里语句的结构:假定有语法类<exp>表示一般表达式,<s-exp>表示可用于switch标号的静态表达式;请用扩展的BNF描述C++语言里类声明的结构;1假定有语句类<statement>表示语句,有参数列表类<parameterlist>表达参数列表;请用扩展的BNF描述Java语言里类声明的结构;假定有语句类<statement>表示语句,有参数列表类<parameter list>表达参数列表,有表达式类<expression>表达表达式;
EBNF 1. 请用扩展的 BNF 描述 C语言里语句的结构; 假定有语法类 <exp> 表示一般表达式,<s-exp> 表示可用于 switch 标号的静态表达式; 2. 请用扩展的 BNF 描述 C++语言里类声明的结构; 假定有语句类<statement>表示语句,有参数列表类 <parameter_list>表达参数列表; 3. 请用扩展的 BNF 描述 Java语言里类声明的结构; 假定有语句类<statement>表示语句,有参数列表类 <parameter_list>表达参数列表,有表达式类<expression> 表达表达式;
一、扩展BNF描述C语言中的语句1.语句<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>
一、扩展BNF描述C语言中的语句 1. 语句 <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-declarationlist>1.variable-declaration-list ::=<variable-declaration>(,'<variable-declaration>}variable-declaration :=<identifier> ['=' <exp>]4.赋值语句assignment-statement ::=<identifier>'=' <exp>'5.带标签语句label-statement ::=<identifier> : <statement> I'case' <s-exp>: <statement> I'default :'<statement>6.表达式语句expression-statement ::=<exp>
3.变量声明 variable-statement ::= <variable-type> <variable-declarationlist> ';' 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>I'do'<statement>‘while''(<exp>")'";'"for'"C[<exp>]"'[<exp>]";’[<exp>]"'<statement>9.跳转语句jump-statement ::='continue' ";'1"break'";'/'return' [<exp>]"I'goto' <identifier> ':'"10.空语句empty-statement :=':
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++语言中的类声明1.类声明class declaration::='class'<identifier>"{field_declaration} "' ";'2.域声明field declaration<modifier>':"<method declaration><constructor declaration><destructor-declaration>!<modifier>':'{<variable declaration>}3.变量声明variable declaration ::=<type><identifier>"’<identifier>
二、扩展BNF描述C++语言中的类声明 1. 类声明 class_declaration ::= 'class' <identifier> '{' {field_declaration} '}' ';' 2. 域声明 field_declaration ::= |<modifier> ':' {<method_declaration> | |<constructor_declaration> |<destructor-declaration>} |<modifier> ':' {<variable_declaration>} 3. 变量声明 variable_declaration ::= <type> <identifier> { ',' <identifier> } ';‘