Lines Matching defs:stack

22 #include <stack>
43 std::stack<xml::Element*> node_stack;
65 static void FinishPendingText(Stack* stack) {
66 if (stack->last_text_node != nullptr) {
67 if (!stack->last_text_node->text.empty()) {
68 CHECK(!stack->node_stack.empty());
69 stack->node_stack.top()->AppendChild(std::move(stack->last_text_node));
73 stack->last_text_node = nullptr;
79 Stack* stack = reinterpret_cast<Stack*>(XML_GetUserData(parser));
80 FinishPendingText(stack);
88 if (stack->pending_element == nullptr) {
89 stack->pending_element = util::make_unique<Element>();
91 stack->pending_element->namespace_decls.push_back(std::move(decl));
96 Stack* stack = reinterpret_cast<Stack*>(XML_GetUserData(parser));
97 FinishPendingText(stack);
107 Stack* stack = reinterpret_cast<Stack*>(XML_GetUserData(parser));
108 FinishPendingText(stack);
111 if (stack->pending_element != nullptr) {
112 el = std::move(stack->pending_element);
119 el->comment = std::move(stack->pending_comment);
133 // Add to the stack.
135 if (!stack->node_stack.empty()) {
136 stack->node_stack.top()->AppendChild(std::move(el));
138 stack->root = std::move(el);
140 stack->node_stack.push(this_el);
145 Stack* stack = reinterpret_cast<Stack*>(XML_GetUserData(parser));
146 FinishPendingText(stack);
148 CHECK(!stack->node_stack.empty());
149 // stack->nodeStack.top()->comment = std::move(stack->pendingComment);
150 stack->node_stack.pop();
155 Stack* stack = reinterpret_cast<Stack*>(XML_GetUserData(parser));
163 if (stack->last_text_node != nullptr) {
164 stack->last_text_node->text.append(str.data(), str.size());
168 stack->last_text_node = util::make_unique<Text>();
169 stack->last_text_node->line_number = XML_GetCurrentLineNumber(parser);
170 stack->last_text_node->column_number = XML_GetCurrentColumnNumber(parser);
171 stack->last_text_node->text = str.to_string();
176 Stack* stack = reinterpret_cast<Stack*>(XML_GetUserData(parser));
177 FinishPendingText(stack);
179 if (!stack->pending_comment.empty()) {
180 stack->pending_comment += '\n';
182 stack->pending_comment += comment;
186 Stack stack;
190 XML_SetUserData(parser.get(), &stack);
219 std::move(stack.root));
263 std::stack<Element*> node_stack;