天天看點

文法分析

<程式> ->  <外部聲明> |  <程式>  <外部聲明>

<外部聲明>  ->   <函數定義>  |  <聲明>

<函數定義>  ->  <說明符類型>  <聲明> <複合語句>

<說明符類型>  ->  <空類> | <字元型> |  <浮點型>

<聲明> ->  <指針>  <直接說明符>  |  <直接說明符>

<指針> -> <*> | <*指針>

<直接說明符>  -> <辨別符>  |  <直接說明符  '['  ']'>   |  <直接辨別符'[' 恒表達式 ']'>  |  <辨別符'(' 參數名單 ')'>  |  <辨別符'('  ')'>  |  <直接說明符 ';' 識别名單>

<識别名單> -> <辨別符> |  <識别名單 ';' 辨別符>

 <恒表達式> -> <恒表達式>

<參數名單> -> <參數聲明> | <參數名單 ';' 參數聲明>

<參數聲明> -> <聲明辨別符> | <辨別符>

<複合語句> -> <'{' '}'> | <'{'語句名單'}'> | <'{'識别名單 語句名單'}'>

<識别名單> -> <識别符> | <識别名單  識别符>

<識别符> -> <初始化辨別符> | <初始化辨別符  ';'  初始化辨別符>

<初始化辨別符> -> <辨別符> | <辨別符 '=' 初始化器>

<初始化器> -> <任務表達式>  | <'{' 初始化清單  '}'> | <'{'  初始化清單 '}'>

<初始化清單> -> <初始化器> |<初始化清單 ';' 初始化器>

<語句表> -> <語句> | <語句表  語句>

<語句> -> <複合語句> | <語句表達式> | <選擇語句> | <疊代語句> | <跳轉語句>

<語句表達式> -> <表達式>

<選擇語句> -> < : IF'(' 表達式 ')' 語句> |<IF '(' 表達式 ')' 語句 ELSE 語句>

<疊代語句> -> <WHILE '(' 表達式 ')' 語句> | <FOR'(' 表達語句  表達語句 ')' 語句> | <FOR'(' 表達語句 表達語句 ')' 語句>

<跳轉語句> -> <CONTINUE> | <BREAK> | <RETURN> | <RETURN 表達式>

<表達式> -> <:複制表達式> | <表達式 ';' 複制表達式>

<指派表達式> -> <條件表達式> | <一進制指派 運算符表達式 指派表達式>

<條件表達式> -> <邏輯或表達式> | <>