MCPcopy Create free account
hub / github.com/KDE/kdevelop / parse

Function parse

plugins/clang/tests/test_clangutils.cpp:59–76  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

57using TranslationUnit = std::unique_ptr<CXTranslationUnitImpl, DisposeTranslationUnit>;
58
59TranslationUnit parse(const QByteArray& code, QString* fileName = nullptr)
60{
61 QTemporaryFile tempFile;
62 QVERIFY_RETURN(tempFile.open(), {});
63 tempFile.write(code);
64 tempFile.flush();
65
66 if (fileName) {
67 *fileName = tempFile.fileName();
68 }
69
70 std::unique_ptr<void, void(*)(CXIndex)> index(clang_createIndex(1, 1), clang_disposeIndex);
71 const QList<const char*> args = {"-std=c++20", "-xc++", "-Wall", "-nostdinc", "-nostdinc++"};
72 auto unit = TranslationUnit(clang_parseTranslationUnit(index.get(), qPrintable(tempFile.fileName()), args.data(),
73 args.size(), nullptr, 0, CXTranslationUnit_None));
74 QVERIFY_RETURN(unit, {});
75 return unit;
76}
77
78TranslationUnit runVisitor(const QByteArray& code, CXCursorVisitor visitor, CXClientData data)
79{

Callers 3

runVisitorFunction · 0.70
testGetRawContentsMethod · 0.70

Calls 6

openMethod · 0.45
writeMethod · 0.45
fileNameMethod · 0.45
getMethod · 0.45
dataMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected