aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2023-05-31 13:08:10 +0200
committerArthur Cohen <arthur.cohen@embecosm.com>2024-01-16 18:46:23 +0100
commitb671794333679413af5974a3a5671ce0f336b1d9 (patch)
treea74a6ab54a92581a289f376cfe8a036fae5eb6a0
parent3ee9c01098a162c9678f4f7bc24fd725e9172cb9 (diff)
downloadgcc-b671794333679413af5974a3a5671ce0f336b1d9.zip
gcc-b671794333679413af5974a3a5671ce0f336b1d9.tar.gz
gcc-b671794333679413af5974a3a5671ce0f336b1d9.tar.bz2
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 <pierre-emmanuel.patry@embecosm.com>
-rw-r--r--gcc/rust/util/rust-token-converter.cc26
1 files changed, 9 insertions, 17 deletions
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<const_TokenPtr> &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<const_TokenPtr> &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<const_TokenPtr> &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<const_TokenPtr> &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<const_TokenPtr> &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: