static void printField (fieldType i) { unsigned char letter = fieldDescs[i].spec->letter; const char *name; const char *language; if (letter == FIELD_LETTER_NO_USE) letter = '-'; if (! fieldDescs[i].spec->name) name = "NONE"; else name = getFieldName (i); if (fieldDescs[i].language == LANG_IGNORE) language = "NONE"; else language = getLanguageName (fieldDescs[i].language); printf((Option.machinable? "%c\t%s\t%s\t%s\t%s\t%s\n": MAKE_FIELD_FMT(c)), letter, name, isFieldEnabled (i)? "on": "off", language, getFieldDesc (i)->spec->renderEscaped? "TRUE": "FALSE", fieldDescs[i].spec->description? fieldDescs[i].spec->description: "NONE"); }
extern void debugEntry (const tagEntryInfo *const tag) { const char *const scope = tag->isFileScope ? "{fs}" : ""; if (debug (DEBUG_PARSE)) { langType lang = (tag->extensionFields.scopeLangType == LANG_AUTO) ? tag->langType : tag->extensionFields.scopeLangType; kindDefinition *scopeKindDef = getLanguageKind(lang, tag->extensionFields.scopeKindIndex); printf ("<#%s%s:%s", scope, getTagKindName(tag), tag->name); if (tag->extensionFields.scopeKindIndex != KIND_GHOST_INDEX && tag->extensionFields.scopeName != NULL) printf (" [%s:%s]", scopeKindDef->name, tag->extensionFields.scopeName); if (isFieldEnabled (FIELD_INHERITANCE) && tag->extensionFields.inheritance != NULL) printf (" [inherits:%s]", tag->extensionFields.inheritance); if (isFieldEnabled (FIELD_FILE_SCOPE) && tag->isFileScope && ! isInputHeaderFile ()) printf (" [file:]"); if (isFieldEnabled (FIELD_ACCESS) && tag->extensionFields.access != NULL) printf (" [access:%s]", tag->extensionFields.access); if (isFieldEnabled (FIELD_IMPLEMENTATION) && tag->extensionFields.implementation != NULL) printf (" [imp:%s]", tag->extensionFields.implementation); if (isFieldEnabled (FIELD_TYPE_REF) && tag->extensionFields.typeRef [0] != NULL && tag->extensionFields.typeRef [1] != NULL) printf (" [%s:%s]", tag->extensionFields.typeRef [0], tag->extensionFields.typeRef [1]); printf ("#>"); fflush (stdout); } }
static void addExtensionFields (json_t *response, const tagEntryInfo *const tag) { int k; /* FIELD_KIND has no name; getFieldName (FIELD_KIND) returns NULL. FIELD_KIND_LONG does, too. That cannot be changed to keep the compatibility of tags file format. Use FIELD_KIND_KEY instead */ if (isFieldEnabled (FIELD_KIND) || isFieldEnabled (FIELD_KIND_LONG)) enableField (FIELD_KIND_KEY, true, false); /* FIELD_SCOPE has no name; getFieldName (FIELD_KIND_KEY) returns NULL. That cannot be changed to keep the compatibility of tags file format. Use FIELD_SCOPE_KEY and FIELD_SCOPE_KIND_LONG instead. */ if (isFieldEnabled (FIELD_SCOPE)) { enableField (FIELD_SCOPE_KEY, true, false); enableField (FIELD_SCOPE_KIND_LONG, true, false); } for (k = FIELD_EXTENSION_START; k <= FIELD_BUILTIN_LAST; k++) renderExtensionFieldMaybe (k, tag, response); }
static void addParserFields (json_t *response, const tagEntryInfo *const tag) { unsigned int i; unsigned int ftype; for (i = 0; i < tag->usedParserFields; i++) { ftype = tag->parserFields [i].ftype; if (! isFieldEnabled (ftype)) continue; json_object_set_new (response, getFieldName (ftype), json_string (tag->parserFields [i].value)); } }
static void renderExtensionFieldMaybe (int xftype, const tagEntryInfo *const tag, json_t *response) { const char *fname = getFieldName (xftype); if (fname && isFieldRenderable (xftype) && isFieldEnabled (xftype) && doesFieldHaveValue (xftype, tag)) { switch (xftype) { case FIELD_LINE_NUMBER: json_object_set_new (response, fname, json_integer (tag->lineNumber)); break; case FIELD_FILE_SCOPE: json_object_set_new (response, fname, json_boolean(1)); break; default: json_object_set_new (response, fname, escapeFieldValue (tag, xftype, false)); } } }