Home | History | Annotate | Download | only in xml

Lines Matching refs:node

14 bool SkXMLParser::parse(const SkDOM& dom, const SkDOMNode* node) {
15 const char* elemName = dom.getName(node);
21 SkDOM::AttrIter iter(dom, node);
30 if ((node = dom.getFirstChild(node)) != nullptr) {
32 if (!this->parse(dom, node)) {
35 } while ((node = dom.getNextSibling(node)) != nullptr);
73 const SkDOM::Node* SkDOM::getRootNode() const {
77 const SkDOM::Node* SkDOM::getFirstChild(const Node* node, const char name[]) const {
78 SkASSERT(node);
79 const Node* child = node->fFirstChild;
91 const SkDOM::Node* SkDOM::getNextSibling(const Node* node, const char name[]) const {
92 SkASSERT(node);
93 const Node* sibling = node->fNextSibling;
104 SkDOM::Type SkDOM::getType(const Node* node) const {
105 SkASSERT(node);
106 return (Type)node->fType;
109 const char* SkDOM::getName(const Node* node) const {
110 SkASSERT(node);
111 return node->fName;
114 const char* SkDOM::findAttr(const Node* node, const char name[]) const {
115 SkASSERT(node);
116 const Attr* attr = node->attrs();
117 const Attr* stop = attr + node->fAttrCount;
130 const SkDOM::Attr* SkDOM::getFirstAttr(const Node* node) const {
131 return node->fAttrCount ? node->attrs() : nullptr;
134 const SkDOM::Attr* SkDOM::getNextAttr(const Node* node, const Attr* attr) const {
135 SkASSERT(node);
139 return (attr - node->attrs() + 1) < node->fAttrCount ? attr + 1 : nullptr;
142 const char* SkDOM::getAttrName(const Node* node, const Attr* attr) const {
143 SkASSERT(node);
148 const char* SkDOM::getAttrValue(const Node* node, const Attr* attr) const {
149 SkASSERT(node);
156 SkDOM::AttrIter::AttrIter(const SkDOM&, const SkDOM::Node* node) {
157 SkASSERT(node);
158 fAttr = node->attrs();
159 fStop = fAttr + node->fAttrCount;
195 SkDOM::Node* getRoot() const { return fRoot; }
205 SkDOM::Node* node = fAlloc->make<SkDOM::Node>();
207 node->fName = fElemName;
208 node->fFirstChild = nullptr;
209 node->fAttrCount = SkToU16(attrCount);
210 node->fAttrs = attrs;
211 node->fType = fElemType;
214 node->fNextSibling = nullptr;
215 fRoot = node;
217 SkDOM::Node* parent = fParentStack.top();
219 node->fNextSibling = parent->fFirstChild;
220 parent->fFirstChild = node;
222 *fParentStack.push() = node;
224 sk_careful_memcpy(node->attrs(), fAttrs.begin(), attrCount * sizeof(SkDOM::Attr));
247 SkDOM::Node* parent;
251 SkDOM::Node* child = parent->fFirstChild;
252 SkDOM::Node* prev = nullptr;
254 SkDOM::Node* next = child->fNextSibling;
282 SkTDArray<SkDOM::Node*> fParentStack;
284 SkDOM::Node* fRoot;
294 const SkDOM::Node* SkDOM::build(SkStream& docStream) {
309 static void walk_dom(const SkDOM& dom, const SkDOM::Node* node, SkXMLParser* parser) {
310 const char* elem = dom.getName(node);
311 if (dom.getType(node) == SkDOM::kText_Type) {
312 SkASSERT(dom.countChildren(node) == 0);
319 SkDOM::AttrIter iter(dom, node);
325 node = dom.getFirstChild(node, nullptr);
326 while (node)
328 walk_dom(dom, node, parser);
329 node = dom.getNextSibling(node, nullptr);
335 const SkDOM::Node* SkDOM::copy(const SkDOM& dom, const SkDOM::Node* node) {
338 walk_dom(dom, node, &parser);
351 const SkDOM::Node* SkDOM::finishParsing() {
361 int SkDOM::countChildren(const Node* node, const char elem[]) const {
364 node = this->getFirstChild(node, elem);
365 while (node) {
367 node = this->getNextSibling(node, elem);
376 bool SkDOM::findS32(const Node* node, const char name[], int32_t* value) const {
377 const char* vstr = this->findAttr(node, name);
381 bool SkDOM::findScalars(const Node* node, const char name[], SkScalar value[], int count) const {
382 const char* vstr = this->findAttr(node, name);
386 bool SkDOM::findHex(const Node* node, const char name[], uint32_t* value) const {
387 const char* vstr = this->findAttr(node, name);
391 bool SkDOM::findBool(const Node* node, const char name[], bool* value) const {
392 const char* vstr = this->findAttr(node, name);
396 int SkDOM::findList(const Node* node, const char name[], const char list[]) const {
397 const char* vstr = this->findAttr(node, name);
401 bool SkDOM::hasAttr(const Node* node, const char name[], const char value[]) const {
402 const char* vstr = this->findAttr(node, name);
406 bool SkDOM::hasS32(const Node* node, const char name[], int32_t target) const {
407 const char* vstr = this->findAttr(node, name);
412 bool SkDOM::hasScalar(const Node* node, const char name[], SkScalar target) const {
413 const char* vstr = this->findAttr(node, name);
418 bool SkDOM::hasHex(const Node* node, const char name[], uint32_t target) const {
419 const char* vstr = this->findAttr(node, name);
424 bool SkDOM::hasBool(const Node* node, const char name[], bool target) const {
425 const char* vstr = this->findAttr(node, name);