< programs > < external declarations > | < programs > < external declarations >
< external declarations > < function definitions > | < statement >
< function definition > < specifier type > < declaration > < Compound statement >
< descriptor type > < empty class > | < character type > | < floating-point >
< declarations > < pointers > < direct specifiers > | < direct specifiers >
< hands > <*> | <* hands >
< direct specifiers > < identifiers > | < direct specifier ' ['] ' > | < direct identifier ' [' constant expression '] ' > | < identifiers ' (' parameter list ') ' > | < identifiers ' (') ' > | < direct specifier '; ' Identification list >
< identification list > < identifiers > | < identification list '; ' Identifiers >
< constant expression >-< constant expression >
< parameter list > < parameter declaration > | < parameter list '; ' parameter declaration >
< parameter declarations > < declaration identifiers > | < identifiers >
< compound statement > < ' {'} ' > | < ' {' statement list '} ' > | < ' {' Recognition list statement list '} ' >
< identification list > < identifiers > | < identification list identifiers >
< identifiers > < initialization identifier > | < initialize identifier '; ' Initialize identifiers >
< initialization identifiers > < identifiers > | < identifier ' = ' initializer >
< initializers > < task Expressions > | < ' {' Initialize list '} ' > | < ' {' Initialize list '} ' >
< initialization list > < initializer > |< initialization list '; ' Initializer >
< statement Tables > < statements > | < statement table Statements >
< statements > < compound statements > | < statement Expressions > | < SELECT statement > | < iterative statements > | < jump statements >
< statement expressions >-< expressions >
< SELECT statement > <: IF ' (' expression ') ' Statement > |<if ' (' expression ') ' statement ELSE statement >
< iterate statements >-<while ' (' expression ') ' Statements > | <for ' (' expression Statement expression ') ' Statement > | <for ' (' expression Statement expression ') ' Statement >
< jump statements > <CONTINUE> | <BREAK> | <RETURN> | <return-expression >
< expressions >-<: Copy expression > | < expression '; ' Copy expression >
< Assignment Expressions >-< conditional expressions > | < unary assignment operator expression Assignment expression >
1029 C Language Grammar