From a67e0b3efd412aa38fc286210fc32f924800cceb Mon Sep 17 00:00:00 2001 From: Pierre-Emmanuel Patry Date: Wed, 22 Mar 2023 13:27:50 +0100 Subject: 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 --- gcc/rust/ast/rust-ast-tokenstream.cc | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) (limited to 'gcc') diff --git a/gcc/rust/ast/rust-ast-tokenstream.cc b/gcc/rust/ast/rust-ast-tokenstream.cc index 92737fc..a7fee13 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) -- cgit v1.1