summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h')
-rw-r--r--lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h19
1 files changed, 15 insertions, 4 deletions
diff --git a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h
index 056cced2808..dbc1d59c8ba 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h
+++ b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h
@@ -29,13 +29,20 @@ class CPlusPlusLanguage : public Language {
public:
class MethodName {
public:
+ enum Type {
+ eTypeInvalid,
+ eTypeUnknownMethod,
+ eTypeClassMethod,
+ eTypeInstanceMethod
+ };
+
MethodName()
: m_full(), m_basename(), m_context(), m_arguments(), m_qualifiers(),
- m_parsed(false), m_parse_error(false) {}
+ m_type(eTypeInvalid), m_parsed(false), m_parse_error(false) {}
MethodName(const ConstString &s)
: m_full(s), m_basename(), m_context(), m_arguments(), m_qualifiers(),
- m_parsed(false), m_parse_error(false) {}
+ m_type(eTypeInvalid), m_parsed(false), m_parse_error(false) {}
void Clear();
@@ -44,9 +51,13 @@ public:
Parse();
if (m_parse_error)
return false;
+ if (m_type == eTypeInvalid)
+ return false;
return (bool)m_full;
}
+ Type GetType() const { return m_type; }
+
const ConstString &GetFullName() const { return m_full; }
std::string GetScopeQualifiedName();
@@ -61,7 +72,6 @@ public:
protected:
void Parse();
- bool TrySimplifiedParse();
ConstString m_full; // Full name:
// "lldb::SBTarget::GetBreakpointAtIndex(unsigned int)
@@ -70,6 +80,7 @@ public:
llvm::StringRef m_context; // Decl context: "lldb::SBTarget"
llvm::StringRef m_arguments; // Arguments: "(unsigned int)"
llvm::StringRef m_qualifiers; // Qualifiers: "const"
+ Type m_type;
bool m_parsed;
bool m_parse_error;
};
@@ -110,7 +121,7 @@ public:
// If the name is a lone C identifier (e.g. C) or a qualified C identifier
// (e.g. A::B::C) it will return true,
// and identifier will be the identifier (C and C respectively) and the
- // context will be "" and "A::B" respectively.
+ // context will be "" and "A::B::" respectively.
// If the name fails the heuristic matching for a qualified or unqualified
// C/C++ identifier, then it will return false
// and identifier and context will be unchanged.
OpenPOWER on IntegriCloud