[PATCH] Fix old-style quotations in C++ parser
Volker Reichelt
v.reichelt@netcologne.de
Fri Mar 28 23:14:00 GMT 2008
There's a mixture of quotation styles for tokens and keywords in parser.c:
Sometimes the old-style `...' is used, and sometimes the newer locale-aware
version %<...%>. The following (mostly mechanical) patch changes the old
quotations to the new style.
While preparing the patch I noticed the following typo in
cp_parser_asm_specification_opt:
/* Look for the `)'. */
cp_parser_require (parser, CPP_CLOSE_PAREN, "`('");
^
Ouch!
This is also fixed by the patch.
For the ChangeLog I subsumed all affected 83 functions under cp_parser_*.
Is this OK, or should I put every single function in there?
Bootstrapped and regtested on i686-pc-linux-gnu.
Ok for mainline?
Regards,
Volker
:ADDPATCH C++:
2008-03-28 Volker Reichelt <v.reichelt@netcologne.de>
* parser.c (cp_parser_asm_specification_opt): Print CPP_CLOSE_PAREN
as `)', not as `('.
(cp_parser_*): Fix quotation.
========================================================================
--- gcc/cp/parser.c 2008-03-03 08:07:30 +0100
+++ gcc/cp/parser.c 2008-03-21 21:33:48 +0100
@@ -2545,7 +2545,7 @@ static void
cp_parser_consume_semicolon_at_end_of_statement (cp_parser *parser)
{
/* Look for the trailing `;'. */
- if (!cp_parser_require (parser, CPP_SEMICOLON, "`;'"))
+ if (!cp_parser_require (parser, CPP_SEMICOLON, "%<;%>"))
{
/* If there is additional (erroneous) input, skip to the end of
the statement. */
@@ -3199,7 +3199,7 @@ cp_parser_primary_expression (cp_parser
parser->greater_than_is_operator_p
= saved_greater_than_is_operator_p;
/* Consume the `)'. */
- if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'"))
+ if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>"))
cp_parser_skip_to_end_of_statement (parser);
return expr;
@@ -3230,8 +3230,7 @@ cp_parser_primary_expression (cp_parser
return error_mark_node;
}
/* Pointers cannot appear in constant-expressions. */
- if (cp_parser_non_integral_constant_expression (parser,
- "`this'"))
+ if (cp_parser_non_integral_constant_expression (parser, "%<this%>"))
return error_mark_node;
return finish_this_expr ();
@@ -3263,20 +3262,20 @@ cp_parser_primary_expression (cp_parser
`va_arg'. Consume the `__builtin_va_arg' token. */
cp_lexer_consume_token (parser->lexer);
/* Look for the opening `('. */
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
/* Now, parse the assignment-expression. */
expression = cp_parser_assignment_expression (parser,
/*cast_p=*/false);
/* Look for the `,'. */
- cp_parser_require (parser, CPP_COMMA, "`,'");
+ cp_parser_require (parser, CPP_COMMA, "%<,%>");
/* Parse the type-id. */
type = cp_parser_type_id (parser);
/* Look for the closing `)'. */
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
/* Using `va_arg' in a constant-expression is not
allowed. */
if (cp_parser_non_integral_constant_expression (parser,
- "`va_arg'"))
+ "%<va_arg%>"))
return error_mark_node;
return build_x_va_arg (expression, type);
}
@@ -3991,7 +3990,7 @@ cp_parser_nested_name_specifier_opt (cp_
type_p,
is_declaration);
/* Look for the `::' token. */
- cp_parser_require (parser, CPP_SCOPE, "`::'");
+ cp_parser_require (parser, CPP_SCOPE, "%<::%>");
/* If we found what we wanted, we keep going; otherwise, we're
done. */
@@ -4307,18 +4306,18 @@ cp_parser_postfix_expression (cp_parser
= "types may not be defined in casts";
/* Look for the opening `<'. */
- cp_parser_require (parser, CPP_LESS, "`<'");
+ cp_parser_require (parser, CPP_LESS, "%<<%>");
/* Parse the type to which we are casting. */
type = cp_parser_type_id (parser);
/* Look for the closing `>'. */
- cp_parser_require (parser, CPP_GREATER, "`>'");
+ cp_parser_require (parser, CPP_GREATER, "%<>%>");
/* Restore the old message. */
parser->type_definition_forbidden_message = saved_message;
/* And the expression which is being cast. */
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
expression = cp_parser_expression (parser, /*cast_p=*/true);
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
/* Only type conversions to integral or enumeration types
can be used in constant-expressions. */
@@ -4363,7 +4362,7 @@ cp_parser_postfix_expression (cp_parser
/* Consume the `typeid' token. */
cp_lexer_consume_token (parser->lexer);
/* Look for the `(' token. */
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
/* Types cannot be defined in a `typeid' expression. */
saved_message = parser->type_definition_forbidden_message;
parser->type_definition_forbidden_message
@@ -4379,7 +4378,7 @@ cp_parser_postfix_expression (cp_parser
/* Look for the `)' token. Otherwise, we can't be sure that
we're not looking at an expression: consider `typeid (int
(3))', for example. */
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
/* If all went well, simply lookup the type-id. */
if (cp_parser_parse_definitely (parser))
postfix_expression = get_typeid (type);
@@ -4393,13 +4392,13 @@ cp_parser_postfix_expression (cp_parser
/* Compute its typeid. */
postfix_expression = build_typeid (expression);
/* Look for the `)' token. */
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
}
/* Restore the saved message. */
parser->type_definition_forbidden_message = saved_message;
/* `typeid' may not appear in an integral constant expression. */
if (cp_parser_non_integral_constant_expression(parser,
- "`typeid' operator"))
+ "%<typeid%> operator"))
return error_mark_node;
}
break;
@@ -4454,9 +4453,9 @@ cp_parser_postfix_expression (cp_parser
type = cp_parser_type_id (parser);
parser->in_type_id_in_expr_p = saved_in_type_id_in_expr_p;
/* Look for the `)'. */
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
/* Look for the `{'. */
- cp_parser_require (parser, CPP_OPEN_BRACE, "`{'");
+ cp_parser_require (parser, CPP_OPEN_BRACE, "%<{%>");
/* If things aren't going well, there's no need to
keep going. */
if (!cp_parser_error_occurred (parser))
@@ -4469,7 +4468,7 @@ cp_parser_postfix_expression (cp_parser
if (cp_lexer_next_token_is (parser->lexer, CPP_COMMA))
cp_lexer_consume_token (parser->lexer);
/* Look for the final `}'. */
- cp_parser_require (parser, CPP_CLOSE_BRACE, "`}'");
+ cp_parser_require (parser, CPP_CLOSE_BRACE, "%<}%>");
}
/* If that worked, we're definitely looking at a
compound-literal expression. */
@@ -4775,7 +4774,7 @@ cp_parser_postfix_open_square_expression
index = cp_parser_expression (parser, /*cast_p=*/false);
/* Look for the closing `]'. */
- cp_parser_require (parser, CPP_CLOSE_SQUARE, "`]'");
+ cp_parser_require (parser, CPP_CLOSE_SQUARE, "%<]%>");
/* Build the ARRAY_REF. */
postfix_expression = grok_array_decl (postfix_expression, index);
@@ -4955,7 +4954,7 @@ cp_parser_postfix_dot_deref_expression (
constant-expressions. */
if (!for_offsetof
&& (cp_parser_non_integral_constant_expression
- (parser, token_type == CPP_DEREF ? "'->'" : "`.'")))
+ (parser, token_type == CPP_DEREF ? "%<->%>" : "%<.%>")))
postfix_expression = error_mark_node;
return postfix_expression;
@@ -5003,7 +5002,7 @@ cp_parser_parenthesized_expression_list
if (non_constant_p)
*non_constant_p = false;
- if (!cp_parser_require (parser, CPP_OPEN_PAREN, "`('"))
+ if (!cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>"))
return error_mark_node;
/* Within a parenthesized expression, a `>' token is always
@@ -5083,7 +5082,7 @@ cp_parser_parenthesized_expression_list
cp_lexer_consume_token (parser->lexer);
}
- if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'"))
+ if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>"))
{
int ending;
@@ -5160,7 +5159,7 @@ cp_parser_pseudo_destructor_name (cp_par
/*check_dependency_p=*/false,
/*is_declaration=*/true);
/* Look for the `::' token. */
- cp_parser_require (parser, CPP_SCOPE, "`::'");
+ cp_parser_require (parser, CPP_SCOPE, "%<::%>");
}
/* If the next token is not a `~', then there might be some
additional qualification. */
@@ -5186,13 +5185,13 @@ cp_parser_pseudo_destructor_name (cp_par
return;
/* Look for the `::' token. */
- cp_parser_require (parser, CPP_SCOPE, "`::'");
+ cp_parser_require (parser, CPP_SCOPE, "%<::%>");
}
else
*scope = NULL_TREE;
/* Look for the `~'. */
- cp_parser_require (parser, CPP_COMPL, "`~'");
+ cp_parser_require (parser, CPP_COMPL, "%<~%>");
/* Look for the type-name again. We are not responsible for
checking that it matches the first type-name. */
*type = cp_parser_nonclass_name (parser);
@@ -5368,13 +5367,13 @@ cp_parser_unary_expression (cp_parser *p
switch (unary_operator)
{
case INDIRECT_REF:
- non_constant_p = "`*'";
+ non_constant_p = "%<*%>";
expression = build_x_indirect_ref (cast_expression, "unary *",
tf_warning_or_error);
break;
case ADDR_EXPR:
- non_constant_p = "`&'";
+ non_constant_p = "%<&%>";
/* Fall through. */
case BIT_NOT_EXPR:
expression = build_x_unary_op (unary_operator, cast_expression,
@@ -5384,7 +5383,7 @@ cp_parser_unary_expression (cp_parser *p
case PREINCREMENT_EXPR:
case PREDECREMENT_EXPR:
non_constant_p = (unary_operator == PREINCREMENT_EXPR
- ? "`++'" : "`--'");
+ ? "%<++%>" : "%<--%>");
/* Fall through. */
case UNARY_PLUS_EXPR:
case NEGATE_EXPR:
@@ -5462,7 +5461,7 @@ cp_parser_new_expression (cp_parser* par
/*current_scope_valid_p=*/false)
!= NULL_TREE);
/* Look for the `new' operator. */
- cp_parser_require_keyword (parser, RID_NEW, "`new'");
+ cp_parser_require_keyword (parser, RID_NEW, "%<new%>");
/* There's no easy way to tell a new-placement from the
`( type-id )' construct. */
cp_parser_parse_tentatively (parser);
@@ -5481,7 +5480,7 @@ cp_parser_new_expression (cp_parser* par
/* Parse the type-id. */
type = cp_parser_type_id (parser);
/* Look for the closing `)'. */
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
/* There should not be a direct-new-declarator in this production,
but GCC used to allowed this, so we check and emit a sensible error
message for this case. */
@@ -5505,7 +5504,7 @@ cp_parser_new_expression (cp_parser* par
/* A new-expression may not appear in an integral constant
expression. */
- if (cp_parser_non_integral_constant_expression (parser, "`new'"))
+ if (cp_parser_non_integral_constant_expression (parser, "%<new%>"))
return error_mark_node;
/* Create a representation of the new-expression. */
@@ -5660,7 +5659,7 @@ cp_parser_direct_new_declarator (cp_pars
tree expression;
/* Look for the opening `['. */
- cp_parser_require (parser, CPP_OPEN_SQUARE, "`['");
+ cp_parser_require (parser, CPP_OPEN_SQUARE, "%<[%>");
/* The first expression is not required to be constant. */
if (!declarator)
{
@@ -5692,7 +5691,7 @@ cp_parser_direct_new_declarator (cp_pars
/*allow_non_constant=*/false,
NULL);
/* Look for the closing `]'. */
- cp_parser_require (parser, CPP_CLOSE_SQUARE, "`]'");
+ cp_parser_require (parser, CPP_CLOSE_SQUARE, "%<]%>");
/* Add this bound to the declarator. */
declarator = make_array_declarator (declarator, expression);
@@ -5749,14 +5748,14 @@ cp_parser_delete_expression (cp_parser*
/*current_scope_valid_p=*/false)
!= NULL_TREE);
/* Look for the `delete' keyword. */
- cp_parser_require_keyword (parser, RID_DELETE, "`delete'");
+ cp_parser_require_keyword (parser, RID_DELETE, "%<delete%>");
/* See if the array syntax is in use. */
if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_SQUARE))
{
/* Consume the `[' token. */
cp_lexer_consume_token (parser->lexer);
/* Look for the `]' token. */
- cp_parser_require (parser, CPP_CLOSE_SQUARE, "`]'");
+ cp_parser_require (parser, CPP_CLOSE_SQUARE, "%<]%>");
/* Remember that this is the `[]' construct. */
array_p = true;
}
@@ -5768,7 +5767,7 @@ cp_parser_delete_expression (cp_parser*
/* A delete-expression may not appear in an integral constant
expression. */
- if (cp_parser_non_integral_constant_expression (parser, "`delete'"))
+ if (cp_parser_non_integral_constant_expression (parser, "%<delete%>"))
return error_mark_node;
return delete_sanity (expression, NULL_TREE, array_p, global_scope_p);
@@ -5845,7 +5844,7 @@ cp_parser_cast_expression (cp_parser *pa
/* Look for the type-id. */
type = cp_parser_type_id (parser);
/* Look for the closing `)'. */
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
parser->in_type_id_in_expr_p = saved_in_type_id_in_expr_p;
}
@@ -6118,7 +6117,7 @@ cp_parser_question_colon_clause (cp_pars
expr = cp_parser_expression (parser, /*cast_p=*/false);
/* The next token should be a `:'. */
- cp_parser_require (parser, CPP_COLON, "`:'");
+ cp_parser_require (parser, CPP_COLON, "%<:%>");
/* Parse the assignment-expression. */
assignment_expr = cp_parser_assignment_expression (parser, /*cast_p=*/false);
@@ -6416,11 +6415,11 @@ cp_parser_builtin_offsetof (cp_parser *p
/* Consume the "__builtin_offsetof" token. */
cp_lexer_consume_token (parser->lexer);
/* Consume the opening `('. */
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
/* Parse the type-id. */
type = cp_parser_type_id (parser);
/* Look for the `,'. */
- cp_parser_require (parser, CPP_COMMA, "`,'");
+ cp_parser_require (parser, CPP_COMMA, "%<,%>");
/* Build the (type *)null that begins the traditional offsetof macro. */
expr = build_static_cast (build_pointer_type (type), null_pointer_node,
@@ -6454,7 +6453,7 @@ cp_parser_builtin_offsetof (cp_parser *p
default:
/* Error. We know the following require will fail, but
that gives the proper error message. */
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
cp_parser_skip_to_closing_parenthesis (parser, true, false, true);
expr = error_mark_node;
goto failure;
@@ -6548,7 +6547,7 @@ cp_parser_trait_expr (cp_parser* parser,
/* Consume the token. */
cp_lexer_consume_token (parser->lexer);
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
type1 = cp_parser_type_id (parser);
@@ -6565,7 +6564,7 @@ cp_parser_trait_expr (cp_parser* parser,
if (binary)
{
- cp_parser_require (parser, CPP_COMMA, "`,'");
+ cp_parser_require (parser, CPP_COMMA, "%<,%>");
type2 = cp_parser_type_id (parser);
@@ -6581,7 +6580,7 @@ cp_parser_trait_expr (cp_parser* parser,
/*initialized=*/0, /*attrlist=*/NULL);
}
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
/* Complete the trait expression, which may mean either processing
the trait expr now or saving it for template instantiation. */
@@ -6826,7 +6825,7 @@ cp_parser_label_for_labeled_statement (c
}
/* Require the `:' token. */
- cp_parser_require (parser, CPP_COLON, "`:'");
+ cp_parser_require (parser, CPP_COLON, "%<:%>");
}
/* Parse an expression-statement.
@@ -6888,7 +6887,7 @@ cp_parser_compound_statement (cp_parser
tree compound_stmt;
/* Consume the `{'. */
- if (!cp_parser_require (parser, CPP_OPEN_BRACE, "`{'"))
+ if (!cp_parser_require (parser, CPP_OPEN_BRACE, "%<{%>"))
return error_mark_node;
/* Begin the compound-statement. */
compound_stmt = begin_compound_stmt (in_try ? BCS_TRY_BLOCK : 0);
@@ -6900,7 +6899,7 @@ cp_parser_compound_statement (cp_parser
/* Finish the compound-statement. */
finish_compound_stmt (compound_stmt);
/* Consume the `}'. */
- cp_parser_require (parser, CPP_CLOSE_BRACE, "`}'");
+ cp_parser_require (parser, CPP_CLOSE_BRACE, "%<}%>");
return compound_stmt;
}
@@ -6980,7 +6979,7 @@ cp_parser_selection_statement (cp_parser
tree condition;
/* Look for the `('. */
- if (!cp_parser_require (parser, CPP_OPEN_PAREN, "`('"))
+ if (!cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>"))
{
cp_parser_skip_to_end_of_statement (parser);
return error_mark_node;
@@ -6995,7 +6994,7 @@ cp_parser_selection_statement (cp_parser
/* Parse the condition. */
condition = cp_parser_condition (parser);
/* Look for the `)'. */
- if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'"))
+ if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>"))
cp_parser_skip_to_closing_parenthesis (parser, true, false,
/*consume_paren=*/true);
@@ -7138,7 +7137,7 @@ cp_parser_condition (cp_parser* parser)
looks like a decl-specifier-seq and a declarator -- but then
there is no `=', so this is an expression. */
- cp_parser_require (parser, CPP_EQ, "`='");
+ cp_parser_require (parser, CPP_EQ, "%<=%>");
/* If we did see an `=', then we are looking at a declaration
for sure. */
if (cp_parser_parse_definitely (parser))
@@ -7260,13 +7259,13 @@ cp_parser_iteration_statement (cp_parser
/* Begin the while-statement. */
statement = begin_while_stmt ();
/* Look for the `('. */
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
/* Parse the condition. */
condition = cp_parser_condition (parser);
finish_while_stmt_cond (condition, statement);
check_empty_body (parser, "while");
/* Look for the `)'. */
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
/* Parse the dependent statement. */
parser->in_statement = IN_ITERATION_STMT;
cp_parser_already_scoped_statement (parser);
@@ -7288,17 +7287,17 @@ cp_parser_iteration_statement (cp_parser
parser->in_statement = in_statement;
finish_do_body (statement);
/* Look for the `while' keyword. */
- cp_parser_require_keyword (parser, RID_WHILE, "`while'");
+ cp_parser_require_keyword (parser, RID_WHILE, "%<while%>");
/* Look for the `('. */
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
/* Parse the expression. */
expression = cp_parser_expression (parser, /*cast_p=*/false);
/* We're done with the do-statement. */
finish_do_stmt (expression, statement);
/* Look for the `)'. */
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
/* Look for the `;'. */
- cp_parser_require (parser, CPP_SEMICOLON, "`;'");
+ cp_parser_require (parser, CPP_SEMICOLON, "%<;%>");
}
break;
@@ -7310,7 +7309,7 @@ cp_parser_iteration_statement (cp_parser
/* Begin the for-statement. */
statement = begin_for_stmt ();
/* Look for the `('. */
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
/* Parse the initialization. */
cp_parser_for_init_statement (parser);
finish_for_init_stmt (statement);
@@ -7320,7 +7319,7 @@ cp_parser_iteration_statement (cp_parser
condition = cp_parser_condition (parser);
finish_for_cond (condition, statement);
/* Look for the `;'. */
- cp_parser_require (parser, CPP_SEMICOLON, "`;'");
+ cp_parser_require (parser, CPP_SEMICOLON, "%<;%>");
/* If there's an expression, process it. */
if (cp_lexer_next_token_is_not (parser->lexer, CPP_CLOSE_PAREN))
@@ -7328,7 +7327,7 @@ cp_parser_iteration_statement (cp_parser
finish_for_expr (expression, statement);
check_empty_body (parser, "for");
/* Look for the `)'. */
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
/* Parse the body of the for-statement. */
parser->in_statement = IN_ITERATION_STMT;
@@ -7583,9 +7582,9 @@ cp_parser_already_scoped_statement (cp_p
{
/* Avoid calling cp_parser_compound_statement, so that we
don't create a new scope. Do everything else by hand. */
- cp_parser_require (parser, CPP_OPEN_BRACE, "`{'");
+ cp_parser_require (parser, CPP_OPEN_BRACE, "%<{%>");
cp_parser_statement_seq_opt (parser, NULL_TREE);
- cp_parser_require (parser, CPP_CLOSE_BRACE, "`}'");
+ cp_parser_require (parser, CPP_CLOSE_BRACE, "%<}%>");
}
}
@@ -8023,7 +8022,7 @@ cp_parser_simple_declaration (cp_parser*
}
/* Consume the `;'. */
- cp_parser_require (parser, CPP_SEMICOLON, "`;'");
+ cp_parser_require (parser, CPP_SEMICOLON, "%<;%>");
done:
pop_deferring_access_checks ();
@@ -8375,7 +8374,7 @@ cp_parser_linkage_specification (cp_pars
tree linkage;
/* Look for the `extern' keyword. */
- cp_parser_require_keyword (parser, RID_EXTERN, "`extern'");
+ cp_parser_require_keyword (parser, RID_EXTERN, "%<extern%>");
/* Look for the string-literal. */
linkage = cp_parser_string_literal (parser, false, false);
@@ -8405,7 +8404,7 @@ cp_parser_linkage_specification (cp_pars
/* Parse the declarations. */
cp_parser_declaration_seq_opt (parser);
/* Look for the closing `}'. */
- cp_parser_require (parser, CPP_CLOSE_BRACE, "`}'");
+ cp_parser_require (parser, CPP_CLOSE_BRACE, "%<}%>");
}
/* Otherwise, there's just one declaration. */
else
@@ -8446,7 +8445,7 @@ cp_parser_static_assert(cp_parser *parse
/* Look for the `static_assert' keyword. */
if (!cp_parser_require_keyword (parser, RID_STATIC_ASSERT,
- "`static_assert'"))
+ "%<static_assert%>"))
return;
/* We know we are in a static assertion; commit to any tentative
@@ -8455,7 +8454,7 @@ cp_parser_static_assert(cp_parser *parse
cp_parser_commit_to_tentative_parse (parser);
/* Parse the `(' starting the static assertion condition. */
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
/* Parse the constant-expression. */
condition =
@@ -8464,7 +8463,7 @@ cp_parser_static_assert(cp_parser *parse
/*non_constant_p=*/NULL);
/* Parse the separating `,'. */
- cp_parser_require (parser, CPP_COMMA, "`,'");
+ cp_parser_require (parser, CPP_COMMA, "%<,%>");
/* Parse the string-literal message. */
message = cp_parser_string_literal (parser,
@@ -8472,14 +8471,14 @@ cp_parser_static_assert(cp_parser *parse
/*wide_ok=*/true);
/* A `)' completes the static assertion. */
- if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'"))
+ if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>"))
cp_parser_skip_to_closing_parenthesis (parser,
/*recovering=*/true,
/*or_comma=*/false,
/*consume_paren=*/true);
/* A semicolon terminates the declaration. */
- cp_parser_require (parser, CPP_SEMICOLON, "`;'");
+ cp_parser_require (parser, CPP_SEMICOLON, "%<;%>");
/* Complete the static assertion, which may mean either processing
the static assert now or saving it for template instantiation. */
@@ -8501,7 +8500,7 @@ cp_parser_decltype (cp_parser *parser)
bool saved_non_integral_constant_expression_p;
/* Look for the `decltype' token. */
- if (!cp_parser_require_keyword (parser, RID_DECLTYPE, "`decltype'"))
+ if (!cp_parser_require_keyword (parser, RID_DECLTYPE, "%<decltype%>"))
return error_mark_node;
/* Types cannot be defined in a `decltype' expression. Save away the
@@ -8524,7 +8523,7 @@ cp_parser_decltype (cp_parser *parser)
++skip_evaluation;
/* Parse the opening `('. */
- if (!cp_parser_require (parser, CPP_OPEN_PAREN, "`('"))
+ if (!cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>"))
return error_mark_node;
/* First, try parsing an id-expression. */
@@ -8641,7 +8640,7 @@ cp_parser_decltype (cp_parser *parser)
}
/* Parse to the closing `)'. */
- if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'"))
+ if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>"))
{
cp_parser_skip_to_closing_parenthesis (parser, true, false,
/*consume_paren=*/true);
@@ -8670,7 +8669,7 @@ cp_parser_conversion_function_id (cp_par
tree pushed_scope = NULL_TREE;
/* Look for the `operator' token. */
- if (!cp_parser_require_keyword (parser, RID_OPERATOR, "`operator'"))
+ if (!cp_parser_require_keyword (parser, RID_OPERATOR, "%<operator%>"))
return error_mark_node;
/* When we parse the conversion-type-id, the current scope will be
reset. However, we need that information in able to look up the
@@ -9005,7 +9004,7 @@ static tree
cp_parser_operator_function_id (cp_parser* parser)
{
/* Look for the `operator' keyword. */
- if (!cp_parser_require_keyword (parser, RID_OPERATOR, "`operator'"))
+ if (!cp_parser_require_keyword (parser, RID_OPERATOR, "%<operator%>"))
return error_mark_node;
/* And then the name of the operator itself. */
return cp_parser_operator (parser);
@@ -9061,7 +9060,7 @@ cp_parser_operator (cp_parser* parser)
/* Consume the `[' token. */
cp_lexer_consume_token (parser->lexer);
/* Look for the `]' token. */
- cp_parser_require (parser, CPP_CLOSE_SQUARE, "`]'");
+ cp_parser_require (parser, CPP_CLOSE_SQUARE, "%<]%>");
id = ansi_opname (op == NEW_EXPR
? VEC_NEW_EXPR : VEC_DELETE_EXPR);
}
@@ -9220,14 +9219,14 @@ cp_parser_operator (cp_parser* parser)
/* Consume the `('. */
cp_lexer_consume_token (parser->lexer);
/* Look for the matching `)'. */
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
return ansi_opname (CALL_EXPR);
case CPP_OPEN_SQUARE:
/* Consume the `['. */
cp_lexer_consume_token (parser->lexer);
/* Look for the matching `]'. */
- cp_parser_require (parser, CPP_CLOSE_SQUARE, "`]'");
+ cp_parser_require (parser, CPP_CLOSE_SQUARE, "%<]%>");
return ansi_opname (ARRAY_REF);
default:
@@ -9513,7 +9512,7 @@ cp_parser_type_parameter (cp_parser* par
/* Look for a keyword to tell us what kind of parameter this is. */
token = cp_parser_require (parser, CPP_KEYWORD,
- "`class', `typename', or `template'");
+ "%<class%>, %<typename%>, or %<template%>");
if (!token)
return error_mark_node;
@@ -9584,13 +9583,13 @@ cp_parser_type_parameter (cp_parser* par
tree default_argument;
/* Look for the `<'. */
- cp_parser_require (parser, CPP_LESS, "`<'");
+ cp_parser_require (parser, CPP_LESS, "%<<%>");
/* Parse the template-parameter-list. */
parameter_list = cp_parser_template_parameter_list (parser);
/* Look for the `>'. */
- cp_parser_require (parser, CPP_GREATER, "`>'");
+ cp_parser_require (parser, CPP_GREATER, "%<>%>");
/* Look for the `class' keyword. */
- cp_parser_require_keyword (parser, RID_CLASS, "`class'");
+ cp_parser_require_keyword (parser, RID_CLASS, "%<class%>");
/* If the next token is an ellipsis, we have a template
argument pack. */
if (cp_lexer_next_token_is (parser->lexer, CPP_ELLIPSIS))
@@ -9817,7 +9816,7 @@ cp_parser_template_id (cp_parser *parser
else
{
/* Look for the `<' that starts the template-argument-list. */
- if (!cp_parser_require (parser, CPP_LESS, "`<'"))
+ if (!cp_parser_require (parser, CPP_LESS, "%<<%>"))
{
pop_deferring_access_checks ();
return error_mark_node;
@@ -10425,7 +10424,7 @@ cp_parser_explicit_instantiation (cp_par
}
/* Look for the `template' keyword. */
- cp_parser_require_keyword (parser, RID_TEMPLATE, "`template'");
+ cp_parser_require_keyword (parser, RID_TEMPLATE, "%<template%>");
/* Let the front end know that we are processing an explicit
instantiation. */
begin_explicit_instantiation ();
@@ -10507,11 +10506,11 @@ cp_parser_explicit_specialization (cp_pa
{
bool need_lang_pop;
/* Look for the `template' keyword. */
- cp_parser_require_keyword (parser, RID_TEMPLATE, "`template'");
+ cp_parser_require_keyword (parser, RID_TEMPLATE, "%<template%>");
/* Look for the `<'. */
- cp_parser_require (parser, CPP_LESS, "`<'");
+ cp_parser_require (parser, CPP_LESS, "%<<%>");
/* Look for the `>'. */
- cp_parser_require (parser, CPP_GREATER, "`>'");
+ cp_parser_require (parser, CPP_GREATER, "%<>%>");
/* We have processed another parameter list. */
++parser->num_template_parameter_lists;
/* [temp]
@@ -11473,7 +11472,7 @@ cp_parser_enum_specifier (cp_parser* par
cp_parser_enumerator_list (parser, type);
/* Consume the final '}'. */
- cp_parser_require (parser, CPP_CLOSE_BRACE, "`}'");
+ cp_parser_require (parser, CPP_CLOSE_BRACE, "%<}%>");
/* Look for trailing attributes to apply to this enumeration, and
apply them if appropriate. */
@@ -11651,7 +11650,7 @@ cp_parser_namespace_definition (cp_parse
is_inline = false;
/* Look for the `namespace' keyword. */
- cp_parser_require_keyword (parser, RID_NAMESPACE, "`namespace'");
+ cp_parser_require_keyword (parser, RID_NAMESPACE, "%<namespace%>");
/* Get the name of the namespace. We do not attempt to distinguish
between an original-namespace-definition and an
@@ -11666,7 +11665,7 @@ cp_parser_namespace_definition (cp_parse
attribs = cp_parser_attributes_opt (parser);
/* Look for the `{' to start the namespace. */
- cp_parser_require (parser, CPP_OPEN_BRACE, "`{'");
+ cp_parser_require (parser, CPP_OPEN_BRACE, "%<{%>");
/* Start the namespace. */
push_namespace (identifier);
@@ -11698,7 +11697,7 @@ cp_parser_namespace_definition (cp_parse
/* Finish the namespace. */
pop_namespace ();
/* Look for the final `}'. */
- cp_parser_require (parser, CPP_CLOSE_BRACE, "`}'");
+ cp_parser_require (parser, CPP_CLOSE_BRACE, "%<}%>");
}
/* Parse a namespace-body.
@@ -11724,7 +11723,7 @@ cp_parser_namespace_alias_definition (cp
tree namespace_specifier;
/* Look for the `namespace' keyword. */
- cp_parser_require_keyword (parser, RID_NAMESPACE, "`namespace'");
+ cp_parser_require_keyword (parser, RID_NAMESPACE, "%<namespace%>");
/* Look for the identifier. */
identifier = cp_parser_identifier (parser);
if (identifier == error_mark_node)
@@ -11740,12 +11739,12 @@ cp_parser_namespace_alias_definition (cp
cp_lexer_consume_token (parser->lexer);
return;
}
- cp_parser_require (parser, CPP_EQ, "`='");
+ cp_parser_require (parser, CPP_EQ, "%<=%>");
/* Look for the qualified-namespace-specifier. */
namespace_specifier
= cp_parser_qualified_namespace_specifier (parser);
/* Look for the `;' token. */
- cp_parser_require (parser, CPP_SEMICOLON, "`;'");
+ cp_parser_require (parser, CPP_SEMICOLON, "%<;%>");
/* Register the alias in the symbol table. */
do_namespace_alias (identifier, namespace_specifier);
@@ -11804,7 +11803,7 @@ cp_parser_using_declaration (cp_parser*
else
{
/* Look for the `using' keyword. */
- cp_parser_require_keyword (parser, RID_USING, "`using'");
+ cp_parser_require_keyword (parser, RID_USING, "%<using%>");
/* Peek at the next token. */
token = cp_lexer_peek_token (parser->lexer);
@@ -11901,7 +11900,7 @@ cp_parser_using_declaration (cp_parser*
}
/* Look for the final `;'. */
- cp_parser_require (parser, CPP_SEMICOLON, "`;'");
+ cp_parser_require (parser, CPP_SEMICOLON, "%<;%>");
return true;
}
@@ -11919,9 +11918,9 @@ cp_parser_using_directive (cp_parser* pa
tree attribs;
/* Look for the `using' keyword. */
- cp_parser_require_keyword (parser, RID_USING, "`using'");
+ cp_parser_require_keyword (parser, RID_USING, "%<using%>");
/* And the `namespace' keyword. */
- cp_parser_require_keyword (parser, RID_NAMESPACE, "`namespace'");
+ cp_parser_require_keyword (parser, RID_NAMESPACE, "%<namespace%>");
/* Look for the optional `::' operator. */
cp_parser_global_scope_opt (parser, /*current_scope_valid_p=*/false);
/* And the optional nested-name-specifier. */
@@ -11937,7 +11936,7 @@ cp_parser_using_directive (cp_parser* pa
/* Update the symbol table. */
parse_using_directive (namespace_decl, attribs);
/* Look for the final `;'. */
- cp_parser_require (parser, CPP_SEMICOLON, "`;'");
+ cp_parser_require (parser, CPP_SEMICOLON, "%<;%>");
}
/* Parse an asm-definition.
@@ -11970,7 +11969,7 @@ cp_parser_asm_definition (cp_parser* par
bool invalid_outputs_p = false;
/* Look for the `asm' keyword. */
- cp_parser_require_keyword (parser, RID_ASM, "`asm'");
+ cp_parser_require_keyword (parser, RID_ASM, "%<asm%>");
/* See if the next token is `volatile'. */
if (cp_parser_allow_gnu_extensions_p (parser)
&& cp_lexer_next_token_is_keyword (parser->lexer, RID_VOLATILE))
@@ -11981,7 +11980,7 @@ cp_parser_asm_definition (cp_parser* par
cp_lexer_consume_token (parser->lexer);
}
/* Look for the opening `('. */
- if (!cp_parser_require (parser, CPP_OPEN_PAREN, "`('"))
+ if (!cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>"))
return;
/* Look for the string. */
string = cp_parser_string_literal (parser, false, false);
@@ -12064,10 +12063,10 @@ cp_parser_asm_definition (cp_parser* par
}
}
/* Look for the closing `)'. */
- if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'"))
+ if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>"))
cp_parser_skip_to_closing_parenthesis (parser, true, false,
/*consume_paren=*/true);
- cp_parser_require (parser, CPP_SEMICOLON, "`;'");
+ cp_parser_require (parser, CPP_SEMICOLON, "%<;%>");
if (!invalid_inputs_p && !invalid_outputs_p)
{
@@ -12682,7 +12681,7 @@ cp_parser_direct_declarator (cp_parser*
*ctor_dtor_or_conv_p = *ctor_dtor_or_conv_p < 0;
first = false;
/* Consume the `)'. */
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
/* Parse the cv-qualifier-seq. */
cv_quals = cp_parser_cv_qualifier_seq_opt (parser);
@@ -12726,7 +12725,7 @@ cp_parser_direct_declarator (cp_parser*
parser->in_type_id_in_expr_p = saved_in_type_id_in_expr_p;
first = false;
/* Expect a `)'. */
- if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'"))
+ if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>"))
declarator = cp_error_declarator;
if (declarator == cp_error_declarator)
break;
@@ -12777,7 +12776,7 @@ cp_parser_direct_declarator (cp_parser*
else
bounds = NULL_TREE;
/* Look for the closing `]'. */
- if (!cp_parser_require (parser, CPP_CLOSE_SQUARE, "`]'"))
+ if (!cp_parser_require (parser, CPP_CLOSE_SQUARE, "%<]%>"))
{
declarator = cp_error_declarator;
break;
@@ -13072,7 +13071,7 @@ cp_parser_ptr_operator (cp_parser* parse
/* If we found it, and the next token is a `*', then we are
indeed looking at a pointer-to-member operator. */
if (!cp_parser_error_occurred (parser)
- && cp_parser_require (parser, CPP_MULT, "`*'"))
+ && cp_parser_require (parser, CPP_MULT, "%<*%>"))
{
/* Indicate that the `*' operator was used. */
code = INDIRECT_REF;
@@ -13394,7 +13393,7 @@ cp_parser_parameter_declaration_clause (
cp_lexer_consume_token (parser->lexer);
/* Expect an ellipsis. */
ellipsis_p
- = (cp_parser_require (parser, CPP_ELLIPSIS, "`...'") != NULL);
+ = (cp_parser_require (parser, CPP_ELLIPSIS, "%<...%>") != NULL);
}
/* It might also be `...' if the optional trailing `,' was
omitted. */
@@ -13998,7 +13997,7 @@ cp_parser_initializer_clause (cp_parser*
cp_lexer_consume_token (parser->lexer);
}
/* Now, there should be a trailing `}'. */
- cp_parser_require (parser, CPP_CLOSE_BRACE, "`}'");
+ cp_parser_require (parser, CPP_CLOSE_BRACE, "%<}%>");
}
return initializer;
@@ -14298,7 +14297,7 @@ cp_parser_class_specifier (cp_parser* pa
}
/* Look for the `{'. */
- if (!cp_parser_require (parser, CPP_OPEN_BRACE, "`{'"))
+ if (!cp_parser_require (parser, CPP_OPEN_BRACE, "%<{%>"))
{
pop_deferring_access_checks ();
return error_mark_node;
@@ -14345,7 +14344,7 @@ cp_parser_class_specifier (cp_parser* pa
cp_parser_member_specification_opt (parser);
/* Look for the trailing `}'. */
- cp_parser_require (parser, CPP_CLOSE_BRACE, "`}'");
+ cp_parser_require (parser, CPP_CLOSE_BRACE, "%<}%>");
/* We get better error messages by noticing a common problem: a
missing trailing `;'. */
token = cp_lexer_peek_token (parser->lexer);
@@ -14884,7 +14883,7 @@ cp_parser_member_specification_opt (cp_p
/* Remember which access-specifier is active. */
current_access_specifier = token->u.value;
/* Look for the `:'. */
- cp_parser_require (parser, CPP_COLON, "`:'");
+ cp_parser_require (parser, CPP_COLON, "%<:%>");
break;
default:
@@ -15303,7 +15302,7 @@ cp_parser_member_declaration (cp_parser*
}
}
- cp_parser_require (parser, CPP_SEMICOLON, "`;'");
+ cp_parser_require (parser, CPP_SEMICOLON, "%<;%>");
}
/* Parse a pure-specifier.
@@ -15320,7 +15319,7 @@ cp_parser_pure_specifier (cp_parser* par
cp_token *token;
/* Look for the `=' token. */
- if (!cp_parser_require (parser, CPP_EQ, "`='"))
+ if (!cp_parser_require (parser, CPP_EQ, "%<=%>"))
return error_mark_node;
/* Look for the `0' token. */
token = cp_lexer_consume_token (parser->lexer);
@@ -15352,7 +15351,7 @@ static tree
cp_parser_constant_initializer (cp_parser* parser)
{
/* Look for the `=' token. */
- if (!cp_parser_require (parser, CPP_EQ, "`='"))
+ if (!cp_parser_require (parser, CPP_EQ, "%<=%>"))
return error_mark_node;
/* It is invalid to write:
@@ -15369,7 +15368,7 @@ cp_parser_constant_initializer (cp_parse
/* Skip the initializer. */
cp_parser_skip_to_closing_brace (parser);
/* Look for the trailing `}'. */
- cp_parser_require (parser, CPP_CLOSE_BRACE, "`}'");
+ cp_parser_require (parser, CPP_CLOSE_BRACE, "%<}%>");
return error_mark_node;
}
@@ -15403,7 +15402,7 @@ cp_parser_base_clause (cp_parser* parser
tree bases = NULL_TREE;
/* Look for the `:' that begins the list. */
- cp_parser_require (parser, CPP_COLON, "`:'");
+ cp_parser_require (parser, CPP_COLON, "%<:%>");
/* Scan the base-specifier-list. */
while (true)
@@ -15609,7 +15608,7 @@ cp_parser_exception_specification_opt (c
cp_lexer_consume_token (parser->lexer);
/* Look for the `('. */
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
/* Peek at the next token. */
token = cp_lexer_peek_token (parser->lexer);
@@ -15631,7 +15630,7 @@ cp_parser_exception_specification_opt (c
type_id_list = empty_except_spec;
/* Look for the `)'. */
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
return type_id_list;
}
@@ -15690,7 +15689,7 @@ cp_parser_try_block (cp_parser* parser)
{
tree try_block;
- cp_parser_require_keyword (parser, RID_TRY, "`try'");
+ cp_parser_require_keyword (parser, RID_TRY, "%<try%>");
try_block = begin_try_block ();
cp_parser_compound_statement (parser, NULL, true);
finish_try_block (try_block);
@@ -15713,7 +15712,7 @@ cp_parser_function_try_block (cp_parser*
bool ctor_initializer_p;
/* Look for the `try' keyword. */
- if (!cp_parser_require_keyword (parser, RID_TRY, "`try'"))
+ if (!cp_parser_require_keyword (parser, RID_TRY, "%<try%>"))
return false;
/* Let the rest of the front end know where we are. */
try_block = begin_function_try_block (&compound_stmt);
@@ -15763,12 +15762,12 @@ cp_parser_handler (cp_parser* parser)
tree handler;
tree declaration;
- cp_parser_require_keyword (parser, RID_CATCH, "`catch'");
+ cp_parser_require_keyword (parser, RID_CATCH, "%<catch%>");
handler = begin_handler ();
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
declaration = cp_parser_exception_declaration (parser);
finish_handler_parms (declaration, handler);
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
cp_parser_compound_statement (parser, NULL, false);
finish_handler (handler);
}
@@ -15838,7 +15837,7 @@ cp_parser_throw_expression (cp_parser* p
tree expression;
cp_token* token;
- cp_parser_require_keyword (parser, RID_THROW, "`throw'");
+ cp_parser_require_keyword (parser, RID_THROW, "%<throw%>");
token = cp_lexer_peek_token (parser->lexer);
/* Figure out whether or not there is an assignment-expression
following the "throw" keyword. */
@@ -15883,13 +15882,13 @@ cp_parser_asm_specification_opt (cp_pars
/* Consume the `asm' token. */
cp_lexer_consume_token (parser->lexer);
/* Look for the `('. */
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
/* Look for the string-literal. */
asm_specification = cp_parser_string_literal (parser, false, false);
/* Look for the `)'. */
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`('");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
return asm_specification;
}
@@ -15933,7 +15932,7 @@ cp_parser_asm_operand_list (cp_parser* p
name = build_string (IDENTIFIER_LENGTH (name),
IDENTIFIER_POINTER (name));
/* Look for the closing `]'. */
- cp_parser_require (parser, CPP_CLOSE_SQUARE, "`]'");
+ cp_parser_require (parser, CPP_CLOSE_SQUARE, "%<]%>");
}
else
name = NULL_TREE;
@@ -15941,11 +15940,11 @@ cp_parser_asm_operand_list (cp_parser* p
string_literal = cp_parser_string_literal (parser, false, false);
/* Look for the `('. */
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
/* Parse the expression. */
expression = cp_parser_expression (parser, /*cast_p=*/false);
/* Look for the `)'. */
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
if (name == error_mark_node
|| string_literal == error_mark_node
@@ -16029,8 +16028,8 @@ cp_parser_attributes_opt (cp_parser* par
/* Consume the `__attribute__' keyword. */
cp_lexer_consume_token (parser->lexer);
/* Look for the two `(' tokens. */
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
/* Peek at the next token. */
token = cp_lexer_peek_token (parser->lexer);
@@ -16043,8 +16042,8 @@ cp_parser_attributes_opt (cp_parser* par
attribute_list = NULL;
/* Look for the two `)' tokens. */
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
/* Add these new attributes to the list. */
attributes = chainon (attributes, attribute_list);
@@ -16174,7 +16173,7 @@ static void
cp_parser_label_declaration (cp_parser* parser)
{
/* Look for the `__label__' keyword. */
- cp_parser_require_keyword (parser, RID_LABEL, "`__label__'");
+ cp_parser_require_keyword (parser, RID_LABEL, "%<__label__%>");
while (true)
{
@@ -16191,11 +16190,11 @@ cp_parser_label_declaration (cp_parser*
if (cp_lexer_next_token_is (parser->lexer, CPP_SEMICOLON))
break;
/* Look for the `,' separating the label declarations. */
- cp_parser_require (parser, CPP_COMMA, "`,'");
+ cp_parser_require (parser, CPP_COMMA, "%<,%>");
}
/* Look for the final `;'. */
- cp_parser_require (parser, CPP_SEMICOLON, "`;'");
+ cp_parser_require (parser, CPP_SEMICOLON, "%<;%>");
}
/* Support Functions */
@@ -16729,7 +16728,7 @@ cp_parser_constructor_declarator_p (cp_p
takes one parameter (of type `int') and returns a value of type
`S::S'. */
if (constructor_p
- && cp_parser_require (parser, CPP_OPEN_PAREN, "`('"))
+ && cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>"))
{
if (cp_lexer_next_token_is_not (parser->lexer, CPP_CLOSE_PAREN)
&& cp_lexer_next_token_is_not (parser->lexer, CPP_ELLIPSIS)
@@ -16936,11 +16935,11 @@ cp_parser_template_declaration_after_exp
bool need_lang_pop;
/* Look for the `template' keyword. */
- if (!cp_parser_require_keyword (parser, RID_TEMPLATE, "`template'"))
+ if (!cp_parser_require_keyword (parser, RID_TEMPLATE, "%<template%>"))
return;
/* And the `<'. */
- if (!cp_parser_require (parser, CPP_LESS, "`<'"))
+ if (!cp_parser_require (parser, CPP_LESS, "%<<%>"))
return;
if (at_class_scope_p () && current_function_decl)
{
@@ -17178,7 +17177,7 @@ cp_parser_single_declaration (cp_parser*
/* Look for a trailing `;' after the declaration. */
if (!function_definition_p
&& (decl == error_mark_node
- || !cp_parser_require (parser, CPP_SEMICOLON, "`;'")))
+ || !cp_parser_require (parser, CPP_SEMICOLON, "%<;%>")))
cp_parser_skip_to_end_of_block_or_statement (parser);
return decl;
@@ -18342,7 +18341,7 @@ cp_parser_objc_message_expression (cp_pa
cp_lexer_consume_token (parser->lexer); /* Eat '['. */
receiver = cp_parser_objc_message_receiver (parser);
messageargs = cp_parser_objc_message_args (parser);
- cp_parser_require (parser, CPP_CLOSE_SQUARE, "`]'");
+ cp_parser_require (parser, CPP_CLOSE_SQUARE, "%<]%>");
return objc_build_message_expr (build_tree_list (receiver, messageargs));
}
@@ -18414,7 +18413,7 @@ cp_parser_objc_message_args (cp_parser*
return build_tree_list (selector, NULL_TREE);
maybe_unary_selector_p = false;
- cp_parser_require (parser, CPP_COLON, "`:'");
+ cp_parser_require (parser, CPP_COLON, "%<:%>");
arg = cp_parser_assignment_expression (parser, false);
sel_args
@@ -18455,9 +18454,9 @@ cp_parser_objc_encode_expression (cp_par
tree type;
cp_lexer_consume_token (parser->lexer); /* Eat '@encode'. */
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
type = complete_type (cp_parser_type_id (parser));
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
if (!type)
{
@@ -18476,9 +18475,9 @@ cp_parser_objc_defs_expression (cp_parse
tree name;
cp_lexer_consume_token (parser->lexer); /* Eat '@defs'. */
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
name = cp_parser_identifier (parser);
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
return objc_get_class_ivars (name);
}
@@ -18496,9 +18495,9 @@ cp_parser_objc_protocol_expression (cp_p
tree proto;
cp_lexer_consume_token (parser->lexer); /* Eat '@protocol'. */
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
proto = cp_parser_identifier (parser);
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
return objc_build_protocol_expr (proto);
}
@@ -18526,7 +18525,7 @@ cp_parser_objc_selector_expression (cp_p
cp_token *token;
cp_lexer_consume_token (parser->lexer); /* Eat '@selector'. */
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
token = cp_lexer_peek_token (parser->lexer);
while (cp_parser_objc_selector_p (token->type) || token->type == CPP_COLON
@@ -18573,7 +18572,7 @@ cp_parser_objc_selector_expression (cp_p
}
finish_selector:
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
return objc_build_selector_expr (sel_seq);
}
@@ -18659,7 +18658,7 @@ cp_parser_objc_protocol_refs_opt (cp_par
{
cp_lexer_consume_token (parser->lexer); /* Eat '<'. */
protorefs = cp_parser_objc_identifier_list (parser);
- cp_parser_require (parser, CPP_GREATER, "`>'");
+ cp_parser_require (parser, CPP_GREATER, "%<>%>");
}
return protorefs;
@@ -18748,7 +18747,7 @@ cp_parser_objc_typename (cp_parser* pars
if (cp_lexer_next_token_is_not (parser->lexer, CPP_CLOSE_PAREN))
cp_type = cp_parser_type_id (parser);
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
typename = build_tree_list (proto_quals, cp_type);
}
@@ -18820,7 +18819,7 @@ cp_parser_objc_method_keyword_params (cp
return selector;
maybe_unary_selector_p = false;
- cp_parser_require (parser, CPP_COLON, "`:'");
+ cp_parser_require (parser, CPP_COLON, "%<:%>");
typename = cp_parser_objc_typename (parser);
identifier = cp_parser_identifier (parser);
@@ -19150,7 +19149,7 @@ cp_parser_objc_superclass_or_category (c
{
cp_lexer_consume_token (parser->lexer); /* Eat '('. */
*categ = cp_parser_identifier (parser);
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
}
}
@@ -19270,7 +19269,7 @@ cp_parser_objc_try_catch_finally_stateme
location_t location;
tree stmt;
- cp_parser_require_keyword (parser, RID_AT_TRY, "`@try'");
+ cp_parser_require_keyword (parser, RID_AT_TRY, "%<@try%>");
location = cp_lexer_peek_token (parser->lexer)->location;
/* NB: The @try block needs to be wrapped in its own STATEMENT_LIST
node, lest it get absorbed into the surrounding block. */
@@ -19284,13 +19283,13 @@ cp_parser_objc_try_catch_finally_stateme
tree parm;
cp_lexer_consume_token (parser->lexer);
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
parmdecl = cp_parser_parameter_declaration (parser, false, NULL);
parm = grokdeclarator (parmdecl->declarator,
&parmdecl->decl_specifiers,
PARM, /*initialized=*/0,
/*attrlist=*/NULL);
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
objc_begin_catch_clause (parm);
cp_parser_compound_statement (parser, NULL, false);
objc_finish_catch_clause ();
@@ -19322,12 +19321,12 @@ cp_parser_objc_synchronized_statement (c
location_t location;
tree lock, stmt;
- cp_parser_require_keyword (parser, RID_AT_SYNCHRONIZED, "`@synchronized'");
+ cp_parser_require_keyword (parser, RID_AT_SYNCHRONIZED, "%<@synchronized%>");
location = cp_lexer_peek_token (parser->lexer)->location;
- cp_parser_require (parser, CPP_OPEN_PAREN, "`('");
+ cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>");
lock = cp_parser_expression (parser, false);
- cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'");
+ cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>");
/* NB: The @synchronized block needs to be wrapped in its own STATEMENT_LIST
node, lest it get absorbed into the surrounding block. */
@@ -19348,7 +19347,7 @@ static tree
cp_parser_objc_throw_statement (cp_parser *parser) {
tree expr = NULL_TREE;
- cp_parser_require_keyword (parser, RID_AT_THROW, "`@throw'");
+ cp_parser_require_keyword (parser, RID_AT_THROW, "%<@throw%>");
if (cp_lexer_next_token_is_not (parser->lexer, CPP_SEMICOLON))
expr = cp_parser_assignment_expression (parser, false);
@@ -19513,7 +19512,7 @@ cp_parser_omp_var_list_no_open (cp_parse
cp_lexer_consume_token (parser->lexer);
}
- if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'"))
+ if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>"))
{
int ending;
@@ -19537,7 +19536,7 @@ cp_parser_omp_var_list_no_open (cp_parse
static tree
cp_parser_omp_var_list (cp_parser *parser, enum omp_clause_code kind, tree list)
{
- if (cp_parser_require (parser, CPP_OPEN_PAREN, "`('"))
+ if (cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>"))
return cp_parser_omp_var_list_no_open (parser, kind, list);
return list;
}
@@ -19551,7 +19550,7 @@ cp_parser_omp_clause_default (cp_parser
enum omp_clause_default_kind kind = OMP_CLAUSE_DEFAULT_UNSPECIFIED;
tree c;
- if (!cp_parser_require (parser, CPP_OPEN_PAREN, "`('"))
+ if (!cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>"))
return list;
if (cp_lexer_next_token_is (parser->lexer, CPP_NAME))
{
@@ -19584,7 +19583,7 @@ cp_parser_omp_clause_default (cp_parser
cp_parser_error (parser, "expected %<none%> or %<shared%>");
}
- if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'"))
+ if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>"))
cp_parser_skip_to_closing_parenthesis (parser, /*recovering=*/true,
/*or_comma=*/false,
/*consume_paren=*/true);
@@ -19608,13 +19607,13 @@ cp_parser_omp_clause_if (cp_parser *pars
{
tree t, c;
- if (!cp_parser_require (parser, CPP_OPEN_PAREN, "`('"))
+ if (!cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>"))
return list;
t = cp_parser_condition (parser);
if (t == error_mark_node
- || !cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'"))
+ || !cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>"))
cp_parser_skip_to_closing_parenthesis (parser, /*recovering=*/true,
/*or_comma=*/false,
/*consume_paren=*/true);
@@ -19651,13 +19650,13 @@ cp_parser_omp_clause_num_threads (cp_par
{
tree t, c;
- if (!cp_parser_require (parser, CPP_OPEN_PAREN, "`('"))
+ if (!cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>"))
return list;
t = cp_parser_expression (parser, false);
if (t == error_mark_node
- || !cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'"))
+ || !cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>"))
cp_parser_skip_to_closing_parenthesis (parser, /*recovering=*/true,
/*or_comma=*/false,
/*consume_paren=*/true);
@@ -19698,7 +19697,7 @@ cp_parser_omp_clause_reduction (cp_parse
enum tree_code code;
tree nlist, c;
- if (!cp_parser_require (parser, CPP_OPEN_PAREN, "`('"))
+ if (!cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>"))
return list;
switch (cp_lexer_peek_token (parser->lexer)->type)
@@ -19728,7 +19727,8 @@ cp_parser_omp_clause_reduction (cp_parse
code = TRUTH_ORIF_EXPR;
break;
default:
- cp_parser_error (parser, "`+', `*', `-', `&', `^', `|', `&&', or `||'");
+ cp_parser_error (parser, "%<+%>, %<*%>, %<-%>, %<&%>, %<^%>, %<|%>, "
+ "%<&&%>, or %<||%>");
resync_fail:
cp_parser_skip_to_closing_parenthesis (parser, /*recovering=*/true,
/*or_comma=*/false,
@@ -19737,7 +19737,7 @@ cp_parser_omp_clause_reduction (cp_parse
}
cp_lexer_consume_token (parser->lexer);
- if (!cp_parser_require (parser, CPP_COLON, "`:'"))
+ if (!cp_parser_require (parser, CPP_COLON, "%<:%>"))
goto resync_fail;
nlist = cp_parser_omp_var_list_no_open (parser, OMP_CLAUSE_REDUCTION, list);
@@ -19813,10 +19813,10 @@ cp_parser_omp_clause_schedule (cp_parser
else
OMP_CLAUSE_SCHEDULE_CHUNK_EXPR (c) = t;
- if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'"))
+ if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>"))
goto resync_fail;
}
- else if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "`,' or `)'"))
+ else if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "%<,%> or %<)%>"))
goto resync_fail;
check_no_duplicate_clause (list, OMP_CLAUSE_SCHEDULE, "schedule");
@@ -20094,7 +20094,7 @@ cp_parser_omp_critical (cp_parser *parse
name = cp_parser_identifier (parser);
if (name == error_mark_node
- || !cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'"))
+ || !cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>"))
cp_parser_skip_to_closing_parenthesis (parser, /*recovering=*/true,
/*or_comma=*/false,
/*consume_paren=*/true);
@@ -20137,7 +20137,7 @@ cp_parser_omp_for_loop (cp_parser *parse
return NULL;
}
loc = cp_lexer_consume_token (parser->lexer)->location;
- if (!cp_parser_require (parser, CPP_OPEN_PAREN, "`('"))
+ if (!cp_parser_require (parser, CPP_OPEN_PAREN, "%<(%>"))
return NULL;
init = decl = NULL;
@@ -20165,7 +20165,7 @@ cp_parser_omp_for_loop (cp_parser *parse
attributes = cp_parser_attributes_opt (parser);
asm_specification = cp_parser_asm_specification_opt (parser);
- cp_parser_require (parser, CPP_EQ, "`='");
+ cp_parser_require (parser, CPP_EQ, "%<=%>");
if (cp_parser_parse_definitely (parser))
{
tree pushed_scope;
@@ -20195,19 +20195,19 @@ cp_parser_omp_for_loop (cp_parser *parse
if (decl == NULL)
init = cp_parser_expression (parser, false);
}
- cp_parser_require (parser, CPP_SEMICOLON, "`;'");
+ cp_parser_require (parser, CPP_SEMICOLON, "%<;%>");
pre_body = pop_stmt_list (pre_body);
cond = NULL;
if (cp_lexer_next_token_is_not (parser->lexer, CPP_SEMICOLON))
cond = cp_parser_condition (parser);
- cp_parser_require (parser, CPP_SEMICOLON, "`;'");
+ cp_parser_require (parser, CPP_SEMICOLON, "%<;%>");
incr = NULL;
if (cp_lexer_next_token_is_not (parser->lexer, CPP_CLOSE_PAREN))
incr = cp_parser_expression (parser, false);
- if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "`)'"))
+ if (!cp_parser_require (parser, CPP_CLOSE_PAREN, "%<)%>"))
cp_parser_skip_to_closing_parenthesis (parser, /*recovering=*/true,
/*or_comma=*/false,
/*consume_paren=*/true);
@@ -20298,7 +20298,7 @@ cp_parser_omp_sections_scope (cp_parser
bool error_suppress = false;
cp_token *tok;
- if (!cp_parser_require (parser, CPP_OPEN_BRACE, "`{'"))
+ if (!cp_parser_require (parser, CPP_OPEN_BRACE, "%<{%>"))
return NULL_TREE;
stmt = push_stmt_list ();
@@ -20353,7 +20353,7 @@ cp_parser_omp_sections_scope (cp_parser
substmt = build1 (OMP_SECTION, void_type_node, substmt);
add_stmt (substmt);
}
- cp_parser_require (parser, CPP_CLOSE_BRACE, "`}'");
+ cp_parser_require (parser, CPP_CLOSE_BRACE, "%<}%>");
substmt = pop_stmt_list (stmt);
========================================================================
More information about the Gcc-patches
mailing list