文法

<translation-unit> ::= {<external-declaration>}*

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

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

<函数定义>→<类型 复合语句>

<类型>→<无字符>|<字符型>|<整形>|<浮点型>

<声明符>→<指针直接声明符>|<直接声明>

<指针>→<’*’>|<’*’指针>

<直接声明符>→<标识符>|<直接声明符’[’’]’>|<直接声明符’[’普通表达式’]’>|<标识符’(’参数表’)’>|<标识符’(’’)’>|<直接声明符’,’标识符>

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

<一般表达式>→<条件表达式>

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

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

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

<声明列表 >→<声明>|<’{’声明列表 声明’}’>

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

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

<初始化>→<分配表达>|<’{’初始化列表’}’>|<’{’初始化列表’,’’}’>

<初始化列表>→<初始化>|<初始化列表’,’初始化>

<声明列表>→<声明>|<声明列表 声明>

<声明>→<复合声明>|<表达声明>|<选择声明>|<循环声明>|<跳转声明>

<表达声明>→<’;’>|<表达’;’>

<选择声明>→<:if’(’表达’)’声明>|<:if’(’表达’)’声明 else 声明>

<循环声明>→<while’(’表达’)’声明>|<for’(’表达声明 表达声明’)’声明>|<for’(’表达声明 表达声明 表达’)’声明>

<跳转声明>→<continue’,’>|<break’,’>|<return’,’>|<return 表达’,’>

<表达>→<:分配表达>|<表达’,’分配表达>

<分配表达>→<条件表达>|<一元表达 分配运算符 分配表达>

<条件表达>→<逻辑 or 表达>|<逻辑 or 表达’?’>

原文地址:https://www.cnblogs.com/435514479xzq/p/4921634.html