From b671794333679413af5974a3a5671ce0f336b1d9 Mon Sep 17 00:00:00 2001 From: Pierre-Emmanuel Patry Date: Wed, 31 May 2023 13:08:10 +0200 Subject: gccrs: converter: Refactor locations Refactor location to make code smaller and cleaner. gcc/rust/ChangeLog: * util/rust-token-converter.cc (convert): Use a variable instead of multiple nested calls. Signed-off-by: Pierre-Emmanuel Patry --- gcc/rust/util/rust-token-converter.cc | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) (limited to 'gcc') diff --git a/gcc/rust/util/rust-token-converter.cc b/gcc/rust/util/rust-token-converter.cc index d8b9090..e7d9a65 100644 --- a/gcc/rust/util/rust-token-converter.cc +++ b/gcc/rust/util/rust-token-converter.cc @@ -82,6 +82,7 @@ convert (const std::vector &tokens) trees.push_back (ProcMacro::TokenStream::make_tokenstream ()); for (auto &token : tokens) { + auto loc = convert (token->get_locus ()); switch (token->get_id ()) { // Literals @@ -96,26 +97,22 @@ convert (const std::vector &tokens) case CHAR_LITERAL: trees.back ().push (ProcMacro::TokenTree::make_tokentree ( ProcMacro::Literal::make_literal (ProcMacro::LitKind::make_char (), - convert (token->get_locus ()), - token->as_string ()))); + loc, token->as_string ()))); break; case STRING_LITERAL: trees.back ().push (ProcMacro::TokenTree::make_tokentree ( ProcMacro::Literal::make_literal (ProcMacro::LitKind::make_str (), - convert (token->get_locus ()), - token->as_string ()))); + loc, token->as_string ()))); break; case BYTE_CHAR_LITERAL: trees.back ().push (ProcMacro::TokenTree::make_tokentree ( ProcMacro::Literal::make_literal (ProcMacro::LitKind::make_byte (), - convert (token->get_locus ()), - token->as_string ()))); + loc, token->as_string ()))); break; case BYTE_STRING_LITERAL: trees.back ().push (ProcMacro::TokenTree::make_tokentree ( ProcMacro::Literal::make_literal ( - ProcMacro::LitKind::make_byte_str (), - convert (token->get_locus ()), token->as_string ()))); + ProcMacro::LitKind::make_byte_str (), loc, token->as_string ()))); break; // Ident case IDENTIFIER: @@ -175,8 +172,7 @@ convert (const std::vector &tokens) case FALSE_LITERAL: case TRUE_LITERAL: trees.back ().push (ProcMacro::TokenTree::make_tokentree ( - ProcMacro::Ident::make_ident (token->as_string (), - convert (token->get_locus ())))); + ProcMacro::Ident::make_ident (token->as_string (), loc))); break; // Joint punct case OR: @@ -207,12 +203,9 @@ convert (const std::vector &tokens) auto it = str.cbegin (); for (; it != str.cend () - 1; it++) trees.back ().push (ProcMacro::TokenTree::make_tokentree ( - ProcMacro::Punct::make_punct (*it, - convert (token->get_locus ()), - ProcMacro::JOINT))); + ProcMacro::Punct::make_punct (*it, loc, ProcMacro::JOINT))); trees.back ().push (ProcMacro::TokenTree::make_tokentree ( - ProcMacro::Punct::make_punct (*it, convert (token->get_locus ()), - ProcMacro::ALONE))); + ProcMacro::Punct::make_punct (*it, loc, ProcMacro::ALONE))); } break; // Alone punct tokens @@ -239,8 +232,7 @@ convert (const std::vector &tokens) case QUESTION_MARK: case SINGLE_QUOTE: trees.back ().push (ProcMacro::TokenTree::make_tokentree ( - ProcMacro::Punct::make_punct (token->as_string ()[0], - convert (token->get_locus ()), + ProcMacro::Punct::make_punct (token->as_string ()[0], loc, ProcMacro::ALONE))); break; case RIGHT_PAREN: -- cgit v1.1