llvm-gcc-4.2-2.9/gcc/cp/parser.c
/* Parse a delete-expression.

   delete-expression:
     :: [opt] delete cast-expression
     :: [opt] delete [ ] cast-expression

   Returns a representation of the expression.  */
Parse a delete-expression.

Returns a representation of the expression.
Parse a delete - expression . Returns a representation of the expression .
static tree
cp_parser_delete_expression (cp_parser* parser)
{
  bool global_scope_p;
  bool array_p;
  tree expression;
  global_scope_p
    = (cp_parser_global_scope_opt (parser,
				   false)
       != NULL_TREE);
  cp_parser_require_keyword (parser, RID_DELETE, "`delete'");
  if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_SQUARE))
    {
      cp_lexer_consume_token (parser->lexer);
      cp_parser_require (parser, CPP_CLOSE_SQUARE, "`]'");
      array_p = true;
    }
  else
    array_p = false;
  expression = cp_parser_simple_cast_expression (parser);
  if (cp_parser_non_integral_constant_expression (parser, "`delete'"))
    return error_mark_node;
  return delete_sanity (expression, NULL_TREE, array_p, global_scope_p);
}
static tree cp_parser_delete_expression ( cp_parser * parser ) { bool global_scope_p ; bool array_p ; tree expression ; global_scope_p = ( cp_parser_global_scope_opt ( parser , false ) != NULL_TREE ) ; cp_parser_require_keyword ( parser , RID_DELETE , " " ) ; if ( cp_lexer_next_token_is ( parser -> lexer , CPP_OPEN_SQUARE ) ) { cp_lexer_consume_token ( parser -> lexer ) ; cp_parser_require ( parser , CPP_CLOSE_SQUARE , " " ) ; array_p = true ; } else array_p = false ; expression = cp_parser_simple_cast_expression ( parser ) ; if ( cp_parser_non_integral_constant_expression ( parser , " " ) ) return error_mark_node ; return delete_sanity ( expression , NULL_TREE , array_p , global_scope_p ) ; }
Parse a delete-expression.
Parse a delete - expression .
/* Look for the optional `::' operator.  */ /*current_scope_valid_p=*/ /* Look for the `delete' keyword.  */ /* See if the array syntax is in use.  */ /* Consume the `[' token.  */ /* Look for the `]' token.  */ /* Remember that this is the `[]' construct.  */ /* Parse the cast-expression.  */ /* A delete-expression may not appear in an integral constant
     expression.  */