1014--C语言文法定义

<程序>-><外部声明>|<程序><外部声明>

<外部声明>-><函数定义>|<定义>

<函数定义>-><类型说明><声明><复合语句>

<类型说明>->无返回型|字符型|整型|单精度型

<声明>-><指针直接说明符>|<直接说明符>

<指针>-><’*’>|<’*’指针>

<直接声明符>-><标识符>|<直接声明符>’[’’]’|<直接声明符>’[’< 常量表达式>’]’>|<标识符>’(’ 参数表>’)’|<标识符>’(’ ’)’|<直接声明符 >’;’ <标识符列表>

<标识符列表>-><标识符>|<标识符列表> ’,’ <标识符>

<常量表达式>-><条件表达式>

<参数表>-><参数声明>|<参数表 >’,’ <参数声明>

<参数声明>-><声明说明><标识符>

<复合语句>->’{’ ’}’|’{’ <语句列表>’}’|’{’ <声明列表 语句列表>’}’

<声明列表>-><声明>|<声明列表><声明>

<声明>-><初始化声明符>|<初始化声明符列表 > ’, ’< 初始化声明符>

<初始化声明符>-><声明符>|<声明符>’=’ <初始化>

<初始化>-><赋值表达式>|’{’ <初始化列表> ’}’|’{’ <初始化列表> ’, ’ ’}’

<初始化列表>-><初始化>|<初始化列表> ‘,’< 初始化>

<语句列表>-><语句>|<语句列表>

<语句>-><复合语句>|<表达式语句>|<条件语句>|<循环语句>|<跳转语句>

<表达式语句>->’;‘|<表达式>’;‘

<条件语句>->如果<’(‘><表达式><’)‘><语句>|如果’(‘<表达式>’)‘<语句>那么<语句>

<循环语句>->当’(’<表达式>’)‘<语句>|为’(’<表达式语句><表达式语句>’)’|为’(’<表达式语句><表达式语句><表达式>’)’<语句>

<跳转语句>->继续’;’|结束’;’|返回’;’|返回<表达式>’;’

<表达式>-><赋值表达式>|<表达式>’,’<赋值表达式>

<赋值表达式>-><条件表达式>|<一元表达式><赋值运算符><赋值表达式>

<条件表达式>-><逻辑或表达>|<逻辑或表达式>’?’<表达式>’:’<条件表达式>

<逻辑或表达式>-><逻辑与表达式>|<逻辑或表达式>或<逻辑与表达式>

<逻辑与表达式>-><包容性或表达式>|<逻辑与表达式>和<包容性或表达式>

<包容性或表达式>-><异或表达式>|<包容性或表达式>’|’<异或表达式>

<异或表达式>-><与表达式>|<异或表达式>’^’<与表达式>

<与表达式>-><平等表达式>|<与表达式>’&’<平等表达式>

<平等表达式>-><关系表达式>|<平等表达式>EQ_OP<关系表达式>|<平等表达式>NE_OP<关系表达式>

<关系表达式>-><移动表达式>|<关系表达式>’<’<移动表达式>|<关系表达式>’>’<移动表达式>|<关系表达式> LE_OP <移动表达式>|<关系表达式> GE_OP <移动表达式>

<移动表达式>-><添加表达式>|<移动表达式> LEFT_OP <添加表达式>|<移动表达式> RIGHT_OP <添加表达式>

<添加表达式>-><乘法表达式>|<添加表达式>’+’<乘法表达式>|<添加表达式>’-’<乘法表达式>

<乘法表达式>-><转换表达式>|<乘法表达式>’*’<转换表达式>|<乘法表达式>’/’<转换表达式>|<乘法表达式>’%’<转换表达式>

<转换表达式>-><一元表达式>|’(’<类型名称>’)’<转换表达式>

<一元表达式>-><后缀表达式>| INC_OP <一元表达式>|DEC_OP <一元表达式>|<一元运算符>< 转换表达式>|字节<一元表达式>|字节’(’<类型名称>’)’

<后缀表达式>-><主要表达式>|<后缀表达式>’[’<表达式>’]’|<后缀表达式>’(’’)’|<后缀表达式>’(’<参数表达式列表>’)’|<后缀表达式>’.’<标识符>|<后缀表达式> PTR_OP <标识符>|<后缀表达式> INC_OP |<后缀表达式> DEC_OP

<后缀表达式>’(‘<参数表达式列表>’)’|<后缀表达式>’.’<标识符>|<后缀表达式><PTR OP标识符>|<后缀表达式 INC OP>|<后缀表达式 DEC OP>

<主表达式>--><标识符>|<不变>|<字符串字面量>|’(‘<表达式>’)’

<参数表达式列表>:<赋值表达式>|<参数表达式列表>’,’ <赋值表达式>

<一元运算符>:’&’|’*’|’+’|’-‘|’~’|’!’

<赋值运算符>-->’=’| MUL_ASSIGN| DIV_ASSIGN| MOD_ASSIGN| ADD_ASSIGN| SUB_ASSIGN| LEFT_ASSIGN| RIGHT_ASSIGN| AND_ASSIGN| XOR_ASSIGN| OR_ASSIGN

