C語言文法


1.      <程序>→<外部聲明>|<程序><外部聲明>

2.      <外部聲明>→<函數定義>|<聲明>

3.      <函數定義>→<類型說明><聲明符><復合語句>

4.      <類型說明>→ <VOID>|< CHAR>|< INT>|< FLOAT>

5.      <聲明符> →<指針><直接聲明符>|<直接聲明符>

6.      <指針>→<*>|<*><指針>

7.      <直接聲明符>→<標識符>|<直接聲明符><[><]>|<直接聲明符><[><常數表達><]>|<標識符><(><)>|<直接聲明符><,><確定列表>

8.      <確定列表>→<標識符>|<確定列表><,><標識符>

9.      <常數表達>→<條件表達>

10.   <參數列表>→<參數聲明>|<參數列表><,><參數聲明>

11.   <參數聲明>→<聲明說明符><標識符>

12.   <復合聲明> →<{><}>|<{><聲明列表><}>|<{><聲明列表><聲明列表><}>

13.   <聲明列表>→<聲明>|<聲明列表><聲明>

14.   <聲明>→<初始化聲明>|<初始化聲明列表><,><初始化聲明>

15.   <初始化聲明>→<聲明>|<聲明><=><初始化>

16.   <初始化>→<分配表達>|<{><初始化列表><}>|<{><初始化列表><,><}>

17.   <初始化列表>→<初始化>|<初始化列表><,><初始化>

18.   <聲明列表>→<聲明>|<聲明列表><聲明>

19.   <聲明>→<復合聲明>|<表達聲明>|<選擇聲明>|<迭代聲明>|<跳躍聲明>

20.   <表達聲明>→<;>|<表達><;>

21.   <條件語句>:<IF‘(‘表達式”)語句>  |< IF‘(‘ 表達式 ‘)‘語句 >< 條件語句>

22.   <循環語句>→ <WHILE ( 表達式‘)‘ 語句> |< FOR ‘(‘ 表達式語句 表達式語句 ‘)‘ 語句> | <FOR ‘(‘ 表達式語句  表達式語句  表達式‘)‘語句>

23.   <跳轉語句 >|<  CONTINUE ‘;‘>  |<  BREAK ‘;‘>  | < RETURN ‘;‘>  |< RETURN 表達式 ‘;‘>

24.   <表達式>:<賦值表達式>  |<  表達式> ‘,‘< 賦值表達式>

25.   <賦值表達式>→<條件表達式>  |<  一元表達式賦值運算符><賦值表達式>

26.   <條件表達式>→<邏輯或表達> | <邏輯或表達>‘?‘ <表達式 >‘:‘<條件表達式>

27.   <邏輯或表達>→<邏輯與表達>  |< 邏輯或表達> <或運算邏輯表達式>

28.   <邏輯與表達>:<或表達式 >| <邏輯表達式>和<運算或表達式>

29.   <或運算表達式>→<異或表達式> |< 或運算表達式 >‘|‘< 異或表達式>

30.   <異或表達式>:<與表達式>|<異或表達式>‘^‘<與表達式>

31.   <與表達式>:<相等表達式> |< 與表達式>‘&‘<相等表達式>

32.   <相等表達式>:<關系表達式> |< 相等表達式等於運算關系表達式> |< 相等表達式不等於運算關系表達式>

33.   <關系表達式>:<移位表達式> | <關系表達式‘<‘移位表達式> | <關系表達式‘>‘移位表達式 > |  <關系表達式小於等於運算移位表達式> | <關系表達式大於等於運算移位表達式>

34.   <移位表達式>:<加法表達式> | <移位表達式左運算加法表達式> |< 移位表達式右運算加法表達式>

35.   <加法表達式>:<乘法表達式> |< 加法表達式‘+‘乘法表達式> |< 加法表達式‘-‘乘法表達式>

36.   <乘法表達式>:<強制轉換表達式> |< 乘法表達式‘*‘強制轉換表達式> |< 乘法表達式‘/‘強制轉換表達式> |< 乘法表達式‘%‘強制轉換表達式>

