next up previous
suivant: Statements monter: Grammaire de C++ précédent: Basic concepts

Expressions


primary-expression:  

literal
this
:: identifier
:: operator-function-id
:: qualified-id
( expression )
id-expression

id-expression:
unqualified-id
qualified-id

id-expression:
unqualified-id
qualified-id

unqualified-id:
identifier
operator-function-id
conversion-function-id
~ class-name
template-id

qualified-id:
nested-name-specifier template$_{\mathsf{opt}}$ unqualified-id
nested-name-specifier:
class-or-namespace-name :: nested-name-specifier$_{\mathsf{opt}}$

class-or-namespace-name:
class-name
namespace-name
postfix-expression:
primary-expression
postfix-expression [ expression ]
postfix-expression ( expression-list$_{\mathsf{opt}}$ )
simple-type-specifier ( expression-list$_{\mathsf{opt}}$ )
postfix-expression . template$_{\mathsf{opt}}$ ::$_{\mathsf{opt}}$ id-expression
postfix-expression > template$_{\mathsf{opt}}$ ::$_{\mathsf{opt}}$ id-expression
postfix-expression . pseudo-destructor-name
postfix-expression -> pseudo-destructor-name
postfix-expression ++
postfix-expression -
dynamic_cast < type-id > ( expression )
static_cast < type-id > ( expression )
reinterpret_cast < type-id > ( expression )
const_cast < type-id > ( expression )
typeid ( expression )
typeid ( type-id )
expression-list:
assignment-expression
expression-list , assignment-expression

pseudo-destructor-name:
::$_{\mathsf{opt}}$ nested-name-specifier$_{\mathsf{opt}}$ type-name ::   type-name
::$_{\mathsf{opt}}$ nested-name-specifier$_{\mathsf{opt}}$   type-name

unary-expression:
postfix-expression
++ cast-expression
- cast-expression
unary-operator cast-expression
sizeof unary-expression
sizeof ( type-id )
new-expression
delete-expression

unary-operator: one of
* & + - ! ~

new-expression:
::$_{\mathsf{opt}}$ new new-placement$_{\mathsf{opt}}$ new-type-id new-initializer$_{\mathsf{opt}}$
::$_{\mathsf{opt}}$ new new-placement$_{\mathsf{opt}}$ ( type-id ) new-initializer$_{\mathsf{opt}}$

new-placement:
( expression-list )
new-type-id:
type-specifier-seq new-declarator$_{\mathsf{opt}}$

new-declarator:
ptr-operator new-declarator$_{\mathsf{opt}}$
direct-new-declarator

direct-new-declarator:
[ expression ]
direct-new-declarator [ constant-expression ]
new-initializer:
( expression-list$_{\mathsf{opt}}$ )
delete-expression:
::$_{\mathsf{opt}}$ delete cast-expression
::$_{\mathsf{opt}}$ delete [ ] cast-expression

cast-expression:
unary-expression
( type-id ) cast-expression

pm-expression:
cast-expression
pm-expression .* cast-expression
pm-expression ->* cast-expression

multiplicative-expression:
pm-expression
multiplicative-expression * pm-expression
multiplicative-expression / pm-expression
multiplicative-expression % pm-expression

additive-expression:
multiplicative-expression
additive-expression + multiplicative-expression
additive-expression - multiplicative-expression

shift-expression:
additive-expression
shift-expression << additive-expression
shift-expression >> additive-expression

relational-expression:
shift-expression
relational-expression < shift-expression
relational-expression > shift-expression
relational-expression <= shift-expression
relational-expression >= shift-expression

equality-expression:
relational-expression
equality-expression == relational-expression
equality-expression != relational-expression

and-expression:
equality-expression
and-expression & equality-expression

exclusive-or-expression:
and-expression
exclusive-or-expression ^ and-expression

inclusive-or-expression:
exclusive-or-expression
inclusive-or-expression | exclusive-or-expression

logical-and-expression:
inclusive-or-expression
logical-and-expression && inclusive-or-expression

logical-or-expression:
logical-and-expression
logical-or-expression || logical-and-expression

conditional-expression:
logical-or-expression
logical-or-expression ? expression : assignment-expression

assignment-expression:
conditional-expression
logical-or-expression assignment-operator assignment-expression
throw-expression

assignment-operator: one of
= *= /= %= += -= >>= <<= &= ^= |=
expression:
assignment-expression
expression , assignment-expression

constant-expression:
conditional-expression


next up previous
suivant: Statements monter: Grammaire de C++ précédent: Basic concepts
R Lalement
1999-09-16