summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/CppDocument.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/cplusplus/CppDocument.cpp')
-rw-r--r--src/libs/cplusplus/CppDocument.cpp23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/libs/cplusplus/CppDocument.cpp b/src/libs/cplusplus/CppDocument.cpp
index 8c2d626590..a0ae6760d6 100644
--- a/src/libs/cplusplus/CppDocument.cpp
+++ b/src/libs/cplusplus/CppDocument.cpp
@@ -230,7 +230,8 @@ Document::Ptr Document::create(const QString &fileName)
void Document::setSource(const QByteArray &source)
{
- _translationUnit->setSource(source.constBegin(), source.size());
+ _source = source;
+ _translationUnit->setSource(_source.constBegin(), _source.size());
}
void Document::startSkippingBlocks(unsigned start)
@@ -250,6 +251,21 @@ void Document::stopSkippingBlocks(unsigned stop)
_skippedBlocks.back() = Block(start, stop);
}
+bool Document::isTokenized() const
+{
+ return _translationUnit->isTokenized();
+}
+
+void Document::tokenize()
+{
+ _translationUnit->tokenize();
+}
+
+bool Document::isParsed() const
+{
+ return _translationUnit->isParsed();
+}
+
bool Document::parse(ParseMode mode)
{
TranslationUnit::ParseMode m = TranslationUnit::ParseTranlationUnit;
@@ -295,6 +311,11 @@ void Document::check()
}
}
+void Document::releaseSource()
+{
+ _source.clear();
+}
+
void Document::releaseTranslationUnit()
{
_translationUnit->release();