<program> :
external_declaration
| program external_declaration
<external_declaration> : //外部聲明
function_definition
| declaration
<function_definition> : //函數
type_specifier declarator //說明符
compound_statement //混合聲明
<declaration>: //聲明
Symbol //符號 identifier ‘<’ identifier ‘>’ declaration
|type_specifier variate ‘;’ declaration
|identifier ‘{’ body ‘}’
<body> : //函數主體
type_specifier variate ‘;’
|initializer //初始化
<initializer> : //初始化
variate Initializer
|Symbol Initializer
<type_specifier> : //類型
Void
|char
|int
|float
|double
<identifier> : //標識符 頭文件
Include
| define
|stdio.h
|math.h
|stdlib.h
|time.h
|string.h
|main ‘(‘ ‘)’
<statement> : //聲明、陳述
udge_statement
|jump_statement
|iteration_statement
|selection_statement
<Judge_statement> : //判斷
selection_statement
: if '(' expression ')' statement
|if'(' expression ')' statement ELSE statement
<iteration_statement>: //循環
while '(' expression ')' statement
| for'(' expression_statement expression_statement ')' statement
| for '(' expression_statement expression_statement expression ')' statement
<jump_statement> : //跳轉符
Continue ’;’
|break ’; ’
|return’;’
|return ‘(’ ’)’ ’;’
<Symbol > : //符號
#
|+
|=
|-
|:
|,
<bracket> : //括號
(
|)
|{
|}
<Pointer > : //指針
'*'
| '*' variate //變量
<variate >: //變量
a variate
|b variate
|c variate
|.....
|z variate