用BNF的方式描述C语言文法子集
时间: 2024-06-04 07:12:17 浏览: 117
C语言的文法子集可以用以下BNF语法来描述:
<程序> ::= <函数定义>
<函数定义> ::= <类型> <标识符> "(" ")" "{" <语句序列> "}"
<类型> ::= "int" | "char" | "float" | "double"
<标识符> ::= <字母> | <标识符> <字母> | <标识符> <数字>
<语句序列> ::= <语句> | <语句序列> <语句>
<语句> ::= <赋值语句> | <条件语句> | <循环语句> | <返回语句>
<赋值语句> ::= <标识符> "=" <表达式> ";"
<条件语句> ::= "if" "(" <表达式> ")" "{" <语句序列> "}" [ "else" "{" <语句序列> "}" ]
<循环语句> ::= "while" "(" <表达式> ")" "{" <语句序列> "}"
<返回语句> ::= "return" <表达式> ";"
<表达式> ::= <加法表达式>
<加法表达式> ::= <乘法表达式> | <加法表达式> "+" <乘法表达式> | <加法表达式> "-" <乘法表达式>
<乘法表达式> ::= <因子> | <乘法表达式> "*" <因子> | <乘法表达式> "/" <因子>
<因子> ::= <标识符> | <常量> | "(" <表达式> ")"
<常量> ::= <整型常量> | <字符常量> | <浮点型常量> | <双精度浮点型常量>
<整型常量> ::= <数字> | <整型常量> <数字>
<字符常量> ::= "'" <字符> "'"
<浮点型常量> ::= <数字> "." <数字>
<双精度浮点型常量> ::= <数字> "." <数字> "e" <数字>
阅读全文