<存储类说明>-->TYPEDEF |EXTERN|静态的|自动的|寄存器

<结构或联合说明符>:<结构或联合标识符>’{‘<struct声明列表>’}’|<结构或联合>’{‘< struct声明列表’>’}’|<结构或联合标识符>

<结构或联合>:<结构>|<联合>

< struct声明列表>:<struct声明>|< struct声明列表>< struct声明>

<struct声明>:<说明限定表>< struct声明列表>‘;‘

<说明限定表>--><类型说明符><说明限定表>|<类型说明符>|<类型限定><说明限定表>|<类型限定>

<结构说明符列表>--><结构说明符>|<结构说明符列表>’.’ <结构说明符>

<结构说明符>--><声明符>|’:’<常量表达式>|<声明符>’:’ <常量表达式>

<枚举说明>--><枚举>’{‘<枚举列表>’}’|<枚举标识符>’{‘<枚举列表>’}’|

<枚举标识符>

<枚举列表>--><枚举>|<枚举列表>’;’ <枚举>

<枚举>--><标识符>|<标识符>’=’<常量表达式>

<类型限定>--><常量>|<变量>

<类型限定表>-->|<类型限定表><类型限定>

<参数类型列表>--><参数列表>|<参数列表>’.’<省略号>

<参数列表>--><参数声明>|<参数列表>’;’ <参数声明>

<类型名>--><说明限定表>|<说明限定表><抽象声明符>

<抽象声明符>--><指针>||<指针直接抽象声明符>

<指针直接抽象声明符>-->’(‘<抽象声明>’)’|’[‘’]’|’[‘<常数表达式>’]’|<直接抽象声明符>’[‘’]’|<直接抽象声明符>’[‘<常数表达式>’]’|’(‘’)’|’(‘<参数类型列表>’)’|<直接抽象声明符>’(‘’)’|<直接抽象声明符>’(‘<参数类型列表>’)’

<标签语句>--><标识符>’;’<语句>|<案例><常数表达式>’;’<语句>|<默认>’:’<语句>

时间: 2024-12-26 21:48:03

1014--C语言文法定义的相关文章

1014 C语言文法定义与C程序的推导过程 程序:冒泡算法C程序(语法树)

1014 C语言文法定义与C程序的推导过程  程序:冒泡算法C程序(语法树)1 阅读并理解提供给大家的C语言文法文件. 2 参考该文件写出一个自己好理解版的现实版的完整版的C语言文法. 3 给出一段C程序,画出用上述文法产生这段C程序的完整语法树. 程序:冒泡算法C程序 点此文字查看原图(完整图片) 1 #include <stdio.h> 2 3 main() 4 { 5 int i,j,temp; 6 int a[10]; 7 8 for(i=0;i<10;i++) 9 scanf

1014 C语言文法定义与C程序的推导过程

<程序>-><外部声明>|<程序><外部声明> <外部声明>-><函数定义>|<定义> <函数定义>-><类型说明><声明><复合语句> <类型说明>->无返回型|字符型|整型|单精度型 <声明>-><指针直接说明符>|<直接说明符> <指针>-><’*’>|<’

1106 1014 C语言文法定义与C程序的推导过程 冒泡程序语法树

1014 我的C语言文法定义与C程序推导过程

程序> -> <外部声明> | <程序> <外部声明> <外部声明> -> <函数定义> | <声明> <函数定义> -> <类型说明> <声明符> <复合语句> <类型说明> -> <void> | <char> | <int>|<float> <声明> ->  <指针&g

C语言文法定义及推导

文法推导如下: <程序>→ <外部声明>|<程序><外部声明><外部声明>→ <函数定义>|<声明><函数定义>→ <类型说明><声明符><复合语句><类型说明>→void|char|int|float...<声明符>→<指针直接说明符>|<直接声明符><指针>→<*>|<* *><直接

1029 C语言文法定义

program à external_declaration | program external_declaration <源程序> ->  <外部声明> |  <源程序>  <外部声明> external_declaration à function_definition | declaration <外部声明>  ->   <函数定义>  |  <声明> function_definition à typ

C语言文法定义与C程序的推导过程

program à external_declaration | program external_declaration <程序> ->  <外部声明> |  <程序>  <外部声明> external_declaration à function_definition | declaration <外部声明>  ->   <函数定义>  |  <声明> function_definition à type_

c语言文法定义

<程序>→<外部声明>|<程序><外部声明> <外部声明>→<函数定义>|<声明> <函数定义>→<类型说明><声明><复合语句> <类型说明>→void|char|int |float <声明>→<指针直接说明符>|<直接说明符> <指针>→’*‘|'*'指针 <直接说明符>→<标识符>|&

C语言文法定义及C程序的推导过程

program à external_declaration | program external_declaration <程序> ->  <外部声明> |  <程序>  <外部声明> external_declaration à function_definition | declaration <外部声明>  ->   <函数定义>  |  <声明> function_definition à type_