Table 3 - A partial grammar for a simplified form of
init-declarator-list in C++.
init-declarator-list =
init-declarator { "," init-declarator } .
init-declarator =
declarator [ initializer ] .
declarator =
direct-declarator | ptr-operator declarator .
direct-declarator =
( declarator-id | "(" declarator ")" ) { array_suffix | function_suffix } .
declarator-id =
identifier | other-id .
other-id =
conversion-function-id |
operator-function-id |
"~" class-name |
qualified-id |
template-id .
array_suffix =
"[" [ constant-expression ] "]" .
function_suffix =
"(" [ parameter-clause ] ")" cv-qualifier-seq .
ptr-operator =
"&" | [ class-name "::" ] "*" cv-qualifier-seq .
cv-qualifier-seq =
{ cv-qualifier } .