  | 
»  | 
 | 
  
 | 
 | 
preprocessing-file :=      [group]   group :=      group-part      group group-part   group-part :=      [pp-tokens] new-line      if-section      control-line   if-section :=      if-group [elif-groups] [else-group] endif-line   if-group :=      # if     constant-expression
new-line [group]      # ifdef  identifier new-line [group]      # ifndef identifier new-line [group]   elif-groups :=      elif-group      elif-groups elif-group   elif-group :=      # elif   constant-expression new-line [group]   else-group :=      # else   new-line
[group]   endif-group :=      # endif  new-line   control-line :=      # include pp-tokens new-line      # define  identifier replacement-list new-line      # define  identifier([identifier-list] ) replacement-list  newline      # undef   identifier new-line      # line    pp-tokens
new-line      # error   [pp-tokens] new-line      # pragma  [pp-tokens] new-line      #         new-line   replacement-list :=      [pp-tokens]   pp-tokens :=      preprocessing-token      pp-tokens preprocessing-token   new-line :=      the new-line character  |  
  
 |