diff options
author | Cary Clark <caryclark@skia.org> | 2018-03-05 13:26:16 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-03-05 18:48:15 +0000 |
commit | 1a8d762a18d6f6494408a3a5e06a80097f8b85f7 (patch) | |
tree | d4ccb89175936ecfeceb205bc60a2af536d96de1 /tools/bookmaker/includeParser.cpp | |
parent | f6188425c7501ee0d7485d933f0c93b25972e58b (diff) |
work in imageinfo and phrase substitution
This adds the ability to define long phrases
in one place and refer to those phrases in
many places.
Bookmaker has new syntax to support phrase substitution.
When it encounters
#some_phrase_reference#
It substitutes the body of
#PhraseDef some_phrase_reference
text to substitute when encountering the phrase
##
The phrase label must start with a lowercase letter,
and be bracketed by single hash marks, without spaces
between the label and the hash marks.
Docs-Preview: https://skia.org/?cl=111224
TBR=caryclark@google.com
Bug: skia:6898
Change-Id: I12c57d916ccedbd86b421377d117399150ada72a
Reviewed-on: https://skia-review.googlesource.com/111224
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 | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/tools/bookmaker/includeParser.cpp b/tools/bookmaker/includeParser.cpp index 385b9c92da..07189dcc3f 100644 --- a/tools/bookmaker/includeParser.cpp +++ b/tools/bookmaker/includeParser.cpp @@ -87,7 +87,7 @@ void IncludeParser::ValidateKeyWords() { } void IncludeParser::addKeyword(KeyWord keyWord) { - fParent->fTokens.emplace_back(keyWord, fIncludeWord, fChar, fLineCount, fParent); + fParent->fTokens.emplace_back(keyWord, fIncludeWord, fChar, fLineCount, fParent, '\0'); fIncludeWord = nullptr; if (KeyProperty::kObject == kKeyWords[(int) keyWord].fProperty) { Definition* def = &fParent->fTokens.back(); @@ -1295,7 +1295,7 @@ bool IncludeParser::parseComment(const string& filename, const char* start, cons } const char* lineEnd = parser.trimmedLineEnd(); markupDef->fTokens.emplace_back(MarkType::kComment, parser.fChar, lineEnd, - parser.fLineCount, parent); + parser.fLineCount, parent, '\0'); parser.skipToEndBracket('\n'); } return true; @@ -1338,7 +1338,7 @@ bool IncludeParser::parseEnum(Definition* child, Definition* markupDef) { markupChild->fLineCount = child->fLineCount; } else { markupDef->fTokens.emplace_back(MarkType::kEnum, child->fContentStart, child->fContentEnd, - child->fLineCount, markupDef); + child->fLineCount, markupDef, '\0'); markupChild = &markupDef->fTokens.back(); } SkASSERT(KeyWord::kNone == markupChild->fKeyWord); @@ -1385,7 +1385,7 @@ bool IncludeParser::parseEnum(Definition* child, Definition* markupDef) { parser.skipToLineStart(); } markupChild->fTokens.emplace_back(MarkType::kComment, start, end, parser.fLineCount, - markupChild); + markupChild, '\0'); comment = &markupChild->fTokens.back(); comment->fTerminator = end; if (!this->parseComment(parser.fFileName, start, end, parser.fLineCount, comment)) { @@ -1439,12 +1439,12 @@ bool IncludeParser::parseEnum(Definition* child, Definition* markupDef) { SkASSERT(!parser.eof()); const char* commentEnd = parser.fChar; markupChild->fTokens.emplace_back(MarkType::kComment, commentStart, commentEnd, - parser.fLineCount, markupChild); + parser.fLineCount, markupChild, '\0'); comment = &markupChild->fTokens.back(); comment->fTerminator = commentEnd; } markupChild->fTokens.emplace_back(MarkType::kMember, dataStart, dataEnd, parser.fLineCount, - markupChild); + markupChild, '\0'); Definition* member = &markupChild->fTokens.back(); member->fName = memberName; if (comment) { @@ -1463,7 +1463,7 @@ bool IncludeParser::parseEnum(Definition* child, Definition* markupDef) { } SkASSERT(KeyWord::kStatic == outsideMember->fKeyWord); markupChild->fTokens.emplace_back(MarkType::kMember, outsideMember->fContentStart, - outsideMember->fContentEnd, outsideMember->fLineCount, markupChild); + outsideMember->fContentEnd, outsideMember->fLineCount, markupChild, '\0'); Definition* member = &markupChild->fTokens.back(); member->fName = outsideMember->fName; // FIXME: ? add comment as well ? @@ -1503,7 +1503,7 @@ bool IncludeParser::parseInclude(const string& name) { bool IncludeParser::parseMember(Definition* child, Definition* markupDef) { const char* typeStart = child->fChildren[0]->fContentStart; markupDef->fTokens.emplace_back(MarkType::kMember, typeStart, child->fContentStart, - child->fLineCount, markupDef); + child->fLineCount, markupDef, '\0'); Definition* markupChild = &markupDef->fTokens.back(); TextParser nameParser(child); nameParser.skipToNonAlphaNum(); @@ -1534,7 +1534,7 @@ bool IncludeParser::parseMember(Definition* child, Definition* markupDef) { } } markupDef->fTokens.emplace_back(MarkType::kComment, start, end, child->fLineCount, - markupDef); + markupDef, '\0'); Definition* commentChild = &markupDef->fTokens.back(); markupChild->fChildren.emplace_back(commentChild); parser.skipTo(end); @@ -1676,7 +1676,7 @@ bool IncludeParser::parseMethod(Definition* child, Definition* markupDef) { return true; } markupDef->fTokens.emplace_back(MarkType::kMethod, start, end, tokenIter->fLineCount, - markupDef); + markupDef, '\0'); Definition* markupChild = &markupDef->fTokens.back(); // do find instead -- I wonder if there is a way to prevent this in c++ IClassDefinition& classDef = fIClassMap[markupDef->fName]; @@ -1873,7 +1873,7 @@ bool IncludeParser::parseTypedef(Definition* child, Definition* markupDef) { return true; } markupDef->fTokens.emplace_back(MarkType::kTypedef, child->fContentStart, child->fContentEnd, - child->fLineCount, markupDef); + child->fLineCount, markupDef, '\0'); Definition* markupChild = &markupDef->fTokens.back(); markupChild->fName = nameStr; markupChild->fTerminator = markupChild->fContentEnd; |