[gcc r14-7570] gccrs: tokenstream: Add tokens to Ident conversion
Arthur Cohen
cohenarthur@gcc.gnu.org
Tue Jan 16 17:41:30 GMT 2024
https://gcc.gnu.org/g:8c465d5fb09d1c7769ba4d9ce641e3e7c261b528
commit r14-7570-g8c465d5fb09d1c7769ba4d9ce641e3e7c261b528
Author: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Date: Thu Apr 27 17:33:35 2023 +0200
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 <pierre-emmanuel.patry@embecosm.com>
Diff:
---
gcc/rust/ast/rust-ast-tokenstream.cc | 60 ++++++++++++++++++++++++++++++++++++
1 file changed, 60 insertions(+)
diff --git a/gcc/rust/ast/rust-ast-tokenstream.cc b/gcc/rust/ast/rust-ast-tokenstream.cc
index faafac4e14b..7a28634b60a 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:
More information about the Gcc-cvs
mailing list