27 #ifndef IDLFE_AST_SCOPEDNAME_H_
28 #define IDLFE_AST_SCOPEDNAME_H_
34 #include <forward_list>
40 std::vector <Identifier>,
85 reserve (names.size ());
86 for (
auto n : names) {
110 static_cast <const std::vector <Identifier>&
> (*this) == (rhs);
Stores the location information.
Abstract Syntax Tree namespace.
std::forward_list< ScopedName > ScopedNames
Sequence of scoped names.
A scoped name: sequence of identifiers.
ScopedName(ScopedName &&)=default
Move constructor.
std::string stringize() const
ScopedName(const Location &loc, bool root, std::initializer_list< const char * > names)
Create multi-element name.
ScopedName & operator=(const ScopedName &)=default
Assignment.
bool operator==(const ScopedName &rhs) const noexcept
Test for equality.
ScopedName(const Location &loc, bool root, Identifier &&name) noexcept
Create single-element name.
ScopedName()
Create empty name.
bool from_root
true if it is a root-scoped name, i.e. started from "::".
ScopedName(const ScopedName &)=default
Copy constructor.
ScopedName(const Location &loc)
Create empty name with location.
ScopedName(const Location &loc, bool root, const Identifier &name)
Create single-element name.