Table 3: An EBNFgrammar for new-expression
new-expression = [ "::" ] "new" [ new-placement ] allocation-type-id [ new-initializer ] . new-placement = "(" expression-list ")" . expression-list = expression { "," expression } . expression = name | integer-literal . allocation-type-id = new-type-id | "(" type-id ")" . new-type-id = type-specifier-seq new-declarator . type-id = type-specifier-seq abstract-declarator . type-specifier-seq = type-specifier { type-specifier } . new-declarator = direct-new-declarator | ptr-operator new-declarator . direct-new-declarator = "[" expression "]" { "[" constant-expression "]" } . new-initializer = "(" [ expression-list ] ")" .