43 void feed(
char c, std::string& result);
45 std::string& result() {
return result_; }
48 void flushPending(std::string& result);
61 eStrongEmphasis = eEmphasis | eStrong,
78 void toggleState(EStateFlags state);
79 EStateFlags state()
const {
return state_; }
82 void closeAllFormats(std::string& result);
85 void replayBufferedText(
const std::string& text, std::string& result);
90 void resolveDelimRun(
char next, std::string& result);
93 static bool isWhitespace(
char c);
95 static bool isWordChar(
char c);
97 static bool isPunctuation(
char c);
100 void openEmph(
char delim);
105 void triggerPendingDelete(std::string& result);
108 void flushText(std::string& result);
111 static std::string stripCodeSpan(
const std::string& raw);
115 EStateFlags state_ = EStateFlags::ePlain;
117 int strongDepth_ = 0;
119 EStateFlags pendingState_ = EStateFlags::ePlain;
120 EParseMode mode_ = EParseMode::eNormal;
122 std::string linkText_;
123 std::string linkUrl_;
124 std::string codeBuf_;
125 char delimRunChar_ = 0;
126 int delimRunLen_ = 0;
127 char runPrevChar_ = 0;
128 bool tildePending_ =
false;
129 bool textEmitted_ =
false;
130 bool emphasisOpenedFirst_ =
false;
131 bool pendingBang_ =
false;
132 int codeSpanBackticks_ = 0;
133 int codeSpanTickRun_ = 0;