简化版C语言文法

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

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

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

函数类型-> void|char|int|float

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

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

直接说明符-> <标识符>|<直接说明符[]>|<直接说明符[常量表达式]>|<标识符(参数序列)>|<标识符()>|<直接说明符,标识符序列>

标识符序列-> <标识符>|<标识符序列><,><标识符>

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

参数序列-> <参数声明>|<参数声明><,><参数声明>

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

复合语句-> <{}>|<{<陈述序列>}>|<{<声明序列><陈述序列>}>

声明序列-> <声明符>|<声明序列><声明符>

声明符-> <初始化说明符>|<初始化说明符><,><初始化说明符>

初始化说明符-> <说明符>|<说明符><=><初始化程序>

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

初始化序列-> <初始化程序>|<初始化序列><,><初始化>

陈述序列-> <陈述语句>|<陈述序列><陈述语句>

陈述语句-> <复合语句>|<表达式语句>|<选择语句>|<循环语句>|<转移语句>

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

选择语句-> IF(<表达式>)<陈述语句>|IF(<表达式>)<陈述语句>ELSE<陈述语句>

循环语句->WHILE(<表达式>)<陈述语句>|FOR(<表达式语句><表达式语句>)<陈述语句>|FOR(<表达式语句><表达式语句><陈述语句>)<陈述语句>

转移语句->CONTINUE;| BREAK; | RETURN; | RETURN <表达式>;

表达式-><任务表达式>|<表达式>;<任务表达式>

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

条件表达式-><OR表达式>|<OR表达式>?<表达式>:<条件表达式>

OR表达式-><AND表达式>|<OR表达式>OR_OP<AND表达式>

AND表达式-><包含OR表达式>|<AND表达式>AND_OP<包含OR表达式>

包含OR表达式-><单独OR表达式>|<包含OR表达式>'|'<单独OR表达式>

单独OR表达式-><AND表达式>|<单独OR表达式>'^'<AND 表达式>

AND 表达式-><赋值表达式>|<AND表达式>'&'<赋值表达式>

赋值表达式-><关系式>|<赋值表达式>EQ_OP<关系式>|<赋值表达式>NE_OP<关系式>

关系式-><位移表达式>|<关系式>'<'<位移表达式>|<关系式>'>'<位移表达式>|

    <关系式>LE_OP<位移表达式>|<关系式>GE_OP<位移表达式>

位移表达式-><相加表达式>|<位移表达式>LEFT_OP<相加表达式>|

      <位移表达式>RIGHT_OP<相加表达式>

相加表达式-><乘法表达式>|<相加表达式>'+'<乘法表达式>|<相加表达式>'-'<乘法表达式>

乘法表达式-><计算表达式>|<乘法表达式>'*'<计算表达式>|

      <乘法表达式>'/'<计算表达式>|<乘法表达式>'%'<计算表达式>

posted @ 2016-10-28 21:34  130-张煌  阅读(136)  评论(0编辑  收藏  举报