37.   <強制轉換表達式>:<一元表達式>  |<  ‘(‘ 類型名稱 ‘)‘強制轉換表達式>

38.   <一元表達式>:<后綴表達式> |< INC運算一元表達式> |< DEC運算一元表達式> |< 一元運算符將表達式>| <結構體變量的一元表達式> |  <結構體變量的‘(‘ 類型名稱 ‘)‘>

39.   <后綴表達式>:<基本表達式>|<后綴表達式‘[‘表達式‘]‘>|<后綴表達式‘(‘ ‘)>|<后綴表達式 ‘(‘參數表達式列表‘)‘>|<后綴表達式‘.‘ 標識符>|<后綴表達式指針運算標識符 >| <后綴表達式INC運算 > |< 后綴表達式DEC運算>

40.   <基本表達式→標識符>  | <常量> | <字符串常量> | < ‘(‘表達式‘)‘>

41.   <參數表達式列表>: <賦值表達式> | <參數表達式列表‘,‘賦值表達式>

42.   <一元運算符>: <‘&‘>  | <‘*‘ > |  <‘+‘  >| < ‘-‘ > | < ‘~‘ > | < ‘!‘>

43.   <賦值運算符>→<=‘ > | <乘法分配> | <DIV分配> | <MOD分配> | <加法分配 > |  <SUB分配 > | <左分配> | <右分配> | <與分配 >| <異或分配> | <或分配>

44.   <存儲類說明符>→<定義類型> | <外部變量 >| <靜態 > | <自動>  | <寄存器 >

45.   <結構或聯合說明符>:<結構或聯合標識符‘{‘結構體聲明列表‘}‘ > |< 結構或聯合‘{‘結構體聲明列表‘}‘ > | <結構或聯合標識符>

46.   <結構或聯合>:<結構體> | <聯合>

47.   <結構體聲明列表>:<結構體聲明> | <結構體聲明結構體聲明列表>

48.   <結構體聲明>:<說明符限定符列表結構說明符‘;‘說明符>→<類型說明符說明符限定符列表 >| <類型說明符 > | <類型限定符說明符限定符列表 >| <類型限定符>

49.   <結構說明符列表>→<結構體聲明> | <結構說明符列表‘,‘結構體聲明>

50.   <結構體聲明>→:<聲明> | < ‘:‘常量表達式 >| <聲明‘:‘常量表達式>

51.   <枚舉聲明>→<枚舉‘{‘枚舉器列表‘}‘ > | <枚舉標識符‘{‘枚舉器列表‘}‘ > | <枚舉標識符>

52.   <枚舉器列表>→<枚舉器> | <枚舉器列表‘,‘枚舉器>

53.   <枚舉器>→<標識符> | <標識符‘=‘常量表達式>

54.   <類型限定符>→<常量> | <易失的>

55.   <類型限定符列表>→<類型限定符> | <類型限定符列表><類型限定符>

56.   <參數類型列表>→<參數列表> | <參數列表‘,‘省略符號>

57.   <參數列表>→:<聲明參數> |< 參數列表‘,‘聲明參數>

58.   <類型名稱>→<限定說明符列表> | <限定符抽象說明符列表>

59.   <抽象說明符>→<指針> | <直接抽象說明符> | <指針直接抽象說明符>

60.   <直接抽象說明符>→ <( 抽象說明符 ‘)‘  >| < ‘[‘ ‘]‘  |  ‘[‘ 常量表達式‘]‘ >| <直接抽象說明符‘[‘ ‘]‘  >| <直接抽象說明符‘[‘ 常量表達式 ‘]‘ > | < ‘(‘ ‘)‘  >|<  ‘(‘參數類型列表‘)‘  >|<  直接抽象說明符‘(‘ ‘)‘  >| <直接抽象說明符‘(‘參數類型列表‘)‘>

61.   <有標號語句>→<標識符‘:‘語句> |  <CASE常量表達式‘:‘語句 > | < DEFAULT‘:‘語句>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM