1#ifndef mangling_support_INCLUDED
2#define mangling_support_INCLUDED
5namespace MangledNameSupport
21 typedef std::set<SgClassDefinition*> setType;
23 extern setType visitedTemplateDefinitions;
25 void outputVisitedTemplateDefinitions();
28std::string replaceNonAlphaNum (
const std::string& s);
31std::string trimSpaces (
const std::string& s);
35bool isValidMangledName (std::string name);
39std::string joinMangledQualifiersToString (
const std::string& base,
const std::string& name);
84std::string mangleTypesToString (
const SgTypePtrList::const_iterator b,
const SgTypePtrList::const_iterator e);
89SgName mangleTypes (
const SgTypePtrList::const_iterator b,
const SgTypePtrList::const_iterator e);
107std::string mangleFunctionNameToString (
const std::string& s,
const std::string& ret_type_name = std::string (
""));
120std::string mangleTemplateArgsToString (
const SgTemplateArgumentPtrList::const_iterator b,
const SgTemplateArgumentPtrList::const_iterator e);
127SgName mangleTemplateArgs (
const SgTemplateArgumentPtrList::const_iterator b,
const SgTemplateArgumentPtrList::const_iterator e);
140std::string mangleTemplateToString (
const std::string& templ_name,
141 const SgTemplateArgumentPtrList& templ_args,
146 const SgTemplateArgumentPtrList& templ_args,
161mangleTemplateFunctionToString (
const std::string& templ_name,
162 const SgTemplateArgumentPtrList& templ_args,
171mangleTemplateFunction (
const std::string& templ_name,
172 const SgTemplateArgumentPtrList& templ_args,
182std::string mangleTemplateArgsToString (
const SgTemplateParameterPtrList::const_iterator b,
const SgTemplateParameterPtrList::const_iterator e);
194std::string mangleTemplateToString (
const std::string& templ_name,
195 const SgTemplateParameterPtrList& templ_params,
200 const SgTemplateParameterPtrList& templ_params,
207std::string mangleValueExp (
const SgValueExp* expr);
234template <
class SgValueExpType_>
236mangleSgValueExp (
const SgValueExpType_* expr)
239 ROSE_ASSERT (isSgValueExp (expr) || !expr);
241 ostringstream mangled_name;
243 mangled_name << expr->get_value ();
244 return mangled_name.str ();
This class represents a boolean value (expression value).
This class represents the concept of a declaration statement.
This class represents the notion of an expression. Expressions are derived from SgLocatedNodes,...
This class represents the concept of a scope in C++ (e.g. global scope, fuction scope,...
This class represents a type for all functions.
This class represents strings within the IR nodes.
This class represents the concept of a scope in C++ (e.g. global scope, fuction scope,...
This class represents the concept of a class definition in C++.
This class represents the notion of an value (expression value).