< procedures >→< External declarations > | < external declaration of Program >
< external declarations >→< function Definitions > | < definition >
< function definition >→< function declaration > < function body >
< function declaration >→< function return type > < function header >
< function return type >→< return type > | < return type > < pointer >
< Letter >→a | B | C |......| x | y | Z
< Digital >→0 | 1|......| 8 | 9
< declaration statements >→< Identifier types > < identifiers >; | < identifier type > < identifier >; < declaration statements >
< executable statement parts >→< Statements > | < executable statement Parts > < statements >
< jump statement >→continue; | break; | return; | return expression; |return
< expression statements >→< Assignment Expressions > | < logical Expressions > | < arithmetic expression e>
< Assignment expressions >→< variables > = < arithmetic expressions >
< logical Expressions >→ (< expressions > | < numbers >) < logical operators > (< expressions > | < numbers >)
E→e + T | e–t | T
T→t * f| t/f | F
F F↑p | P
P (E) | < Constants > | < identifiers >
< logical operators >→> | < |! = | <= | >= | = = | ? | : | ! | || | &&
Simplified version of C language grammar