[gcc r14-7637] gccrs: converter: Refactor locations
Arthur Cohen
cohenarthur@gcc.gnu.org
Tue Jan 16 17:49:29 GMT 2024
https://gcc.gnu.org/g:b671794333679413af5974a3a5671ce0f336b1d9
commit r14-7637-gb671794333679413af5974a3a5671ce0f336b1d9
Author: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Date: Wed May 31 13:08:10 2023 +0200
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>
Diff:
---
gcc/rust/util/rust-token-converter.cc | 26 +++++++++-----------------
1 file changed, 9 insertions(+), 17 deletions(-)
diff --git a/gcc/rust/util/rust-token-converter.cc b/gcc/rust/util/rust-token-converter.cc
index d8b9090c8d2..e7d9a65991d 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:
More information about the Gcc-cvs
mailing list