extern void attachYamlPosition (tagEntryInfo *tag, yaml_token_t *token, bool asEndPosition) { unsigned int ln = token->start_mark.line + 1; if (asEndPosition) tag->extensionFields.endLine = ln; else { tag->lineNumber = ln; tag->filePosition = getInputFilePositionForLine (tag->lineNumber); } }
static void simpleXpathMakeTag (xmlNode *node, const tagXpathMakeTagSpec *spec, const kindOption* const kinds, void *userData) { tagEntryInfo tag; xmlChar* str; const kindOption *kind; char *path; str = xmlNodeGetContent(node); if (str == NULL) return; kind = kinds + spec->kind; if (spec->role == ROLE_INDEX_DEFINITION) initTagEntry (&tag, (char *)str, kind); else if (isXtagEnabled(XTAG_REFERENCE_TAGS)) initRefTagEntry (&tag, (char *)str, kind, spec->role); else goto out; tag.lineNumber = xmlGetLineNo (node); tag.filePosition = getInputFilePositionForLine (tag.lineNumber); path = (char *)xmlGetNodePath (node); tag.extensionFields.xpath = path; if (spec->make) spec->make (node, spec, &tag, userData); else makeTagEntry (&tag); if (path) xmlFree (path); out: xmlFree (str); }
xmlXPathContext *ctx __unused__, void *userData __unused__); static void makeTagForProperties (xmlNode *node, const struct sTagXpathRecurSpec *spec __unused__, xmlXPathContext *ctx __unused__, void *userData __unused__) { const xmlChar* str; tagEntryInfo tag; str = node->name; initTagEntry (&tag, (char *)str, Maven2Kinds + K_PROPERTY); tag.lineNumber = xmlGetLineNo (node); tag.filePosition = getInputFilePositionForLine (tag.lineNumber); makeTagEntry (&tag); } static tagXpathTable maven2XpathMainTable[] = { { "/*[local-name()='project']/*[local-name()='groupId']", LXPATH_TABLE_DO_MAKE, { .makeTagSpec = { K_GROUP_ID, ROLE_INDEX_DEFINITION, makeTagWithScope } } }, { "/*[local-name()='project']/*[local-name()='parent']", LXPATH_TABLE_DO_RECUR, { .recurSpec = { makeTagForParent } } }, { "/*[local-name()='project']/*[local-name()='dependencies']/*[local-name()='dependency']",