home *** CD-ROM | disk | FTP | other *** search
/ Microsoftware Monthly 19…2 Programming Power Tools / MASO9512.ISO / cpptutor / cpptutor.arj / TEXT / GRAMMAR.3 < prev    next >
Encoding:
Text File  |  1993-07-20  |  2.3 KB  |  101 lines

  1. %F,15,GRAMMAR.MNU%Grammar_Summary_Menu / %F,15,GRAMMAR.2%Previous / %F,15,GRAMMAR.4%Next
  2.  
  3.        %C,1%DECLARATION GRAMMAR SUMMARY
  4.  
  5. The declaration syntax is recursive and
  6. allows for complete declarations.
  7.  
  8. declaration:
  9.       [declaration-specifier-list] [init-declarator-list] %C,1%;%C,5%
  10.       function-definition
  11.       template-declaration
  12.       exception-declaration
  13.       linkage-specification
  14.  
  15. declaration-specifier:
  16.       storage-class-specifier
  17.       type-specifier
  18.       function-specifier
  19.       %C,1%friend%C,5%
  20.       %C,1%typedef%C,5%
  21.  
  22. declaration-specifier-list:
  23.       [declaration-specifier-list] declaration-specifier
  24.  
  25. storage-class-specifier:
  26.       %C,1%auto
  27.       %C,1%register
  28.       %C,1%static
  29.       %C,1%extern
  30.  
  31. function-specifier:
  32.       %C,1%inline
  33.       %C,1%virtual
  34.  
  35. type-specifier:
  36.       simple-type-specifier
  37.       class-specifier
  38.       enumeration-specifier
  39.       elaborated-type-specifier
  40.       %C,1%const
  41.       %C,1%volatile
  42.  
  43. simple-type-specifier:
  44.       qualified-class-specifier
  45.       qualified-type-specifier
  46.       %C,1%char
  47.       %C,1%short
  48.       %C,1%int
  49.       %C,1%long
  50.       %C,1%signed
  51.       %C,1%unsigned
  52.       %C,1%float
  53.       %C,1%double
  54.       %C,1%void
  55.  
  56. elaborated-type-specifier:
  57.       class-key class-name
  58.       class-key identifier
  59.       %C,1%enum%C,5% enumeration-name
  60.  
  61. class-key:
  62.       %C,1%class
  63.       %C,1%struct
  64.       %C,1%union
  65.  
  66. qualified-type-specifier:
  67.       typedef-name
  68.       class-name %C,1%::%C,5% qualified-type-specifier
  69.  
  70. qualified-class-specifier:
  71.       nested-class-specifier
  72.       %C,1%::%C,5% nested-class-specifier
  73.  
  74. nested-class-specifier:
  75.       class-name
  76.       class-name %C,1%::%C,5% nested-class-specifier
  77.  
  78. enumeration-specifier:
  79.       %C,1%enum%C,5% [identifier] %C,1%{%C,5% [enumeration-list] %C,1%}%C,5%
  80.  
  81. enumeration-list:
  82.       enumerator
  83.       enumeration-list %C,1%,%C,5% enumerator
  84.  
  85. enumerator:
  86.       identifier
  87.       identifier %C,1%=%C,5% constant-expression
  88.  
  89. constant-expression:
  90.       conditional-expression
  91.  
  92. linkage-specification:
  93.       %C,1%extern%C,5% string-literal %C,1%{%C,5% [declaration-list] %C,1%}%C,5%
  94.       %C,1%extern%C,5% string-literal declaration
  95.  
  96. declaration-list:
  97.       declaration
  98.       declaration-list declaration
  99.  
  100. %F,15,GRAMMAR.MNU%Grammar_Summary_Menu / %F,15,GRAMMAR.2%Previous / %F,15,GRAMMAR.4%Next
  101.