Lines Matching defs:Line
37 void MarkupParser::parseLine(StringRef Line) {
41 this->Line = Line;
55 if (Line.empty())
59 if (std::optional<StringRef> MultilineEnd = parseMultiLineEnd(Line)) {
65 advanceTo(Line, MultilineEnd->end());
70 llvm::append_range(InProgressMultiline, Line);
71 Line = Line.drop_front(Line.size());
76 if (std::optional<MarkupNode> Element = parseElement(Line)) {
77 parseTextOutsideMarkup(takeTo(Line, Element->Text.begin()));
79 advanceTo(Line, Element->Text.end());
85 if (std::optional<StringRef> MultilineBegin = parseMultiLineBegin(Line)) {
87 parseTextOutsideMarkup(takeTo(Line, MultilineBegin->begin()));
91 Line = Line.drop_front(Line.size());
96 parseTextOutsideMarkup(Line);
97 Line = Line.drop_front(Line.size());
104 Line = {};
113 std::optional<MarkupNode> MarkupParser::parseElement(StringRef Line) {
116 size_t BeginPos = Line.find("{{{");
119 size_t EndPos = Line.find("}}}", BeginPos + 3);
124 Element.Text = Line.slice(BeginPos, EndPos);
125 Line = Line.substr(EndPos);
171 std::optional<StringRef> MarkupParser::parseMultiLineBegin(StringRef Line) {
173 size_t BeginPos = Line.rfind("{{{");
180 size_t EndPos = Line.find("}}}", BeginTagPos);
185 size_t EndTagPos = Line.find(':', BeginTagPos);
188 StringRef Tag = Line.slice(BeginTagPos, EndTagPos);
191 return Line.substr(BeginPos);
196 std::optional<StringRef> MarkupParser::parseMultiLineEnd(StringRef Line) {
197 size_t EndPos = Line.find("}}}");
200 return Line.take_front(EndPos + 3);