namespace Synopsis::PTree
class Encoding

An Encoding represents a mangled (type) name. Here is a quick reference of the grammar:

Special function names:

Public Typedefs Summary:
std::basic_string<unsigned char, char_traits> Code
references
source code
Code::const_iterator iterator
references
source code
Public Structs Summary:
references
source code
Public Member functions Summary:
static void do_init_static()
references
source code
 constructor Encoding()
references
source code
 constructor Encoding(const Code& b)
references
source code
 constructor Encoding(const char* b)
references
source code
 constructor Encoding(const char* b, size_t s)
references
source code
 constructor Encoding(iterator b, iterator e)
references
source code
static Encoding simple_name(const Atom* name)
references
source code
 void clear()
references
source code
 bool empty() const
references
source code
 size_t size() const
references
source code
 iterator begin() const
references
source code
 iterator end() const
references
source code
 unsigned char front() const
references
source code
 unsigned char at(size_t i) const
references
source code
 const char* copy() const
references
source code

return a copy of the underlaying buffer FIXME: this is a temporary workaround while there are still places that use raw strings

 bool operator==(const Encoding& e) const
references
source code
 bool operator==(const std::string& s) const
source code
 bool operator==(const char* s) const
references
source code
 void prepend(unsigned char c)
references
source code
 void prepend(const char* p, size_t s)
references
source code
 void prepend(const Encoding& e)
references
source code
 void append(unsigned char c)
references
source code
 void append(const char* p, size_t s)
references
source code
 void append(const Encoding& e)
references
source code
 void append_with_length(const char* s, size_t n)
references
source code
 void append_with_length(const Encoding& e)
references
source code
 unsigned char pop()
references
source code
 void pop(size_t n)
references
source code
 void cv_qualify(const Node*, const Node* = 0)
references
source code
 void simple_const()
references
source code
 void global_scope()
references
source code
 void simple_name(const Node*)
references
source code
 void anonymous()
references
source code
 void template_(const Node*, const Encoding&)
references
source code
 void qualified(int)
references
source code
 void destructor(const Node*)
references
source code
 void ptr_operator(int)
references
source code
 void ptr_to_member(const Encoding&, int)
references
source code
 void cast_operator(const Encoding&)
references
source code
 void array()
references
source code
 void array(unsigned long s)
references
source code
 void function(const Encoding& e)
references
source code
 void recursion(const Encoding& e)
references
source code
 void start_func_args()
references
source code
 void end_func_args()
references
source code
 void void_()
references
source code
 void ellipsis_arg()
references
source code
 void no_return_type()
references
source code
references
source code
 Encoding get_scope() const
references
source code

if this Encoding represents a qualified name, return the name of the outer scope

 Encoding get_symbol() const
references
source code

if this Encoding represents a qualified name, return the name of the symbol inside the outer scope, else return the unmodified name

references
source code
 std::string unmangled() const
references
source code
references
source code
references
source code
references
source code
 bool is_simple_name() const
references
source code
 bool is_global_scope() const
references
source code
 bool is_qualified() const
references
source code
 bool is_function() const
references
source code
 bool is_template() const
references
source code
references
source code
friend bool operator<(const Encoding&, const Encoding&)
references
source code
friend std::ostream& operator<<(std::ostream&, const Encoding&)
source code
Public Data members Summary:
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
references
source code
Private Member functions Summary:
references
source code
Private Data members Summary:
references
source code
Public Member functions Details:
 const char* copy() const
references
source code

return a copy of the underlaying buffer FIXME: this is a temporary workaround while there are still places that use raw strings

 Encoding get_scope() const
references
source code

if this Encoding represents a qualified name, return the name of the outer scope

 Encoding get_symbol() const
references
source code

if this Encoding represents a qualified name, return the name of the symbol inside the outer scope, else return the unmodified name