From: Pierre-Emmanuel Patry Date: Wed, 22 Mar 2023 12:27:50 +0000 (+0100) Subject: gccrs: ast: Implement TokenStream visitor for meta nodes X-Git-Tag: basepoints/gcc-15~2723 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a67e0b3efd412aa38fc286210fc32f924800cceb;p=thirdparty%2Fgcc.git gccrs: ast: Implement TokenStream visitor for meta nodes Implement TokenStream visitor on some Meta container nodes. gcc/rust/ChangeLog: * ast/rust-ast-tokenstream.cc (TokenStream::visit): Implement visitors. 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 92737fcece4b..a7fee13a1aea 100644 --- a/gcc/rust/ast/rust-ast-tokenstream.cc +++ b/gcc/rust/ast/rust-ast-tokenstream.cc @@ -349,7 +349,12 @@ TokenStream::visit (DelimTokenTree &delim_tok_tree) void TokenStream::visit (AttrInputMetaItemContainer &container) -{} +{ + for (auto &item : container.get_items ()) + { + visit (item); + } +} void TokenStream::visit (IdentifierExpr &ident_expr) @@ -724,16 +729,28 @@ TokenStream::visit (LiteralExpr &expr) } void -TokenStream::visit (AttrInputLiteral &) -{} +TokenStream::visit (AttrInputLiteral &literal) +{ + tokens.push_back (Rust::Token::make (EQUAL, Location ())); + visit (literal.get_literal ()); +} void -TokenStream::visit (MetaItemLitExpr &) -{} +TokenStream::visit (MetaItemLitExpr &item) +{ + auto lit = item.get_literal (); + visit (lit); +} void -TokenStream::visit (MetaItemPathLit &) -{} +TokenStream::visit (MetaItemPathLit &item) +{ + auto path = item.get_path (); + auto lit = item.get_literal (); + visit (path); + tokens.push_back (Rust::Token::make (COLON, item.get_locus ())); + visit (lit); +} void TokenStream::visit (BorrowExpr &expr)