diff options
author | Cary Clark <caryclark@skia.org> | 2018-06-07 09:59:07 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-06-07 14:22:38 +0000 |
commit | 0d225395faf27690c724619af35243985bf6e2df (patch) | |
tree | 4d5486c91ab2eeb52861030a8b0e7dc23c7e451f /tools/bookmaker/parserCommon.cpp | |
parent | d07dc361bccbb0d1b07f47de42aceca3cff5c39c (diff) |
generate SkColor include
bookmaker can now generate SkColor.h
This required adding support for #define, typedef,
global constexpr, and fixing various bugs, like
forward declared structs between comments.
Docs-Preview: https://skia.org/?cl=131260
Bug: skia:6898
TBR=caryclark@google.com
Change-Id: I6bee0c6f5c3a6820b04472a318abde8a2523dbbb
Reviewed-on: https://skia-review.googlesource.com/131260
Reviewed-by: Cary Clark <caryclark@skia.org>
Commit-Queue: Cary Clark <caryclark@skia.org>
Auto-Submit: Cary Clark <caryclark@skia.org>
Diffstat (limited to 'tools/bookmaker/parserCommon.cpp')
-rw-r--r-- | tools/bookmaker/parserCommon.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/tools/bookmaker/parserCommon.cpp b/tools/bookmaker/parserCommon.cpp index 652df53e51..8a58b2642b 100644 --- a/tools/bookmaker/parserCommon.cpp +++ b/tools/bookmaker/parserCommon.cpp @@ -116,6 +116,9 @@ bool ParserCommon::writeBlockIndent(int size, const char* data) { if (!size) { return wroteSomething; } + if (fReturnOnWrite) { + return true; + } if (newLine) { this->lf(1); } @@ -137,7 +140,8 @@ bool ParserCommon::writeBlockIndent(int size, const char* data) { } bool ParserCommon::writeBlockTrim(int size, const char* data) { - if (fOutdentNext) { + SkASSERT(size >= 0); + if (!fReturnOnWrite && fOutdentNext) { fIndent -= 4; fOutdentNext = false; } @@ -149,9 +153,14 @@ bool ParserCommon::writeBlockTrim(int size, const char* data) { --size; } if (size <= 0) { - fLastChar = '\0'; + if (!fReturnOnWrite) { + fLastChar = '\0'; + } return false; } + if (fReturnOnWrite) { + return true; + } SkASSERT(size < 16000); if (size > 3 && !strncmp("#end", data, 4)) { fMaxLF = 1; @@ -182,6 +191,7 @@ bool ParserCommon::writeBlockTrim(int size, const char* data) { } void ParserCommon::writePending() { + SkASSERT(!fReturnOnWrite); fPendingLF = SkTMin(fPendingLF, fMaxLF); bool wroteLF = false; while (fLinefeeds < fPendingLF) { @@ -214,6 +224,7 @@ void ParserCommon::writePending() { } void ParserCommon::writeString(const char* str) { + SkASSERT(!fReturnOnWrite); const size_t len = strlen(str); SkASSERT(len > 0); SkASSERT(' ' < str[0]); |