aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/bookmaker/mdOut.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/bookmaker/mdOut.cpp')
-rw-r--r--tools/bookmaker/mdOut.cpp26
1 files changed, 24 insertions, 2 deletions
diff --git a/tools/bookmaker/mdOut.cpp b/tools/bookmaker/mdOut.cpp
index f74853b470..ff1bff2634 100644
--- a/tools/bookmaker/mdOut.cpp
+++ b/tools/bookmaker/mdOut.cpp
@@ -166,7 +166,9 @@ string MdOut::addReferences(const char* refStart, const char* refEnd,
// look for Sk / sk / SK ..
if (!ref.compare(0, 2, "Sk") && ref != "Skew" && ref != "Skews" &&
ref != "Skip" && ref != "Skips") {
- t.reportError("missed Sk prefixed");
+ if (BmhParser::Resolvable::kOut != resolvable) {
+ t.reportError("missed Sk prefixed");
+ }
return result;
}
if (!ref.compare(0, 2, "SK")) {
@@ -744,7 +746,9 @@ void MdOut::markTypeOut(Definition* def) {
const char* textStart = def->fContentStart;
if (MarkType::kParam != def->fMarkType && MarkType::kConst != def->fMarkType &&
(!def->fParent || MarkType::kConst != def->fParent->fMarkType) &&
- TableState::kNone != fTableState) {
+ TableState::kNone != fTableState &&
+ (MarkType::kPhraseRef != def->fMarkType || !def->fParent ||
+ MarkType::kParam != def->fParent->fMarkType)) {
this->writePending();
FPRINTF("</table>");
this->lf(2);
@@ -1088,6 +1092,22 @@ void MdOut::markTypeOut(Definition* def) {
break;
case MarkType::kWidth:
break;
+ case MarkType::kPhraseDef:
+ break;
+ case MarkType::kPhraseRef:
+ if (fBmhParser.fPhraseMap.end() == fBmhParser.fPhraseMap.find(def->fName)) {
+ def->reportError<void>("missing phrase definition");
+ } else {
+ if (fColumn && ' ' >= def->fStart[0]) {
+ this->writeSpace();
+ }
+ Definition* phraseRef = fBmhParser.fPhraseMap.find(def->fName)->second;
+ this->childrenOut(phraseRef, phraseRef->fContentStart);
+ if (' ' >= def->fContentStart[0]) {
+ this->writeSpace();
+ }
+ }
+ break;
default:
SkDebugf("fatal error: MarkType::k%s unhandled in %s()\n",
fBmhParser.fMaps[(int) def->fMarkType].fName, __func__);
@@ -1195,6 +1215,8 @@ void MdOut::markTypeOut(Definition* def) {
case MarkType::kTable:
this->lf(2);
break;
+ case MarkType::kPhraseDef:
+ break;
case MarkType::kPrivate:
break;
default: