gccrs: libproc_macro: Remove internal named namespaces

Either move the elements from their namespace up to the procmacro
namespace or make the namespace anonymous.

libgrust/ChangeLog:

	* libproc_macro/group.cc (Group::make_group): Remove
	internal namespace.
	(Group::drop): Likewise.
	* libproc_macro/group.h (enum Delimiter): Make members
	upercase.
	(struct Group):
	* libproc_macro/ident.cc (Ident::drop): Remove internal
	namespace.
	* libproc_macro/ident.h (Ident__clone): Likewise.
	* libproc_macro/literal.cc (Literal::make_isize):
	Likewise.
	* libproc_macro/literal.h (union LiteralPayload):
	Likewise.
	(Literal__from_string): Likewise.
	* libproc_macro/punct.cc (Punct::make_punct): Likewise.
	* libproc_macro/punct.h (enum Spacing): Make members
	uppercase.
	* libproc_macro/tokenstream.cc (TokenStream::make_tokenstream):
	Remove internal namespace.
	(TokenStream::grow): Likewise.
	(TokenStream::push): Likewise.
	(TokenSream__push): Likewise.
	(TokenStream__clone): Likewise.
	(TokenStream__drop): Likewise.
	* libproc_macro/tokenstream.h (struct TokenStream):
	Likewise.
	(TokenSream__push): Likewise.
	(TokenStream__drop): Likewise.
	* libproc_macro/tokentree.cc (TokenTree::make_tokentree):
	Likewise.
	(TokenTree::drop): Likewise.
	* libproc_macro/tokentree.h (union TokenTreePayload):
	Likewise.

Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
This commit is contained in:
Pierre-Emmanuel Patry 2023-04-25 13:19:00 +02:00 committed by Arthur Cohen
parent e112189800
commit b1a8cb2fbf
12 changed files with 36 additions and 65 deletions

View File

@ -23,10 +23,9 @@
#include "group.h"
namespace ProcMacro {
namespace Group {
Group
Group::make_group (TokenStream::TokenStream stream, Delimiter delim)
Group::make_group (TokenStream stream, Delimiter delim)
{
return {delim, stream};
}
@ -37,5 +36,4 @@ Group::drop (Group *g)
TokenStream::TokenStream::drop (&g->stream);
}
} // namespace Group
} // namespace ProcMacro

View File

@ -26,28 +26,26 @@
#include "tokenstream.h"
namespace ProcMacro {
namespace Group {
enum Delimiter
{
Parenthesis,
Brace,
Bracket,
None,
PARENTHESIS,
BRACE,
BRACKET,
NONE,
};
struct Group
{
Delimiter delimiter;
TokenStream::TokenStream stream;
TokenStream stream;
public:
static Group make_group (TokenStream::TokenStream stream, Delimiter delim);
static Group make_group (TokenStream stream, Delimiter delim);
static void drop (Group *g);
};
} // namespace Group
} // namespace ProcMacro
#endif /* ! GROUP_H */

View File

@ -24,7 +24,6 @@
#include <cstring>
namespace ProcMacro {
namespace Ident {
extern "C" {
@ -84,5 +83,4 @@ Ident::drop (Ident *ident)
ident->len = 0;
}
} // namespace Ident
} // namespace ProcMacro

View File

@ -27,7 +27,6 @@
#include <string>
namespace ProcMacro {
namespace Ident {
struct Ident
{
@ -61,7 +60,6 @@ Ident
Ident__clone (const Ident *ident);
}
} // namespace Ident
} // namespace ProcMacro
#endif /* ! IDENT_H */

View File

@ -25,7 +25,6 @@
#include <cstdlib>
namespace ProcMacro {
namespace Literal {
void
Literal::drop (Literal *lit)
@ -289,5 +288,4 @@ Literal::make_isize (std::int64_t value, bool suffixed)
return {ISIZE, payload};
}
} // namespace Literal
} // namespace ProcMacro

View File

@ -28,7 +28,6 @@
#include <vector>
namespace ProcMacro {
namespace Literal {
enum UnsignedTag
{
UNSIGNED_8,
@ -187,10 +186,11 @@ public:
static Literal make_usize (std::uint64_t value, bool suffixed = false);
static Literal make_isize (std::int64_t value, bool suffixed = false);
static void drop (Literal *lit);
private:
static Literal make_unsigned (UnsignedSuffixPayload p);
static Literal make_signed (SignedSuffixPayload p);
static void drop (Literal *lit);
};
extern "C" {
@ -207,7 +207,6 @@ bool
Literal__from_string (const unsigned char *str, std::uint64_t len,
Literal *lit);
}
} // namespace Literal
} // namespace ProcMacro
#endif /* ! LITERAL_H */

View File

@ -24,7 +24,6 @@
#include <cstdlib>
namespace ProcMacro {
namespace Punct {
Punct
Punct::make_punct (std::uint32_t ch, Spacing spacing)
@ -32,5 +31,4 @@ Punct::make_punct (std::uint32_t ch, Spacing spacing)
return {ch, spacing};
}
} // namespace Punct
} // namespace ProcMacro

View File

@ -26,12 +26,11 @@
#include <cstdint>
namespace ProcMacro {
namespace Punct {
enum Spacing
{
Alone,
Joint
ALONE,
JOINT
};
struct Punct
@ -40,10 +39,9 @@ struct Punct
Spacing spacing;
public:
static Punct make_punct (std::uint32_t ch, Spacing spacing = Spacing::Alone);
static Punct make_punct (std::uint32_t ch, Spacing spacing = Spacing::ALONE);
};
} // namespace Punct
} // namespace ProcMacro
#endif /* ! PUNCT_H */

View File

@ -26,10 +26,9 @@
#include <cstring>
namespace ProcMacro {
namespace TokenStream {
TokenStream
TokenStream::make_tokenstream (std::vector<TokenTree::TokenTree> vec)
TokenStream::make_tokenstream (std::vector<TokenTree> vec)
{
auto stream = make_tokenstream (vec.size ());
for (auto tt : vec)
@ -42,7 +41,7 @@ TokenStream::make_tokenstream (std::vector<TokenTree::TokenTree> vec)
TokenStream
TokenStream::make_tokenstream (std::uint64_t capacity)
{
auto *data = new TokenTree::TokenTree[capacity];
auto *data = new TokenTree[capacity];
return {data, 0, capacity};
}
@ -50,14 +49,14 @@ void
TokenStream::grow (std::uint64_t delta)
{
auto new_capacity = capacity + delta;
auto *new_data = new TokenTree::TokenTree[new_capacity];
auto *new_data = new TokenTree[new_capacity];
std::memcpy (new_data, data, size);
delete[] data;
data = new_data;
}
void
TokenStream::push (TokenTree::TokenTree tree)
TokenStream::push (TokenTree tree)
{
if (size == capacity)
grow (capacity);
@ -90,7 +89,7 @@ TokenStream__with_capacity (std::uint64_t capacity)
}
extern "C" void
TokenSream__push (TokenStream *stream, TokenTree::TokenTree tree)
TokenSream__push (TokenStream *stream, TokenTree tree)
{
stream->push (tree);
}
@ -106,7 +105,7 @@ TokenStream__from_string (unsigned char *str, std::uint64_t len,
extern "C" TokenStream
TokenStream__clone (const TokenStream *ts)
{
auto *data = new TokenTree::TokenTree[ts->capacity];
auto *data = new TokenTree[ts->capacity];
std::memcpy (data, ts->data, ts->size);
return {data, ts->size, ts->capacity};
}
@ -117,5 +116,4 @@ TokenStream__drop (TokenStream *stream)
TokenStream::drop (stream);
}
} // namespace TokenStream
} // namespace ProcMacro

View File

@ -27,29 +27,22 @@
#include <vector>
namespace ProcMacro {
namespace TokenTree {
struct TokenTree;
}
namespace TokenStream {
const std::int64_t DEFAULT_CAPACITY = 0;
struct TokenStream
{
TokenTree::TokenTree *data;
TokenTree *data;
std::uint64_t size;
std::uint64_t capacity;
public:
void grow (std::uint64_t delta);
void push (TokenTree::TokenTree tree);
void push (TokenTree tree);
TokenStream clone () const;
static TokenStream make_tokenstream (std::vector<TokenTree::TokenTree> vec);
static TokenStream make_tokenstream (std::uint64_t capacity
= DEFAULT_CAPACITY);
static TokenStream make_tokenstream (std::vector<TokenTree> vec);
static TokenStream make_tokenstream (std::uint64_t capacity = 1);
static void drop (TokenStream *stream);
};
@ -61,7 +54,7 @@ extern "C" TokenStream
TokenStream__with_capacity (std::uint64_t capacity);
extern "C" void
TokenSream__push (TokenStream *stream, TokenTree::TokenTree tree);
TokenSream__push (TokenStream *stream, TokenTree tree);
extern "C" bool
TokenStream__from_string (unsigned char *str, std::uint64_t len,
@ -73,7 +66,6 @@ TokenStream__clone (const TokenStream *ts);
extern "C" void
TokenStream__drop (TokenStream *stream);
} // namespace TokenStream
} // namespace ProcMacro
#endif /* ! TOKENSTREAM_H */

View File

@ -23,10 +23,9 @@
#include "tokentree.h"
namespace ProcMacro {
namespace TokenTree {
TokenTree
TokenTree::make_tokentree (Group::Group group)
TokenTree::make_tokentree (Group group)
{
TokenTreePayload payload;
payload.group = group;
@ -34,7 +33,7 @@ TokenTree::make_tokentree (Group::Group group)
}
TokenTree
TokenTree::make_tokentree (Ident::Ident ident)
TokenTree::make_tokentree (Ident ident)
{
TokenTreePayload payload;
payload.ident = ident;
@ -42,7 +41,7 @@ TokenTree::make_tokentree (Ident::Ident ident)
}
TokenTree
TokenTree::make_tokentree (Punct::Punct punct)
TokenTree::make_tokentree (Punct punct)
{
TokenTreePayload payload;
payload.punct = punct;
@ -50,7 +49,7 @@ TokenTree::make_tokentree (Punct::Punct punct)
}
TokenTree
TokenTree::make_tokentree (Literal::Literal literal)
TokenTree::make_tokentree (Literal literal)
{
TokenTreePayload payload;
payload.literal = literal;
@ -76,5 +75,4 @@ TokenTree::drop (TokenTree *tt)
}
}
} // namespace TokenTree
} // namespace ProcMacro

View File

@ -29,7 +29,6 @@
#include "literal.h"
namespace ProcMacro {
namespace TokenTree {
enum TokenTreeTag
{
@ -41,10 +40,10 @@ enum TokenTreeTag
union TokenTreePayload
{
Group::Group group;
Ident::Ident ident;
Punct::Punct punct;
Literal::Literal literal;
Group group;
Ident ident;
Punct punct;
Literal literal;
};
struct TokenTree
@ -53,15 +52,14 @@ struct TokenTree
TokenTreePayload payload;
public:
static TokenTree make_tokentree (Group::Group group);
static TokenTree make_tokentree (Ident::Ident ident);
static TokenTree make_tokentree (Punct::Punct punct);
static TokenTree make_tokentree (Literal::Literal literal);
static TokenTree make_tokentree (Group group);
static TokenTree make_tokentree (Ident ident);
static TokenTree make_tokentree (Punct punct);
static TokenTree make_tokentree (Literal literal);
static void drop (TokenTree *tt);
};
} // namespace TokenTree
} // namespace ProcMacro
#endif /* ! TOKENTREE_H */