Program-< external declarations >< programs >< external declarations >
External declarations, < function definitions >|< declarations >
function definition < function type >< specifier >< compound statement >
function type, void|char|int|float
Specifiers < pointers >< Direct specifiers >|< Direct specifiers >
Pointers <*>|<*>< Pointers >
Direct specifier-< identifier >|< direct specifier []>|< direct specifier [constant expression]>|< identifier (parameter sequence) >|< identifier () >|< direct specifier, identifier sequence >
Identifier sequence, < identifier >|< identifier sequence ><,>< identifier >
Constant expressions-< conditional expressions >
Parameter sequence, < parameter declaration >|< parameter declaration ><,>< parameter declaration >
Parameter declarations, < declaration specifiers >< declarators >
Compound statement, <{}>|<{< statement sequence >}>|<{< declaration sequence >< statement sequence >}>
Declaring sequences-< declarators >|< declaring sequences >< declarators >
declarator < initialization specifier >|< initialization specifier ><,>< initialization specifier >
initialization specifier, < specifier >|< specifier ><=>< initializer >
Initialization program-< Assignment expressions >|<{< initialization sequences >}>|<{< initialization sequences ><,>}>
Initialize sequence < initialization program >|< initialize sequence ><,>< initialize >
Statement sequence-< statement statement >|< statement Sequence >< statement statement >
Statement-< COMPOUND statement >|< expression statement >|< SELECT statement >|< Loop Statement >|< Transfer Statement >
Expression statements, <;>|< expressions ><;>
SELECT statement--<IF (expression) statement >| <IF (expression) statement statement ><,><else Statement >
Looping statements, <for (< expression statements >< expression statements >< expressions >) >|<for (< expression statements >< expression statements >< expressions >) > <,>< Statement Statements >
Transfer statement-Continue|break|return|return < expressions ><;>
Expressions-< Assignment expressions >|< expressions ><,>< Assignment Expressions >
Assignment expressions-< conditional expressions >|< unary Expressions >< assignment operators >< Assignment Expressions >
Conditional expressions, < logical OR expression >|< logical or expression ><?>< expressions >< conditional Expressions >
Logic or expression, < logic or expression >|< logic or expression >< arithmetic logic and expression >
Operational logic and expression-< inclusiveness or expression >|< inclusiveness or expression >< arithmetic containment or expression >
Inclusion or expression, < XOR or expression >|< inclusiveness or expression ><|>< xor or expression >
XOR Expressions < Expressions >|< xor expressions ><^>< and Expressions >
With expressions < equality expressions >|< expressions ><&>< Equality Expressions >
Equality expressions, < relationships >|< equality Expressions >< op-relations >
Relationships-< Mobile >|< relationship >< ' < ' >< mobile >|<-Relationship >< ' > ' >< mobile >
Mobile-< progressive >|< mobile > <left_op >< Cumulative >|<> Mobile ><right_op >< Cumulative >
Cumulative < multiplication >|< Mobile ><+> < multiplicative > |< mobile ><->< multiplication >
Multiplication-< conversion expressions >|< conversion Expressions ><*>< multiplication > |< conversion Expressions ></>< multiply French > | < convert expressions ><%> < multiplication type >
Conversion expressions, < unary expressions >|< (type names) > < conversion expressions >
Unary expressions-< suffix expressions >|<inc_op > < unary expressions >|<dec_op > < unary expressions >|< unary operators > < conversion expressions >|<sizeof> < unary expressions >| <sizeof> < (type name) >
Suffix expressions-< main expressions >| < conversion expressions ><[]>| < conversion Expressions >< () >| < conversion Expressions >< parameter Expressions list >| < convert expressions >
1014 C language Grammar definition and the derivation process of C program