From: arthur.cohen@embecosm.com
To: gcc-patches@gcc.gnu.org
Cc: gcc-rust@gcc.gnu.org,
Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Subject: [COMMITTED 024/101] gccrs: Replace TOK suffix with KW
Date: Tue, 30 Jan 2024 13:06:40 +0100 [thread overview]
Message-ID: <20240130121026.807464-27-arthur.cohen@embecosm.com> (raw)
In-Reply-To: <20240130121026.807464-2-arthur.cohen@embecosm.com>
From: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
TOK suffix was chosen to disambiguate some identifiers with c++ reserved
keyword. Even though this list lies within the rust-token header, this
macro is used in many context sometimes unrelated with the lexer and
tokens. This TOK suffix may appear surprising in such context.
gcc/rust/ChangeLog:
* lex/rust-token.h (enum PrimitiveCoreType): Change keyword suffix from
tok to kw.
* ast/rust-ast-collector.cc (TokenCollector::visit): Update suffix to
match the new declaration.
* lex/rust-lex.cc (Lexer::parse_raw_identifier): Likewise.
* parse/rust-parse-impl.h (can_tok_start_type): Likewise.
(Parser::parse_item): Likewise.
(Parser::parse_vis_item): Likewise.
(Parser::parse_extern_crate): Likewise.
(Parser::parse_function): Likewise.
(Parser::parse_function_qualifiers): Likewise.
(Parser::parse_struct): Likewise.
(Parser::parse_enum): Likewise.
(Parser::parse_static_item): Likewise.
(Parser::parse_trait_item): Likewise.
(Parser::parse_inherent_impl_item): Likewise.
(Parser::parse_trait_impl_item): Likewise.
(Parser::parse_extern_block): Likewise.
(Parser::parse_external_item): Likewise.
(Parser::parse_stmt): Likewise.
(Parser::parse_return_expr): Likewise.
(Parser::parse_match_expr): Likewise.
(Parser::parse_type): Likewise.
(Parser::parse_for_prefixed_type): Likewise.
(Parser::parse_type_no_bounds): Likewise.
(Parser::parse_stmt_or_expr): Likewise.
* parse/rust-parse.cc (peculiar_fragment_match_compatible): Likewie.
* util/rust-token-converter.cc (convert): Likewise.
Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
---
gcc/rust/ast/rust-ast-collector.cc | 30 +++---
gcc/rust/lex/rust-lex.cc | 2 +-
gcc/rust/lex/rust-token.h | 20 ++--
gcc/rust/parse/rust-parse-impl.h | 134 +++++++++++++-------------
gcc/rust/parse/rust-parse.cc | 18 ++--
gcc/rust/util/rust-token-converter.cc | 18 ++--
6 files changed, 111 insertions(+), 111 deletions(-)
diff --git a/gcc/rust/ast/rust-ast-collector.cc b/gcc/rust/ast/rust-ast-collector.cc
index 7d3d3e204f7..8f394e595ed 100644
--- a/gcc/rust/ast/rust-ast-collector.cc
+++ b/gcc/rust/ast/rust-ast-collector.cc
@@ -332,7 +332,7 @@ TokenCollector::visit (FunctionQualifiers &qualifiers)
push (Rust::Token::make (UNSAFE, qualifiers.get_locus ()));
if (qualifiers.is_extern ())
{
- push (Rust::Token::make (EXTERN_TOK, qualifiers.get_locus ()));
+ push (Rust::Token::make (EXTERN_KW, qualifiers.get_locus ()));
if (qualifiers.has_abi ())
{
push (Rust::Token::make_string (UNDEF_LOCATION,
@@ -1323,7 +1323,7 @@ TokenCollector::visit (RangeToInclExpr &expr)
void
TokenCollector::visit (ReturnExpr &expr)
{
- push (Rust::Token::make (RETURN_TOK, expr.get_locus ()));
+ push (Rust::Token::make (RETURN_KW, expr.get_locus ()));
if (expr.has_returned_expr ())
visit (expr.get_returned_expr ());
}
@@ -1463,7 +1463,7 @@ TokenCollector::visit (MatchCase &match_case)
void
TokenCollector::visit (MatchExpr &expr)
{
- push (Rust::Token::make (MATCH_TOK, expr.get_locus ()));
+ push (Rust::Token::make (MATCH_KW, expr.get_locus ()));
visit (expr.get_scrutinee_expr ());
push (Rust::Token::make (LEFT_CURLY, UNDEF_LOCATION));
newline ();
@@ -1609,7 +1609,7 @@ void
TokenCollector::visit (ExternCrate &crate)
{
visit_items_as_lines (crate.get_outer_attrs ());
- push (Rust::Token::make (EXTERN_TOK, crate.get_locus ()));
+ push (Rust::Token::make (EXTERN_KW, crate.get_locus ()));
push (Rust::Token::make (CRATE, UNDEF_LOCATION));
auto ref = crate.get_referenced_crate ();
push (Rust::Token::make_identifier (UNDEF_LOCATION, std::move (ref)));
@@ -1717,7 +1717,7 @@ TokenCollector::visit (Function &function)
auto qualifiers = function.get_qualifiers ();
visit (qualifiers);
- push (Rust::Token::make (FN_TOK, function.get_locus ()));
+ push (Rust::Token::make (FN_KW, function.get_locus ()));
auto name = function.get_function_name ().as_string ();
push (Rust::Token::make_identifier (UNDEF_LOCATION, std::move (name)));
if (function.has_generics ())
@@ -1778,7 +1778,7 @@ TokenCollector::visit (StructStruct &struct_item)
if (struct_item.has_visibility ())
visit (struct_item.get_visibility ());
auto struct_name = struct_item.get_identifier ().as_string ();
- push (Rust::Token::make (STRUCT_TOK, struct_item.get_locus ()));
+ push (Rust::Token::make (STRUCT_KW, struct_item.get_locus ()));
push (Rust::Token::make_identifier (UNDEF_LOCATION, std::move (struct_name)));
if (struct_item.has_generics ())
@@ -1800,7 +1800,7 @@ TokenCollector::visit (TupleStruct &tuple_struct)
{
visit_items_as_lines (tuple_struct.get_outer_attrs ());
auto struct_name = tuple_struct.get_identifier ().as_string ();
- push (Rust::Token::make (STRUCT_TOK, tuple_struct.get_locus ()));
+ push (Rust::Token::make (STRUCT_KW, tuple_struct.get_locus ()));
push (Rust::Token::make_identifier (UNDEF_LOCATION, std::move (struct_name)));
if (tuple_struct.has_generics ())
visit (tuple_struct.get_generic_params ());
@@ -1856,7 +1856,7 @@ TokenCollector::visit (Enum &enumeration)
visit_items_as_lines (enumeration.get_outer_attrs ());
if (enumeration.has_visibility ())
visit (enumeration.get_visibility ());
- push (Rust::Token::make (ENUM_TOK, enumeration.get_locus ()));
+ push (Rust::Token::make (ENUM_KW, enumeration.get_locus ()));
auto id = enumeration.get_identifier ().as_string ();
push (
Rust::Token::make_identifier (enumeration.get_locus (), std::move (id)));
@@ -1915,7 +1915,7 @@ void
TokenCollector::visit (StaticItem &item)
{
visit_items_as_lines (item.get_outer_attrs ());
- push (Rust::Token::make (STATIC_TOK, item.get_locus ()));
+ push (Rust::Token::make (STATIC_KW, item.get_locus ()));
if (item.is_mutable ())
push (Rust::Token::make (MUT, UNDEF_LOCATION));
@@ -1961,7 +1961,7 @@ TokenCollector::visit (TraitItemFunc &item)
auto func = item.get_trait_function_decl ();
auto id = func.get_identifier ().as_string ();
- push (Rust::Token::make (FN_TOK, item.get_locus ()));
+ push (Rust::Token::make (FN_KW, item.get_locus ()));
push (Rust::Token::make_identifier (UNDEF_LOCATION, std::move (id)));
push (Rust::Token::make (LEFT_PAREN, UNDEF_LOCATION));
@@ -2000,7 +2000,7 @@ TokenCollector::visit (TraitItemMethod &item)
auto method = item.get_trait_method_decl ();
auto id = method.get_identifier ().as_string ();
- push (Rust::Token::make (FN_TOK, item.get_locus ()));
+ push (Rust::Token::make (FN_KW, item.get_locus ()));
push (Rust::Token::make_identifier (UNDEF_LOCATION, std::move (id)));
push (Rust::Token::make (LEFT_PAREN, UNDEF_LOCATION));
@@ -2112,7 +2112,7 @@ TokenCollector::visit (ExternalStaticItem &item)
visit_items_as_lines (item.get_outer_attrs ());
if (item.has_visibility ())
visit (item.get_visibility ());
- push (Rust::Token::make (STATIC_TOK, item.get_locus ()));
+ push (Rust::Token::make (STATIC_KW, item.get_locus ()));
if (item.is_mut ())
push (Rust::Token::make (MUT, UNDEF_LOCATION));
push (Rust::Token::make_identifier (UNDEF_LOCATION, std::move (id)));
@@ -2131,7 +2131,7 @@ TokenCollector::visit (ExternalFunctionItem &function)
auto id = function.get_identifier ().as_string ();
- push (Rust::Token::make (FN_TOK, function.get_locus ()));
+ push (Rust::Token::make (FN_KW, function.get_locus ()));
push (Rust::Token::make_identifier (UNDEF_LOCATION, std::move (id)));
if (function.has_generics ())
visit (function.get_generic_params ());
@@ -2152,7 +2152,7 @@ void
TokenCollector::visit (ExternBlock &block)
{
visit_items_as_lines (block.get_outer_attrs ());
- push (Rust::Token::make (EXTERN_TOK, block.get_locus ()));
+ push (Rust::Token::make (EXTERN_KW, block.get_locus ()));
if (block.has_abi ())
{
@@ -2821,7 +2821,7 @@ TokenCollector::visit (BareFunctionType &type)
visit (type.get_function_qualifiers ());
- push (Rust::Token::make (FN_TOK, type.get_locus ()));
+ push (Rust::Token::make (FN_KW, type.get_locus ()));
push (Rust::Token::make (LEFT_PAREN, UNDEF_LOCATION));
visit_items_joined_by_separator (type.get_function_params (), COMMA);
diff --git a/gcc/rust/lex/rust-lex.cc b/gcc/rust/lex/rust-lex.cc
index 107dbad2ff9..2d41c114f73 100644
--- a/gcc/rust/lex/rust-lex.cc
+++ b/gcc/rust/lex/rust-lex.cc
@@ -1940,7 +1940,7 @@ Lexer::parse_raw_identifier (location_t loc)
using namespace Rust::Values;
std::set<std::string> invalid{
- Keywords::CRATE, Keywords::EXTERN_TOK, Keywords::SELF,
+ Keywords::CRATE, Keywords::EXTERN_KW, Keywords::SELF,
Keywords::SUPER, Keywords::SELF_ALIAS,
};
diff --git a/gcc/rust/lex/rust-token.h b/gcc/rust/lex/rust-token.h
index 5da8b6cd200..50513acb68d 100644
--- a/gcc/rust/lex/rust-token.h
+++ b/gcc/rust/lex/rust-token.h
@@ -162,11 +162,11 @@ enum PrimitiveCoreType
RS_TOKEN_KEYWORD (DO, "do") /* unused */ \
RS_TOKEN_KEYWORD (DYN, "dyn") \
RS_TOKEN_KEYWORD (ELSE, "else") \
- RS_TOKEN_KEYWORD (ENUM_TOK, "enum") \
- RS_TOKEN_KEYWORD (EXTERN_TOK, "extern") \
+ RS_TOKEN_KEYWORD (ENUM_KW, "enum") \
+ RS_TOKEN_KEYWORD (EXTERN_KW, "extern") \
RS_TOKEN_KEYWORD (FALSE_LITERAL, "false") \
- RS_TOKEN_KEYWORD (FINAL_TOK, "final") /* unused */ \
- RS_TOKEN_KEYWORD (FN_TOK, "fn") \
+ RS_TOKEN_KEYWORD (FINAL_KW, "final") /* unused */ \
+ RS_TOKEN_KEYWORD (FN_KW, "fn") \
RS_TOKEN_KEYWORD (FOR, "for") \
RS_TOKEN_KEYWORD (IF, "if") \
RS_TOKEN_KEYWORD (IMPL, "impl") \
@@ -174,20 +174,20 @@ enum PrimitiveCoreType
RS_TOKEN_KEYWORD (LET, "let") \
RS_TOKEN_KEYWORD (LOOP, "loop") \
RS_TOKEN_KEYWORD (MACRO, "macro") \
- RS_TOKEN_KEYWORD (MATCH_TOK, "match") \
+ RS_TOKEN_KEYWORD (MATCH_KW, "match") \
RS_TOKEN_KEYWORD (MOD, "mod") \
RS_TOKEN_KEYWORD (MOVE, "move") \
RS_TOKEN_KEYWORD (MUT, "mut") \
- RS_TOKEN_KEYWORD (OVERRIDE_TOK, "override") /* unused */ \
- RS_TOKEN_KEYWORD (PRIV, "priv") /* unused */ \
+ RS_TOKEN_KEYWORD (OVERRIDE_KW, "override") /* unused */ \
+ RS_TOKEN_KEYWORD (PRIV, "priv") /* unused */ \
RS_TOKEN_KEYWORD (PUB, "pub") \
RS_TOKEN_KEYWORD (REF, "ref") \
- RS_TOKEN_KEYWORD (RETURN_TOK, "return") \
+ RS_TOKEN_KEYWORD (RETURN_KW, "return") \
RS_TOKEN_KEYWORD (SELF_ALIAS, \
"Self") /* mrustc does not treat this as a reserved word*/ \
RS_TOKEN_KEYWORD (SELF, "self") \
- RS_TOKEN_KEYWORD (STATIC_TOK, "static") \
- RS_TOKEN_KEYWORD (STRUCT_TOK, "struct") \
+ RS_TOKEN_KEYWORD (STATIC_KW, "static") \
+ RS_TOKEN_KEYWORD (STRUCT_KW, "struct") \
RS_TOKEN_KEYWORD (SUPER, "super") \
RS_TOKEN_KEYWORD (TRAIT, "trait") \
RS_TOKEN_KEYWORD (TRUE_LITERAL, "true") \
diff --git a/gcc/rust/parse/rust-parse-impl.h b/gcc/rust/parse/rust-parse-impl.h
index 45c72e495c2..8b006142b16 100644
--- a/gcc/rust/parse/rust-parse-impl.h
+++ b/gcc/rust/parse/rust-parse-impl.h
@@ -160,8 +160,8 @@ can_tok_start_type (TokenId id)
case ASYNC:
case CONST:
case UNSAFE:
- case EXTERN_TOK:
- case FN_TOK:
+ case EXTERN_KW:
+ case FN_KW:
case IMPL:
case DYN:
case QUESTION_MARK:
@@ -1114,14 +1114,14 @@ Parser<ManagedTokenSource>::parse_item (bool called_from_statement)
return nullptr;
case PUB:
case MOD:
- case EXTERN_TOK:
+ case EXTERN_KW:
case USE:
- case FN_TOK:
+ case FN_KW:
case TYPE:
- case STRUCT_TOK:
- case ENUM_TOK:
+ case STRUCT_KW:
+ case ENUM_KW:
case CONST:
- case STATIC_TOK:
+ case STATIC_KW:
case AUTO:
case TRAIT:
case IMPL:
@@ -1302,7 +1302,7 @@ Parser<ManagedTokenSource>::parse_vis_item (AST::AttrVec outer_attrs)
{
case MOD:
return parse_module (std::move (vis), std::move (outer_attrs));
- case EXTERN_TOK:
+ case EXTERN_KW:
// lookahead to resolve syntactical production
t = lexer.peek_token (1);
@@ -1310,7 +1310,7 @@ Parser<ManagedTokenSource>::parse_vis_item (AST::AttrVec outer_attrs)
{
case CRATE:
return parse_extern_crate (std::move (vis), std::move (outer_attrs));
- case FN_TOK: // extern function
+ case FN_KW: // extern function
return parse_function (std::move (vis), std::move (outer_attrs));
case LEFT_CURLY: // extern block
return parse_extern_block (std::move (vis), std::move (outer_attrs));
@@ -1320,7 +1320,7 @@ Parser<ManagedTokenSource>::parse_vis_item (AST::AttrVec outer_attrs)
switch (t->get_id ())
{
- case FN_TOK:
+ case FN_KW:
return parse_function (std::move (vis), std::move (outer_attrs));
case LEFT_CURLY:
return parse_extern_block (std::move (vis),
@@ -1345,13 +1345,13 @@ Parser<ManagedTokenSource>::parse_vis_item (AST::AttrVec outer_attrs)
}
case USE:
return parse_use_decl (std::move (vis), std::move (outer_attrs));
- case FN_TOK:
+ case FN_KW:
return parse_function (std::move (vis), std::move (outer_attrs));
case TYPE:
return parse_type_alias (std::move (vis), std::move (outer_attrs));
- case STRUCT_TOK:
+ case STRUCT_KW:
return parse_struct (std::move (vis), std::move (outer_attrs));
- case ENUM_TOK:
+ case ENUM_KW:
return parse_enum (std::move (vis), std::move (outer_attrs));
// TODO: implement union keyword but not really because of
// context-dependence case UNION: crappy hack to do union "keyword"
@@ -1376,8 +1376,8 @@ Parser<ManagedTokenSource>::parse_vis_item (AST::AttrVec outer_attrs)
case UNDERSCORE:
return parse_const_item (std::move (vis), std::move (outer_attrs));
case UNSAFE:
- case EXTERN_TOK:
- case FN_TOK:
+ case EXTERN_KW:
+ case FN_KW:
return parse_function (std::move (vis), std::move (outer_attrs));
default:
add_error (
@@ -1388,7 +1388,7 @@ Parser<ManagedTokenSource>::parse_vis_item (AST::AttrVec outer_attrs)
lexer.skip_token (1); // TODO: is this right thing to do?
return nullptr;
}
- case STATIC_TOK:
+ case STATIC_KW:
return parse_static_item (std::move (vis), std::move (outer_attrs));
case AUTO:
case TRAIT:
@@ -1404,8 +1404,8 @@ Parser<ManagedTokenSource>::parse_vis_item (AST::AttrVec outer_attrs)
case AUTO:
case TRAIT:
return parse_trait (std::move (vis), std::move (outer_attrs));
- case EXTERN_TOK:
- case FN_TOK:
+ case EXTERN_KW:
+ case FN_KW:
return parse_function (std::move (vis), std::move (outer_attrs));
case IMPL:
return parse_impl (std::move (vis), std::move (outer_attrs));
@@ -2482,7 +2482,7 @@ Parser<ManagedTokenSource>::parse_extern_crate (AST::Visibility vis,
AST::AttrVec outer_attrs)
{
location_t locus = lexer.peek_token ()->get_locus ();
- if (!skip_token (EXTERN_TOK))
+ if (!skip_token (EXTERN_KW))
{
skip_after_semicolon ();
return nullptr;
@@ -2854,7 +2854,7 @@ Parser<ManagedTokenSource>::parse_function (AST::Visibility vis,
// Get qualifiers for function if they exist
AST::FunctionQualifiers qualifiers = parse_function_qualifiers ();
- skip_token (FN_TOK);
+ skip_token (FN_KW);
// Save function name token
const_TokenPtr function_name_tok = expect_token (IDENTIFIER);
@@ -2962,7 +2962,7 @@ Parser<ManagedTokenSource>::parse_function_qualifiers ()
has_unsafe = true;
}
- if (lexer.peek_token ()->get_id () == EXTERN_TOK)
+ if (lexer.peek_token ()->get_id () == EXTERN_KW)
{
lexer.skip_token ();
has_extern = true;
@@ -4193,7 +4193,7 @@ Parser<ManagedTokenSource>::parse_struct (AST::Visibility vis,
/* Tuple struct <- 'struct' IDENTIFIER generic_params? '(' tuple_fields? ')'
* where_clause? ';' */
location_t locus = lexer.peek_token ()->get_locus ();
- skip_token (STRUCT_TOK);
+ skip_token (STRUCT_KW);
// parse struct name
const_TokenPtr name_tok = expect_token (IDENTIFIER);
@@ -4521,7 +4521,7 @@ Parser<ManagedTokenSource>::parse_enum (AST::Visibility vis,
AST::AttrVec outer_attrs)
{
location_t locus = lexer.peek_token ()->get_locus ();
- skip_token (ENUM_TOK);
+ skip_token (ENUM_KW);
// parse enum name
const_TokenPtr enum_name_tok = expect_token (IDENTIFIER);
@@ -4856,7 +4856,7 @@ Parser<ManagedTokenSource>::parse_static_item (AST::Visibility vis,
AST::AttrVec outer_attrs)
{
location_t locus = lexer.peek_token ()->get_locus ();
- skip_token (STATIC_TOK);
+ skip_token (STATIC_KW);
// determine whether static item is mutable
bool is_mut = false;
@@ -5024,8 +5024,8 @@ Parser<ManagedTokenSource>::parse_trait_item ()
// TODO: find out how to disable gcc "implicit fallthrough" error
gcc_fallthrough ();
case UNSAFE:
- case EXTERN_TOK:
- case FN_TOK: {
+ case EXTERN_KW:
+ case FN_KW: {
/* function and method can't be disambiguated by lookahead alone
* (without a lot of work and waste), so either make a
* "parse_trait_function_or_method" or parse here mostly and pass in
@@ -5035,7 +5035,7 @@ Parser<ManagedTokenSource>::parse_trait_item ()
// parse function or method qualifiers
AST::FunctionQualifiers qualifiers = parse_function_qualifiers ();
- skip_token (FN_TOK);
+ skip_token (FN_KW);
// parse function or method name
const_TokenPtr ident_tok = expect_token (IDENTIFIER);
@@ -5484,9 +5484,9 @@ Parser<ManagedTokenSource>::parse_inherent_impl_item ()
// TODO: is a recursive call to parse_inherent_impl_item better?
switch (lexer.peek_token ()->get_id ())
{
- case EXTERN_TOK:
+ case EXTERN_KW:
case UNSAFE:
- case FN_TOK:
+ case FN_KW:
// function or method
return parse_inherent_impl_function_or_method (std::move (vis),
std::move (
@@ -5503,8 +5503,8 @@ Parser<ManagedTokenSource>::parse_inherent_impl_item ()
return parse_const_item (std::move (vis),
std::move (outer_attrs));
case UNSAFE:
- case EXTERN_TOK:
- case FN_TOK:
+ case EXTERN_KW:
+ case FN_KW:
return parse_inherent_impl_function_or_method (std::move (vis),
std::move (
outer_attrs));
@@ -5526,9 +5526,9 @@ Parser<ManagedTokenSource>::parse_inherent_impl_item ()
return nullptr;
}
}
- case EXTERN_TOK:
+ case EXTERN_KW:
case UNSAFE:
- case FN_TOK:
+ case FN_KW:
// function or method
return parse_inherent_impl_function_or_method (
AST::Visibility::create_private (), std::move (outer_attrs));
@@ -5544,8 +5544,8 @@ Parser<ManagedTokenSource>::parse_inherent_impl_item ()
return parse_const_item (AST::Visibility::create_private (),
std::move (outer_attrs));
case UNSAFE:
- case EXTERN_TOK:
- case FN_TOK:
+ case EXTERN_KW:
+ case FN_KW:
return parse_inherent_impl_function_or_method (
AST::Visibility::create_private (), std::move (outer_attrs));
default:
@@ -5583,7 +5583,7 @@ Parser<ManagedTokenSource>::parse_inherent_impl_function_or_method (
// parse function or method qualifiers
AST::FunctionQualifiers qualifiers = parse_function_qualifiers ();
- skip_token (FN_TOK);
+ skip_token (FN_KW);
// parse function or method name
const_TokenPtr ident_tok = expect_token (IDENTIFIER);
@@ -5720,9 +5720,9 @@ Parser<ManagedTokenSource>::parse_trait_impl_item ()
return parse_macro_invocation_semi (std::move (outer_attrs));
case TYPE:
return parse_type_alias (visibility, std::move (outer_attrs));
- case EXTERN_TOK:
+ case EXTERN_KW:
case UNSAFE:
- case FN_TOK:
+ case FN_KW:
// function or method
return parse_trait_impl_function_or_method (visibility,
std::move (outer_attrs));
@@ -5737,8 +5737,8 @@ Parser<ManagedTokenSource>::parse_trait_impl_item ()
case UNDERSCORE:
return parse_const_item (visibility, std::move (outer_attrs));
case UNSAFE:
- case EXTERN_TOK:
- case FN_TOK:
+ case EXTERN_KW:
+ case FN_KW:
return parse_trait_impl_function_or_method (visibility,
std::move (outer_attrs));
default:
@@ -5786,7 +5786,7 @@ Parser<ManagedTokenSource>::parse_trait_impl_function_or_method (
// parse function or method qualifiers
AST::FunctionQualifiers qualifiers = parse_function_qualifiers ();
- skip_token (FN_TOK);
+ skip_token (FN_KW);
// parse function or method name
const_TokenPtr ident_tok = expect_token (IDENTIFIER);
@@ -5931,7 +5931,7 @@ Parser<ManagedTokenSource>::parse_extern_block (AST::Visibility vis,
AST::AttrVec outer_attrs)
{
location_t locus = lexer.peek_token ()->get_locus ();
- skip_token (EXTERN_TOK);
+ skip_token (EXTERN_KW);
// detect optional abi name
std::string abi;
@@ -6167,7 +6167,7 @@ Parser<ManagedTokenSource>::parse_external_item ()
{
case IDENTIFIER:
return parse_macro_invocation_semi (outer_attrs);
- case STATIC_TOK: {
+ case STATIC_KW: {
// parse extern static item
lexer.skip_token ();
@@ -6217,7 +6217,7 @@ Parser<ManagedTokenSource>::parse_external_item ()
has_mut, std::move (vis),
std::move (outer_attrs), locus));
}
- case FN_TOK:
+ case FN_KW:
return parse_external_function_item (std::move (vis),
std::move (outer_attrs));
case TYPE:
@@ -6266,14 +6266,14 @@ Parser<ManagedTokenSource>::parse_stmt (ParseRestrictions restrictions)
return parse_let_stmt (std::move (outer_attrs), restrictions);
case PUB:
case MOD:
- case EXTERN_TOK:
+ case EXTERN_KW:
case USE:
- case FN_TOK:
+ case FN_KW:
case TYPE:
- case STRUCT_TOK:
- case ENUM_TOK:
+ case STRUCT_KW:
+ case ENUM_KW:
case CONST:
- case STATIC_TOK:
+ case STATIC_KW:
case AUTO:
case TRAIT:
case IMPL:
@@ -7675,7 +7675,7 @@ Parser<ManagedTokenSource>::parse_return_expr (AST::AttrVec outer_attrs,
if (locus == UNKNOWN_LOCATION)
{
locus = lexer.peek_token ()->get_locus ();
- skip_token (RETURN_TOK);
+ skip_token (RETURN_KW);
}
// parse expression to return, if it exists
@@ -8448,7 +8448,7 @@ Parser<ManagedTokenSource>::parse_match_expr (AST::AttrVec outer_attrs,
if (locus == UNKNOWN_LOCATION)
{
locus = lexer.peek_token ()->get_locus ();
- skip_token (MATCH_TOK);
+ skip_token (MATCH_KW);
}
/* parse scrutinee expression, which is required (and HACK to prevent struct
@@ -9246,8 +9246,8 @@ Parser<ManagedTokenSource>::parse_type (bool save_errors)
case ASYNC:
case CONST:
case UNSAFE:
- case EXTERN_TOK:
- case FN_TOK:
+ case EXTERN_KW:
+ case FN_KW:
// bare function type (with no for lifetimes)
return parse_bare_function_type (std::vector<AST::LifetimeParam> ());
case IMPL:
@@ -9563,8 +9563,8 @@ Parser<ManagedTokenSource>::parse_for_prefixed_type ()
case ASYNC:
case CONST:
case UNSAFE:
- case EXTERN_TOK:
- case FN_TOK:
+ case EXTERN_KW:
+ case FN_KW:
return parse_bare_function_type (std::move (for_lifetimes));
case SCOPE_RESOLUTION:
case IDENTIFIER:
@@ -9686,7 +9686,7 @@ Parser<ManagedTokenSource>::parse_bare_function_type (
AST::FunctionQualifiers qualifiers = parse_function_qualifiers ();
- if (!skip_token (FN_TOK))
+ if (!skip_token (FN_KW))
return nullptr;
if (!skip_token (LEFT_PAREN))
@@ -10072,8 +10072,8 @@ Parser<ManagedTokenSource>::parse_type_no_bounds ()
case ASYNC:
case CONST:
case UNSAFE:
- case EXTERN_TOK:
- case FN_TOK:
+ case EXTERN_KW:
+ case FN_KW:
// bare function type (with no for lifetimes)
return parse_bare_function_type (std::vector<AST::LifetimeParam> ());
case IMPL:
@@ -11632,14 +11632,14 @@ Parser<ManagedTokenSource>::parse_stmt_or_expr ()
}
case PUB:
case MOD:
- case EXTERN_TOK:
+ case EXTERN_KW:
case USE:
- case FN_TOK:
+ case FN_KW:
case TYPE:
- case STRUCT_TOK:
- case ENUM_TOK:
+ case STRUCT_KW:
+ case ENUM_KW:
case CONST:
- case STATIC_TOK:
+ case STATIC_KW:
case AUTO:
case TRAIT:
case IMPL: {
@@ -11670,8 +11670,8 @@ Parser<ManagedTokenSource>::parse_stmt_or_expr ()
parse_vis_item (std::move (outer_attrs)));
return ExprOrStmt (std::move (item));
}
- case EXTERN_TOK:
- case FN_TOK: {
+ case EXTERN_KW:
+ case FN_KW: {
// unsafe function
std::unique_ptr<AST::VisItem> item (
parse_vis_item (std::move (outer_attrs)));
@@ -12535,7 +12535,7 @@ Parser<ManagedTokenSource>::null_denotation_not_path (
case DOT_DOT_EQ:
// range to inclusive expr
return parse_range_to_inclusive_expr (tok, std::move (outer_attrs));
- case RETURN_TOK:
+ case RETURN_KW:
// FIXME: is this really a null denotation expression?
return parse_return_expr (std::move (outer_attrs), tok->get_locus ());
case BREAK:
@@ -12578,7 +12578,7 @@ Parser<ManagedTokenSource>::null_denotation_not_path (
case FOR:
return parse_for_loop_expr (std::move (outer_attrs),
AST::LoopLabel::error ());
- case MATCH_TOK:
+ case MATCH_KW:
// also an expression with block
return parse_match_expr (std::move (outer_attrs), tok->get_locus ());
case LEFT_SQUARE:
diff --git a/gcc/rust/parse/rust-parse.cc b/gcc/rust/parse/rust-parse.cc
index 0f91c7ffe61..504a409cc4d 100644
--- a/gcc/rust/parse/rust-parse.cc
+++ b/gcc/rust/parse/rust-parse.cc
@@ -194,11 +194,11 @@ peculiar_fragment_match_compatible (const AST::MacroMatchFragment &last_match,
DO,
DYN,
ELSE,
- ENUM_TOK,
- EXTERN_TOK,
+ ENUM_KW,
+ EXTERN_KW,
FALSE_LITERAL,
- FINAL_TOK,
- FN_TOK,
+ FINAL_KW,
+ FN_KW,
FOR,
IF,
IMPL,
@@ -206,18 +206,18 @@ peculiar_fragment_match_compatible (const AST::MacroMatchFragment &last_match,
LET,
LOOP,
MACRO,
- MATCH_TOK,
+ MATCH_KW,
MOD,
MOVE,
MUT,
- OVERRIDE_TOK,
+ OVERRIDE_KW,
PUB,
REF,
- RETURN_TOK,
+ RETURN_KW,
SELF_ALIAS,
SELF,
- STATIC_TOK,
- STRUCT_TOK,
+ STATIC_KW,
+ STRUCT_KW,
SUPER,
TRAIT,
TRUE_LITERAL,
diff --git a/gcc/rust/util/rust-token-converter.cc b/gcc/rust/util/rust-token-converter.cc
index 537bca3a3f7..41f810542de 100644
--- a/gcc/rust/util/rust-token-converter.cc
+++ b/gcc/rust/util/rust-token-converter.cc
@@ -134,10 +134,10 @@ convert (const std::vector<const_TokenPtr> &tokens)
case DO:
case DYN:
case ELSE:
- case ENUM_TOK:
- case EXTERN_TOK:
- case FINAL_TOK:
- case FN_TOK:
+ case ENUM_KW:
+ case EXTERN_KW:
+ case FINAL_KW:
+ case FN_KW:
case FOR:
case IF:
case IMPL:
@@ -145,19 +145,19 @@ convert (const std::vector<const_TokenPtr> &tokens)
case LET:
case LOOP:
case MACRO:
- case MATCH_TOK:
+ case MATCH_KW:
case MOD:
case MOVE:
case MUT:
- case OVERRIDE_TOK:
+ case OVERRIDE_KW:
case PRIV:
case PUB:
case REF:
- case RETURN_TOK:
+ case RETURN_KW:
case SELF_ALIAS:
case SELF:
- case STATIC_TOK:
- case STRUCT_TOK:
+ case STATIC_KW:
+ case STRUCT_KW:
case SUPER:
case TRAIT:
case TRY:
--
2.42.1
next prev parent reply other threads:[~2024-01-30 12:11 UTC|newest]
Thread overview: 102+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-30 12:06 [PATCHSET] Update Rust frontend January 2024 arthur.cohen
2024-01-30 12:06 ` [COMMITTED 001/101] gccrs: Add visibility to trait item arthur.cohen
2024-01-30 12:06 ` [COMMITTED 002/101] gccrs: Add a test to highlight public trait type parsing arthur.cohen
2024-01-30 12:06 ` [COMMITTED 003/101] gccrs: Fix error emission for self pointers arthur.cohen
2024-01-30 12:06 ` [COMMITTED 004/101] gccrs: Report self parameter parsing error kind arthur.cohen
2024-01-30 12:06 ` [COMMITTED 005/101] gccrs: Add new test for parsing errors on self pointers arthur.cohen
2024-01-30 12:06 ` [COMMITTED 006/101] gccrs: ast: Change *Path nodes API arthur.cohen
2024-01-30 12:06 ` [COMMITTED 007/101] gccrs: rib: Add Namespace enum arthur.cohen
2024-01-30 12:06 ` [COMMITTED 008/101] gccrs: forever-stack: Fix basic get logic arthur.cohen
2024-01-30 12:06 ` [COMMITTED 009/101] gccrs: foreverstack: Specialize `get` for Namespace::Labels arthur.cohen
2024-01-30 12:06 ` [COMMITTED 010/101] gccrs: forever stack: Fix resolve_path signature arthur.cohen
2024-01-30 12:06 ` [COMMITTED 011/101] gccrs: forever stack: Improve resolve_path implementation arthur.cohen
2024-01-30 12:06 ` [COMMITTED 012/101] gccrs: foreverstack: Add `to_canonical_path` method arthur.cohen
2024-01-30 12:06 ` [COMMITTED 013/101] gccrs: foreverstack: Add `to_rib` method arthur.cohen
2024-01-30 12:06 ` [COMMITTED 014/101] gccrs: resolve: Format if properly arthur.cohen
2024-01-30 12:06 ` [COMMITTED 015/101] gccrs: forever stack: Remove development debug info arthur.cohen
2024-01-30 12:06 ` [COMMITTED 016/101] gccrs: Reject auto traits with generic parameters arthur.cohen
2024-01-30 12:06 ` [COMMITTED 017/101] gccrs: Add regression test for generic auto traits arthur.cohen
2024-01-30 12:06 ` [COMMITTED 018/101] gccrs: Reject auto traits with super trait arthur.cohen
2024-01-30 12:06 ` [COMMITTED 019/101] gccrs: Add a regression test for super trait on auto trait arthur.cohen
2024-01-30 12:06 ` [COMMITTED 020/101] gccrs: Add check for associated items on auto traits arthur.cohen
2024-01-30 12:06 ` [COMMITTED 021/101] gccrs: Emit an error on variadic non extern functions arthur.cohen
2024-01-30 12:06 ` [COMMITTED 022/101] gccrs: Add a test regular variadic functions errors arthur.cohen
2024-01-30 12:06 ` [COMMITTED 023/101] gccrs: Add ast validation check on union variant number arthur.cohen
2024-01-30 12:06 ` arthur.cohen [this message]
2024-01-30 12:06 ` [COMMITTED 025/101] gccrs: Add edition separation for keywords arthur.cohen
2024-01-30 12:06 ` [COMMITTED 026/101] gccrs: Treat underscore as a keyword arthur.cohen
2024-01-30 12:06 ` [COMMITTED 027/101] gccrs: Add await keyword arthur.cohen
2024-01-30 12:06 ` [COMMITTED 028/101] gccrs: Replace some keyword raw values arthur.cohen
2024-01-30 12:06 ` [COMMITTED 029/101] gccrs: Add a list of weak keyword arthur.cohen
2024-01-30 12:06 ` [COMMITTED 030/101] gccrs: Replace some weak keyword raw value with constexpr arthur.cohen
2024-01-30 12:06 ` [COMMITTED 031/101] gccrs: Introduce a proper keyword list arthur.cohen
2024-01-30 12:06 ` [COMMITTED 032/101] gccrs: Added support to Parse ASYNC function arthur.cohen
2024-01-30 12:06 ` [COMMITTED 033/101] gccrs: ctx: Add Labels ForeverStack to the resolver arthur.cohen
2024-01-30 12:06 ` [COMMITTED 034/101] gccrs: nr2.0: Add base for late name resolution arthur.cohen
2024-01-30 12:06 ` [COMMITTED 035/101] gccrs: toplevel: Use DefaultResolver for Function arthur.cohen
2024-01-30 12:06 ` [COMMITTED 036/101] gccrs: nr2.0: Store mappings in NameResolutionContext arthur.cohen
2024-01-30 12:06 ` [COMMITTED 037/101] gccrs: late: Start setting up builtin types arthur.cohen
2024-01-30 12:06 ` [COMMITTED 038/101] gccrs: late: Start storing mappings properly in the resolver arthur.cohen
2024-01-30 12:06 ` [COMMITTED 039/101] gccrs: early: Resolve paths properly arthur.cohen
2024-01-30 12:06 ` [COMMITTED 040/101] gccrs: toplevel: Add comment about running the collector twice arthur.cohen
2024-01-30 12:06 ` [COMMITTED 041/101] gccrs: ast: Add NodeId to UseTree base class arthur.cohen
2024-01-30 12:06 ` [COMMITTED 042/101] gccrs: early: Move `use` declaration resolving to TopLevel arthur.cohen
2024-01-30 12:06 ` [COMMITTED 043/101] gccrs: toplevel: Resolve `use` declarations arthur.cohen
2024-01-30 12:07 ` [COMMITTED 044/101] gccrs: Create base class for TupleStructItems and TuplePatternItems arthur.cohen
2024-01-30 12:07 ` [COMMITTED 045/101] gccrs: Add unsafety member to modules arthur.cohen
2024-01-30 12:07 ` [COMMITTED 046/101] gccrs: Parse module safety arthur.cohen
2024-01-30 12:07 ` [COMMITTED 047/101] gccrs: Emit an error on unsafe modules arthur.cohen
2024-01-30 12:07 ` [COMMITTED 048/101] gccrs: Add a regression test for unsafe module validation arthur.cohen
2024-01-30 12:07 ` [COMMITTED 049/101] gccrs: Remove backend dependancy on resolution rib information arthur.cohen
2024-01-30 12:07 ` [COMMITTED 050/101] gccrs: Remove class AST::InherentImplItem arthur.cohen
2024-01-30 12:07 ` [COMMITTED 051/101] gccrs: Split async and const function qualifiers arthur.cohen
2024-01-30 12:07 ` [COMMITTED 052/101] gccrs: Allow const and async specifiers in functions arthur.cohen
2024-01-30 12:07 ` [COMMITTED 053/101] gccrs: Add async const function ast validation pass arthur.cohen
2024-01-30 12:07 ` [COMMITTED 054/101] gccrs: Add a regression test for async const functions arthur.cohen
2024-01-30 12:07 ` [COMMITTED 055/101] gccrs: Add AST validation check for const in trait arthur.cohen
2024-01-30 12:07 ` [COMMITTED 056/101] gccrs: Add regression test for const fn " arthur.cohen
2024-01-30 12:07 ` [COMMITTED 057/101] gccrs: Make feature gate visitor inherit from default one arthur.cohen
2024-01-30 12:07 ` [COMMITTED 058/101] gccrs: Change the attribute checker visitor to " arthur.cohen
2024-01-30 12:07 ` [COMMITTED 059/101] gccrs: Make early name resolver inherit from " arthur.cohen
2024-01-30 12:07 ` [COMMITTED 060/101] gccrs: Add multiple regression test in name resolution arthur.cohen
2024-01-30 12:07 ` [COMMITTED 061/101] gccrs: Add execution test for name resolution 2.0 arthur.cohen
2024-01-30 12:07 ` [COMMITTED 062/101] gccrs: Make function bodies truly optional arthur.cohen
2024-01-30 12:07 ` [COMMITTED 063/101] gccrs: Add validation for functions without body arthur.cohen
2024-01-30 12:07 ` [COMMITTED 064/101] gccrs: Add a regression test for function body check arthur.cohen
2024-01-30 12:07 ` [COMMITTED 065/101] gccrs: Generate error for const trait functions arthur.cohen
2024-01-30 12:07 ` [COMMITTED 066/101] gccrs: Renamed `WIN64` to `WIN_64` arthur.cohen
2024-01-30 12:07 ` [COMMITTED 067/101] gccrs: Allow enabling lang_items and no_core features arthur.cohen
2024-01-30 12:07 ` [COMMITTED 068/101] gccrs: Make default resolver inherit from default visitor arthur.cohen
2024-01-30 12:07 ` [COMMITTED 069/101] gccrs: Make expand visitor " arthur.cohen
2024-01-30 12:07 ` [COMMITTED 070/101] gccrs: Change cfg stripper to use " arthur.cohen
2024-01-30 12:07 ` [COMMITTED 071/101] gccrs: refactor builtins initialization and attributes arthur.cohen
2024-01-30 12:07 ` [COMMITTED 072/101] gccrs: HIR: add missing getters arthur.cohen
2024-01-30 12:07 ` [COMMITTED 073/101] gccrs: TyTy: Fix missed nodiscard arthur.cohen
2024-01-30 12:07 ` [COMMITTED 074/101] gccrs: BIR: " arthur.cohen
2024-01-30 12:07 ` [COMMITTED 075/101] gccrs: TyTy: refactor to new API arthur.cohen
2024-01-30 12:07 ` [COMMITTED 076/101] gccrs: TyTy: Common interface for fucntion-like types arthur.cohen
2024-01-30 12:07 ` [COMMITTED 077/101] gccrs: TyTy: SubstitutionRef cast specialization arthur.cohen
2024-01-30 12:07 ` [COMMITTED 078/101] gccrs: BIR: Cleanup arthur.cohen
2024-01-30 12:07 ` [COMMITTED 079/101] gccrs: split rust-mangle.cc into two files arthur.cohen
2024-01-30 12:07 ` [COMMITTED 080/101] gccrs: Handle `async` qualifier inside trait arthur.cohen
2024-01-30 12:07 ` [COMMITTED 081/101] gccrs: Generate error for `async` trait fucntions arthur.cohen
2024-01-30 12:07 ` [COMMITTED 082/101] gccrs: ast: Fix lifetime type parsing arthur.cohen
2024-01-30 12:07 ` [COMMITTED 083/101] gccrs: ast: Unify explicitly and implicitly elided lifettimes arthur.cohen
2024-01-30 12:07 ` [COMMITTED 084/101] gccrs: ast: Full lifetime elision handling arthur.cohen
2024-01-30 12:07 ` [COMMITTED 085/101] gccrs: ast: Infer static lifetime for const and static items arthur.cohen
2024-01-30 12:07 ` [COMMITTED 086/101] gccrs: ast: Lower 'for' lifetimes arthur.cohen
2024-01-30 12:07 ` [COMMITTED 087/101] gccrs: TyTy: Refactor FnType deprecated API arthur.cohen
2024-01-30 12:07 ` [COMMITTED 088/101] gccrs: Handle newlines during string parsing while lexing arthur.cohen
2024-01-30 12:07 ` [COMMITTED 089/101] gccrs: Handle `async` functions in traits arthur.cohen
2024-01-30 12:07 ` [COMMITTED 090/101] gccrs: Fix inconsistent formatting arthur.cohen
2024-01-30 12:07 ` [COMMITTED 091/101] gccrs: Handle `async` keyword for regular implementations arthur.cohen
2024-01-30 12:07 ` [COMMITTED 092/101] gccrs: Add improved error when a field is redefined in a struct constructor arthur.cohen
2024-01-30 12:07 ` [COMMITTED 093/101] gccrs: Unify storage of associated items in SingleASTNode arthur.cohen
2024-01-30 12:07 ` [COMMITTED 094/101] gccrs: Added newline to get more readable lexdump arthur.cohen
2024-01-30 12:07 ` [COMMITTED 095/101] gccrs: Test: fix missing lifetime in a test arthur.cohen
2024-01-30 12:07 ` [COMMITTED 096/101] gccrs: AST: Fix for lifetime parsing arthur.cohen
2024-01-30 12:07 ` [COMMITTED 097/101] gccrs: AST: Fix for lifetime lowering arthur.cohen
2024-01-30 12:07 ` [COMMITTED 098/101] gccrs: Test: check implemented for lifetime handling arthur.cohen
2024-01-30 12:07 ` [COMMITTED 099/101] gccrs: Add improved error when no fields in initializer arthur.cohen
2024-01-30 12:07 ` [COMMITTED 100/101] gccrs: Remove TraitImplItem arthur.cohen
2024-01-30 12:07 ` [COMMITTED 101/101] gccrs: Fix output line ending patterns arthur.cohen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240130121026.807464-27-arthur.cohen@embecosm.com \
--to=arthur.cohen@embecosm.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=gcc-rust@gcc.gnu.org \
--cc=pierre-emmanuel.patry@embecosm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).