diff options
author | Cary Clark <caryclark@skia.org> | 2017-12-11 16:03:17 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-12-11 21:47:38 +0000 |
commit | 2f466242c7289b246d7ef665aa50006cfd11aa36 (patch) | |
tree | f41d3ac2559c624a132fa74e3334ccbc5cfd1ceb /tools/bookmaker/includeParser.cpp | |
parent | bb091a08d1c60ccf3d014d94490c5b4134586ee2 (diff) |
working on image and nightly housekeeping bot
Add more examples and docs for SkImage; still a ways to go.
Fix bit-rotted examples.
Add typedef support.
Add json driver to pick files to work on; remove special-casing.
Fix unordered map traversal that made md output unreliable.
TBR=rmistry@google.com
Docs-Preview: https://skia.org/?cl=80060
Bug: skia:6898
Change-Id: Ib8eb9fdfa5a9db61c8332e657fa2e2f4b96a665f
Reviewed-on: https://skia-review.googlesource.com/80060
Reviewed-by: Cary Clark <caryclark@skia.org>
Commit-Queue: Cary Clark <caryclark@skia.org>
Diffstat (limited to 'tools/bookmaker/includeParser.cpp')
-rw-r--r-- | tools/bookmaker/includeParser.cpp | 43 |
1 files changed, 31 insertions, 12 deletions
diff --git a/tools/bookmaker/includeParser.cpp b/tools/bookmaker/includeParser.cpp index 955e6ef724..cd6e9e3914 100644 --- a/tools/bookmaker/includeParser.cpp +++ b/tools/bookmaker/includeParser.cpp @@ -426,6 +426,13 @@ bool IncludeParser::crossCheck(BmhParser& bmhParser) { SkDebugf("member missing from bmh: %s\n", fullName.c_str()); } break; + case MarkType::kTypedef: + if (def) { + def->fVisited = true; + } else { + SkDebugf("typedef missing from bmh: %s\n", fullName.c_str()); + } + break; default: SkASSERT(0); // unhandled break; @@ -1474,9 +1481,6 @@ bool IncludeParser::parseMethod(Definition* child, Definition* markupDef) { break; } tokenIter->fName = nameStr; - if ("operator" == nameStr) { - SkDebugf(""); - } tokenIter->fMarkType = MarkType::kMethod; tokenIter->fPrivate = string::npos != nameStr.find("::"); auto testIter = child->fParent->fTokens.begin(); @@ -1538,9 +1542,6 @@ bool IncludeParser::parseMethod(Definition* child, Definition* markupDef) { auto globalFunction = &fIFunctionMap[name]; globalFunction->fContentStart = start; globalFunction->fName = name; - if ("operator+" == name) { - SkDebugf(""); - } globalFunction->fFiddle = name; globalFunction->fContentEnd = end; globalFunction->fMarkType = MarkType::kMethod; @@ -1555,9 +1556,6 @@ bool IncludeParser::parseMethod(Definition* child, Definition* markupDef) { SkASSERT(classDef.fStart); string uniqueName = this->uniqueName(classDef.fMethods, nameStr); markupChild->fName = uniqueName; - if ("operator+" == uniqueName) { - SkDebugf(""); - } if (!this->findComments(*child, markupChild)) { return false; } @@ -1603,7 +1601,7 @@ bool IncludeParser::parseObject(Definition* child, Definition* markupDef) { } break; case KeyWord::kTypedef: - if (!this->parseTypedef()) { + if (!this->parseTypedef(child, markupDef)) { return child->reportError<bool>("failed to parse typedef"); } break; @@ -1720,8 +1718,29 @@ bool IncludeParser::parseTemplate() { return true; } -bool IncludeParser::parseTypedef() { - +bool IncludeParser::parseTypedef(Definition* child, Definition* markupDef) { + TextParser typedefParser(child); + string nameStr = typedefParser.typedefName(); + if (!markupDef) { + Definition& typedefDef = fITypedefMap[nameStr]; + SkASSERT(!typedefDef.fStart); + typedefDef.fStart = child->fContentStart; + typedefDef.fContentStart = child->fContentStart; + typedefDef.fName = nameStr; + typedefDef.fFiddle = nameStr; + typedefDef.fContentEnd = child->fContentEnd; + typedefDef.fTerminator = child->fContentEnd; + typedefDef.fMarkType = MarkType::kTypedef; + typedefDef.fLineCount = child->fLineCount; + return true; + } + markupDef->fTokens.emplace_back(MarkType::kTypedef, child->fContentStart, child->fContentEnd, + child->fLineCount, markupDef); + Definition* markupChild = &markupDef->fTokens.back(); + markupChild->fName = nameStr; + markupChild->fTerminator = markupChild->fContentEnd; + IClassDefinition& classDef = fIClassMap[markupDef->fName]; + classDef.fTypedefs[nameStr] = markupChild; return true; } |