Lines Matching full:element

63              "At most one multi-line element can be finished at a time.");  in nextNode()
65 // Parse the multi-line element as if it were contiguous. in nextNode()
70 // The whole line is part of the multi-line element. in nextNode()
76 // Find the first valid markup element, if any. in nextNode()
77 if (std::optional<MarkupNode> Element = parseElement(Line)) { in nextNode() local
78 parseTextOutsideMarkup(takeTo(Line, Element->Text.begin())); in nextNode()
79 Buffer.push_back(std::move(*Element)); in nextNode()
80 advanceTo(Line, Element->Text.end()); in nextNode()
85 // multi-line element. in nextNode()
87 // Emit any text before the element. in nextNode()
90 // Begin recording the multi-line element. in nextNode()
112 // Finds and returns the next valid markup element in the given line. Returns
116 // Find next element using begin and end markers. in parseElement()
124 MarkupNode Element; in parseElement() local
125 Element.Text = Line.slice(BeginPos, EndPos); in parseElement()
129 StringRef Content = Element.Text.drop_front(3).drop_back(3); in parseElement()
131 std::tie(Element.Tag, FieldsContent) = Content.split(':'); in parseElement()
132 if (Element.Tag.empty()) in parseElement()
137 FieldsContent.split(Element.Fields, ":"); in parseElement()
139 Element.Fields.push_back(FieldsContent); in parseElement()
141 return Element; in parseElement()
159 // Emit any text before the SGR element. in parseTextOutsideMarkup()
171 // start of a multi-line element. If so, returns the beginning.
180 // a multi-line element. in parseMultiLineBegin()
195 // See if the line begins with the ending of an in-progress multi-line element.