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

Method parse

plugins/qmakemanager/parser/qmakedriver.cpp:48–78  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

46 m_debug = debug;
47}
48bool Driver::parse(ProjectAST** qmast)
49{
50 KDevPG::TokenStream tokenStream;
51 KDevPG::MemoryPool memory_pool;
52
53 Parser qmakeparser;
54 qmakeparser.setTokenStream(&tokenStream);
55 qmakeparser.setMemoryPool(&memory_pool);
56 qmakeparser.setDebug(m_debug);
57
58 qmakeparser.tokenize(m_content);
59 ProjectAst* ast = nullptr;
60 bool matched = qmakeparser.parseProject(&ast);
61 if (matched) {
62 ifDebug(qCDebug(KDEV_QMAKE) << "Successfully parsed";) if (m_debug)
63 {
64 DebugVisitor d(&qmakeparser);
65 d.visitProject(ast);
66 }
67 if (*qmast)
68 delete *qmast;
69 *qmast = new ProjectAST();
70 BuildASTVisitor d(&qmakeparser, *qmast);
71 d.visitProject(ast);
72 ifDebug(qCDebug(KDEV_QMAKE) << "Found" << (*qmast)->statements.count() << "Statements";)
73 } else {
74 ast = nullptr;
75 qCDebug(KDEV_QMAKE) << "Couldn't parse content";
76 }
77 return matched;
78}
79}

Callers 6

readMethod · 0.45
resolveVariablesMethod · 0.45
foreachFunction · 0.45
strangeScopeNamesMethod · 0.45
testIfElseMethod · 0.45
referenceParserMethod · 0.45

Calls 4

setDebugMethod · 0.80
tokenizeMethod · 0.80
visitProjectMethod · 0.45
countMethod · 0.45

Tested by 3

strangeScopeNamesMethod · 0.36
testIfElseMethod · 0.36
referenceParserMethod · 0.36