diff options
author | Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> | 2023-03-22 13:27:50 +0100 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2023-03-30 16:48:26 +0200 |
commit | f0ed95a8b9758e172e5e3e945a393b6295037507 (patch) | |
tree | 24000aa34d224d26c5759db58d14b2a7636db684 | |
parent | 028f85abf70e231f9517a9f693fb6f3111d3a213 (diff) | |
download | gcc-f0ed95a8b9758e172e5e3e945a393b6295037507.zip gcc-f0ed95a8b9758e172e5e3e945a393b6295037507.tar.gz gcc-f0ed95a8b9758e172e5e3e945a393b6295037507.tar.bz2 |
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 <pierre-emmanuel.patry@embecosm.com>
-rw-r--r-- | gcc/rust/ast/rust-ast-tokenstream.cc | 31 |
1 files changed, 24 insertions, 7 deletions
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) |