< translation units >-->< external declarations >-->< function definitions >|< reporting >
< function definition >-->< declaration specifier >-->< declarator >-->< declaration >|< Compound Statement >
< declaration specifier >-->< Storage class descriptor >|< type specifier >|< type qualifier >
< storage class Descriptor >--> Auto | Register | static| extern | typedef
< type descriptor >--> void| char| Short| Int| Long| Float| double| signed| Unsigned "| <struct-or-union-specifier>| <enum-specifier>| <typedef-name> (struct or union descriptor, enumerator, type definition name)
< structure or union descriptor >-->< structure or union > < logo > < "{" {< structure declaration;} + "}" > | < structure or Union > "{" {< structure declaration;} + "}" | < structure or union > < identifiers >
< structure or union >--> "Structure" | Joint
< structure declaration > {< Description Qualifier;} * < structure description List characters >
< description qualifier >-< type descriptor >| < type qualifier >
< structure description List characters >-< structure specifier >| < structure description list characters > "," < structure descriptor >
< struct descriptor >-->< specifier >| < declarators > ":" < constant expression >| " : "< constant expression >
< declarators >-->{< pointers;}? (--"*" {< type qualifier;} * {< pointer;}? ) < direct specifiers >
Reading and understanding of C language Grammar