簡易C語言文法分析

weixin_30924079發表於2020-04-04

<源程式> → <外部宣告> | <源程式> <外部宣告>

<外部宣告> → <函式定義> | <定義>

<函式定義> → <型別識別符號> <宣告部分語句>

<識別符號型別> → <無型別> | <字元> | <整型> | <浮點型>

<宣告> → <指標直接宣告> | <直接宣告>

<直接宣告> → <識別符號> | <直接宣告[ ]> | <直接宣告[常量表示式]> | <識別符號(引數列表)> | <識別符號()> | <直接宣告 , 識別符號列表>

<識別符號列表> → <識別符號> | <識別符號列表 ,識別符號>

<常數表示式> → <條件表示式>

<引數列表> → <引數宣告> | <引數列表 ,引數宣告>

<引數宣告> → <說明符宣告><識別符號>

<複合語句> → <{ }> | <{ 語句列表 }> | <{ <宣告列表> <語句列表> }>

<宣告列表> → <宣告> | <宣告列表> <宣告>

<宣告> → <初始化宣告> | <初始化宣告列表 ,初始化宣告>

<初始化宣告> → <宣告> | <宣告=初始化程式>

<初始化程式> → <表示式> | <{初始化程式列表}> | <{初始化程式列表 , }>

<初始化程式列表> → <初始化程式> | <初始化程式列表 , 初始化程式>

<語句列表> → <語句> | <語句列表> <語句>

<語句> → <語句>| <複合語句> | <表示式語句> | <選擇語句> | <迴圈語句> |<跳轉語句>

<表示式語句> → <表示式;>

<選擇語句> → < IF(表示式)語句> | < IF(表示式)語句 > < ELSE 語句>

<迴圈語句> → < WHILE(表示式)語句> | < FOR(表示式語句表示式語句)語句> | < FOR(表示式語句表示式語句表示式)語句>

<表示式> → <賦值表示式> | <表示式, 賦值表示式>

<賦值表示式> → <條件表示式> | <一元表示式> <賦值操作符> <賦值表示式>

<條件表示式> → <邏輯‘或’表示式> | <邏輯‘或’表示式?> <表示式→> <條件表示式>

<邏輯‘或’表示式> → <邏輯‘與’表示式> | <邏輯‘或’表示式> <‘或’運算> <邏輯‘與’表示式>

<邏輯‘與’表示式> → <邏輯‘或’表示式> | <邏輯‘與’表示式> <‘與’運算> <邏輯‘或’表示式>

<或運算表示式> → <異或表示式> | <或運算表示式‘|’ 異或表示式>

<加法表示式> → <乘法表示式> | <加法表示式 + 乘法表示式> | <加法表示式 - 乘法表示式>

<乘法表示式> → <強制轉換表示式> | <乘法表示式 * 強制轉換表示式> | <乘法表示式 / 強制轉換表示式> | <乘法表示式 % 強制轉換表示式>

<基本表示式> → <識別符號> | <常量> | <字串> | <(表示式)>

<一元運算子> → <&> | <*> | <+> |<-> | <~> | <!>

< 賦值運算子> → <=> | <乘法賦值> | <除法賦值> | <求餘賦值> | <加法賦值> | <減法賦值> | <左賦值> | <右賦值> | <與賦值> | <異或賦值> | <或賦值>

轉載於:https://www.cnblogs.com/Zhang-Shuheng/p/6008791.html

相關文章