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

  1. %F,15,GRAMMAR.MNU%Grammar_Summary_Menu / %F,15,GRAMMAR.1%Previous / %F,15,GRAMMAR.3%Next
  2.  
  3.        %C,1%EXPRESSION GRAMMAR SUMMARY
  4.  
  5. expression:
  6.       assignment-expression
  7.       expression %C,1%,%C,5% assignment-expression
  8.  
  9. assignment-expression:
  10.       conditional-expression
  11.       unary-expression assignment-operator assignment-expression
  12.       throw-expression
  13.  
  14. assignment-operator: one of
  15. %C,1%   =   *=  /=  %=  +=  -=  >>  <<  &=  ^=   |=
  16.  
  17. conditional-expression:
  18.       logical-OR-expression
  19.       logical-OR-expression %C,1%?%C,5% expression %C,1%
  20.                             %C,1%:%C,5% assignment-expression
  21.  
  22. logical-OR-expression:
  23.       logical-AND-expression
  24.       logical-OR-expression %C,1%||%C,5% logical-AND-expression
  25.  
  26. logical-AND-expression:
  27.       inclusive-OR-expression
  28.       logical-AND-expression %C,1%&&%C,5% inclusive-OR-expression
  29.  
  30. inclusive-OR-expression:
  31.       exclusive-OR-expression
  32.       inclusive-OR-expression %C,1%|%C,5% exclusive-OR-expression
  33.  
  34. exclusive-OR-expression:
  35.       AND-expression
  36.       exclusive-OR-expression %C,1%^%C,5% AND-expression
  37.  
  38. AND-expression:
  39.       equality-expression
  40.       AND-expression %C,1%&%C,5% equality-expression
  41.  
  42. equality-expression:
  43.       relational-expression
  44.       equality-expression %C,1%==%C,5% relational-expression
  45.       equality-expression %C,1%!=%C,5% relational-expression
  46.  
  47. relational-expression:
  48.       shift-expression
  49.       relational-expression %C,1%<%C,5% shift-expression
  50.       relational-expression %C,1%>%C,5% shift-expression
  51.       relational-expression %C,1%<=%C,5% shift-expression
  52.       relational-expression %C,1%>=%C,5% shift-expression
  53.  
  54. shift-expression:
  55.       additive-expression
  56.       shift-expression %C,1%<<%C,5% additive-expression
  57.       shift-expression %C,1%>>%C,5% additive-expression
  58.  
  59. additive-expression:
  60.       multiplicative-expression
  61.       additive-expression %C,1%+%C,5% multiplicative-expression
  62.       additive-expression %C,1%-%C,5% multiplicative-expression
  63.  
  64. multiplicative-expression:
  65.       pm-expression
  66.       multiplicative-expression %C,1%*%C,5% pm-expression
  67.       multiplicative-expression %C,1%/%C,5% pm-expression
  68.       multiplicative-expression %C,1%%
  69.                                   pm-expression
  70.  
  71. pm-expression:
  72.       cast-expression
  73.       pm-expression %C,1%.* %C,5%cast-expression
  74.       pm-expression %C,1%->*%C,5% cast-expression
  75.  
  76. cast-expression:
  77.       unary-expression
  78.       %C,1%(%C,5%Type-name%C,1%)%C,5% cast-expression
  79.  
  80. unary-expression:
  81.       postfix-expression
  82.       %C,1%++%C,5% unary-expression
  83.       %C,1%--%C,5% unary-expression
  84.       unary-operator cast-expression
  85.       %C,1%SIZEOF%C,5% unary-expression
  86.       %C,1%SIZEOF (%C,5%type-name%C,1%)%C,5%
  87.       new-expression
  88.       delete-expression
  89.  
  90. unary-operator: one of
  91.  %C,1%*   &   +   -   !   ~
  92.  
  93. new-expression:
  94.       [%C,1%::%C,5%] [%C,1%NEW%C,5% new-placement]
  95.                  new-type-name [new-initializer]
  96.       [%C,1%::%C,5%] [%C,1%NEW%C,5% new-placement]
  97.                  %C,1%(%C,5% type-name %C,1%)%C,5% [new-initializer]
  98.  
  99. new-placement:
  100.       %C,1%(%C,5% expression list %C,1%)%C,5%
  101.  
  102. new-type-name:
  103.       type-specifier-list [new-declarator]
  104.  
  105. new-declarator:
  106.       %C,1%*%C,5% [pointer-cv-qualifier-list] [new-declarator]
  107.       qualified-class-specifier %C,1%:: *%C,5% [cv-qualifier-list]
  108.                                     [new-declarator]
  109.       [new-declarator] %C,1%[%C,5% expression %C,1%]%C,5%
  110.  
  111. new-initializer:
  112.       %C,1%(%C,5% [expression-list] %C,1%)%C,5%
  113.  
  114. delete-expression:
  115.       [%C,1%::%C,5%] %C,1%DELETE%C,5% cast-expression
  116.       [%C,1%::%C,5%] %C,1%DELETE []%C,5% cast-expression
  117.  
  118. postfix-expression:
  119.       primary-expression
  120.       postfix-expression %C,1%[%C,5% expression %C,1%]%C,5%
  121.       postfix-expression %C,1%(%C,5% [expression-list] %C,1%)%C,5%
  122.       simple-type-specifier %C,1%(%C,5% [expression-list] %C,1%)%C,5%
  123.       postfix-expression %C,1%.%C,5% name-expression
  124.       postfix-expression %C,1%->%C,5% name-expression
  125.       postfix-expression %C,1%++%C,5%
  126.       postfix-expression %C,1%--%C,5%
  127.  
  128. expression-list:
  129.       assignment-expression
  130.       expression-list %C,1%,%C,5% assignment-expression
  131.  
  132. primary-expression:
  133.       literal
  134.       %C,1%this%C,5%
  135.       %C,1%::%C,5% identifier
  136.       %C,1%::%C,5% operator-function-name
  137.       %C,1%::%C,5% qualified-name
  138.       %C,1%(%C,5% expression %C,1%)%C,5%
  139.       name-expression
  140.  
  141. name-expression:
  142.       identifier
  143.       operator-function-name
  144.       conversion-function-name
  145.       ~ class-name
  146.       qualified-name
  147.  
  148. qualified-name:
  149.       nested-class-specifier %C,1%::%C,5% name-expression
  150.  
  151. literal:
  152.       integer-constant
  153.       character-constant
  154.       floating-constant
  155.       string-literal
  156.  
  157. %F,15,GRAMMAR.MNU%Grammar_Summary_Menu / %F,15,GRAMMAR.1%Previous / %F,15,GRAMMAR.3%Next
  158.