< programs > < declarations > | < programs > < functions >
< statement > #include <stdio.h>| #include <string.h>| .......
< functions > < modifiers > < identifiers > < parameters > < compound statements > /c7>
< modifier >-> void | char | int | double
< identifiers >-> <D> |< identifiers ><d>| < identifiers > <N>
<D> A | B | C | D | ..... | Z
<N> 1|2|3|4|.......|9
< parameters > < data types > < identifiers >
< data type >-> int | float | double | char
< compound statements >-> < statements >|< compound statements > < statements >
< statements > < conditional statements >|< assignment Statements >
< conditional statements > <s1>|<s2>
<s1> if <b> < conditional statements > Else < conditional statements >
<s2> if <b> < conditional statements > | < compound statements >
<b>-< logical Expressions >
< logical Expressions > < identifiers > |<n> | < logical operators > | < identifiers > | <N>
< logical operators >->|<|=|>=|<=|!
< assignment Statements > < identifiers > = < expressions >
< expression >- expression + T | Expression –t | T
T-F*f | t/f | F
F-< expression >| i
On the grammatical analysis of C language