From: Pierre-Emmanuel Patry Date: Thu, 27 Apr 2023 15:33:35 +0000 (+0200) Subject: gccrs: tokenstream: Add tokens to Ident conversion X-Git-Tag: basepoints/gcc-15~2569 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8c465d5fb09d1c7769ba4d9ce641e3e7c261b528;p=thirdparty%2Fgcc.git gccrs: tokenstream: Add tokens to Ident conversion Add conversion from a rust token to tokenstream Idents. gcc/rust/ChangeLog: * ast/rust-ast-tokenstream.cc (TokenStream::collect): Add Ident conversion. Signed-off-by: Pierre-Emmanuel Patry --- diff --git a/gcc/rust/ast/rust-ast-tokenstream.cc b/gcc/rust/ast/rust-ast-tokenstream.cc index faafac4e14b3..7a28634b60ab 100644 --- a/gcc/rust/ast/rust-ast-tokenstream.cc +++ b/gcc/rust/ast/rust-ast-tokenstream.cc @@ -50,6 +50,66 @@ TokenStream::collect () const { switch (token->get_id ()) { + // Ident + case IDENTIFIER: + case ABSTRACT: + case AS: + case ASYNC: + case AUTO: + case BECOME: + case BOX: + case BREAK: + case CONST: + case CONTINUE: + case CRATE: + case DO: + case DYN: + case ELSE: + case ENUM_TOK: + case EXTERN_TOK: + case FINAL_TOK: + case FN_TOK: + case FOR: + case IF: + case IMPL: + case IN: + case LET: + case LOOP: + case MACRO: + case MATCH_TOK: + case MOD: + case MOVE: + case MUT: + case OVERRIDE_TOK: + case PRIV: + case PUB: + case REF: + case RETURN_TOK: + case SELF_ALIAS: + case SELF: + case STATIC_TOK: + case STRUCT_TOK: + case SUPER: + case TRAIT: + case TRY: + case TYPE: + case TYPEOF: + case UNSAFE: + case UNSIZED: + case USE: + case VIRTUAL: + case WHERE: + case WHILE: + case YIELD: + // Underscore is not a Punct, considered as an Ident + case UNDERSCORE: + // True and false are idents, not literals + // (https://doc.rust-lang.org/proc_macro/struct.Literal.html) + case FALSE_LITERAL: + case TRUE_LITERAL: + trees.back ().push (ProcMacro::TokenTree::make_tokentree ( + ProcMacro::Ident::make_ident (token->as_string ()))); + break; // Joint punct case OR: case PIPE_EQ: