geany  1.38
About: Geany is a text editor (using GTK2) with basic features of an integrated development environment (syntax highlighting, code folding, symbol name auto-completion, ...). F: office T: editor programming GTK+ IDE
  Fossies Dox: geany-1.38.tar.bz2  ("unofficial" and yet experimental doxygen-generated source code documentation)  

parse.c File Reference
#include "general.h"
#include "options_p.h"
#include <string.h>
#include "ctags.h"
#include "debug.h"
#include "entry_p.h"
#include "field_p.h"
#include "flags_p.h"
#include "htable.h"
#include "keyword.h"
#include "lxpath_p.h"
#include "param.h"
#include "param_p.h"
#include "parse_p.h"
#include "parsers_p.h"
#include "promise.h"
#include "promise_p.h"
#include "ptag_p.h"
#include "ptrarray.h"
#include "read.h"
#include "read_p.h"
#include "routines.h"
#include "routines_p.h"
#include "stats_p.h"
#include "subparser.h"
#include "subparser_p.h"
#include "trace.h"
#include "trashbox.h"
#include "trashbox_p.h"
#include "vstring.h"
#include "writer_p.h"
#include "xtag_p.h"
Include dependency graph for parse.c:

Go to the source code of this file.

Classes

struct  parserCandidate
 
struct  sParserObject
 
struct  getLangCtx
 
struct  taster
 
struct  GetLanguageRequest
 
struct  preLangDefFlagData
 
struct  langKindDefinitionStruct
 
struct  langKindRoleDefinitionStruct
 
struct  makeKindDescriptionPseudoTagData
 

Macros

#define OPTION_WRITE
 
#define RING_SIZE   5
 
#define GLC_FOPEN_IF_NECESSARY0(_glc_, _label_)
 
#define GLC_FOPEN_IF_NECESSARY(_glc_, _label_, _doesParserRequireMemoryStream_)
 
#define GLC_FCLOSE(_glc_)
 
#define LANGDEF_FLAG_DEDICATED   "dedicated"
 
#define LANGDEF_FLAG_SHARED   "shared"
 
#define LANGDEF_FLAG_BIDIR   "bidirectional"
 
#define PREFIX   "_roledef-"
 
#define PREFIX_LEN   strlen(PREFIX)
 
#define PREFIX   "kinds-"
 
#define PREFIX_LEN   strlen(PREFIX)
 
#define PREFIX   "roles-"
 
#define PREFIX_LEN   strlen(PREFIX)
 
#define PREFIX   "alias-"
 
#define pretendOptionPrefix   "_pretend-"
 
#define SELF_TEST_PARSER   "CTagsSelfTest"
 

Typedefs

typedef struct sParserObject parserObject
 
typedef void(* languageCallback) (langType language, void *user_data)
 
typedef void(* kindCallback) (langType language, int kindIndex, void *user_data)
 

Enumerations

enum  specType {
  SPEC_NONE , SPEC_NAME , SPEC_ALIAS = SPEC_NAME , SPEC_EXTENSION ,
  SPEC_PATTERN
}
 
enum  CTST_Kind {
  K_BROKEN , K_NO_LETTER , K_NO_LONG_NAME , K_NOTHING_SPECIAL ,
  K_GUEST_BEGINNING , K_GUEST_END , K_DISABLED , K_ENABLED ,
  K_ROLES , K_ROLES_DISABLED , K_FIELD_TESTING , KIND_COUNT
}
 
enum  CTST_BrokenRole { R_BROKEN_REF }
 
enum  CTST_DisabledKindRole { R_DISABLED_KIND_DISABLED_ROLE , R_DISABLED_KIND_ENABLED_ROLE }
 
enum  CTST_EnabledKindRole { R_ENABLED_KIND_DISABLED_ROLE , R_ENABLED_KIND_ENABLED_ROLE }
 
enum  CTST_RolesKindRole { R_ROLES_KIND_A_ROLE , R_ROLES_KIND_B_ROLE , R_ROLES_KIND_C_ROLE , R_ROLES_KIND_D_ROLE }
 
enum  CTST_RolesDisableKindRole { R_ROLES_DISABLED_KIND_A_ROLE , R_ROLES_DISABLED_KIND_B_ROLE }
 
enum  CTSTField { F_BOOLEAN_FIELD , F_BOOLEAN_AND_STRING_FIELD , COUNT_FIELD }
 

Functions

static void lazyInitialize (langType language)
 
static void addParserPseudoTags (langType language)
 
static void installKeywordTable (const langType language)
 
static void installTagRegexTable (const langType language)
 
static void installTagXpathTable (const langType language)
 
static void anonResetMaybe (parserObject *parser)
 
static void setupAnon (void)
 
static void teardownAnon (void)
 
static void uninstallTagXpathTable (const langType language)
 
static parserDefinitionFallbackParser (void)
 
static parserDefinitionCTagsParser (void)
 
static parserDefinitionCTagsSelfTestParser (void)
 
static bool isLanguageNameChar (int c)
 
unsigned int countParsers (void)
 
int makeSimpleTag (const vString *const name, const int kindIndex)
 
int makeSimpleRefTag (const vString *const name, const int kindIndex, int roleIndex)
 
int makeSimplePlaceholder (const vString *const name)
 
bool isLanguageEnabled (const langType language)
 
bool isLanguageVisible (const langType language)
 
parserDefinitionparserNew (const char *name)
 
bool doesLanguageAllowNullTag (const langType language)
 
bool doesLanguageRequestAutomaticFQTag (const langType language)
 
static const char * getLanguageNameFull (const langType language, bool noPretending)
 
const char * getLanguageName (const langType language)
 
const char * getLanguageKindName (const langType language, const int kindIndex)
 
int defineLanguageKind (const langType language, kindDefinition *def, freeKindDefFunc freeKindDef)
 
unsigned int countLanguageKinds (const langType language)
 
unsigned int countLanguageRoles (const langType language, int kindIndex)
 
kindDefinitiongetLanguageKind (const langType language, int kindIndex)
 
kindDefinitiongetLanguageKindForLetter (const langType language, char kindLetter)
 
kindDefinitiongetLanguageKindForName (const langType language, const char *kindName)
 
roleDefinitiongetLanguageRole (const langType language, int kindIndex, int roleIndex)
 
roleDefinitiongetLanguageRoleForName (const langType language, int kindIndex, const char *roleName)
 
langType getNamedLanguageFull (const char *const name, size_t len, bool noPretending)
 
langType getNamedLanguage (const char *const name, size_t len)
 
static langType getNameOrAliasesLanguageAndSpec (const char *const key, langType start_index, const char **const spec, enum specType *specType)
 
langType getLanguageForCommand (const char *const command, langType startFrom)
 
static langType getPatternLanguageAndSpec (const char *const baseName, langType start_index, const char **const spec, enum specType *specType)
 
langType getLanguageForFilename (const char *const filename, langType startFrom)
 
const char * scopeSeparatorFor (langType language, int kindIndex, int parentKindIndex)
 
static bool processLangDefineScopesep (const langType language, const char *const option, const char *const parameter)
 
bool processScopesepOption (const char *const option, const char *const parameter)
 
static parserCandidateparserCandidateNew (unsigned int count)
 
static unsigned int nominateLanguageCandidates (const char *const key, parserCandidate **candidates)
 
static unsigned int nominateLanguageCandidatesForPattern (const char *const baseName, parserCandidate **candidates)
 
static vStringextractEmacsModeAtFirstLine (MIO *input)
 
static vStringdetermineInterpreter (const char *const cmd)
 
static vStringextractInterpreter (MIO *input)
 
static vStringdetermineEmacsModeAtFirstLine (const char *const line)
 
static vStringdetermineEmacsModeAtEOF (MIO *const fp)
 
static vStringextractEmacsModeLanguageAtEOF (MIO *input)
 
static vStringdetermineVimFileType (const char *const modeline)
 
static vStringextractVimFileType (MIO *input)
 
static vStringextractMarkGeneric (MIO *input, vString *(*determiner)(const char *const, void *), void *data)
 
static vStringdetermineZshAutoloadTag (const char *const modeline, void *data)
 
static vStringextractZshAutoloadTag (MIO *input)
 
static vStringdeterminePHPMark (const char *const modeline, void *data)
 
static vStringextractPHPMark (MIO *input)
 
static langType tasteLanguage (struct getLangCtx *glc, const struct taster *const tasters, int n_tasters, langType *fallback)
 
static bool hasTheSameSelector (langType lang, selectLanguage candidate_selector)
 
static selectLanguage commonSelector (const parserCandidate *candidates, int n_candidates)
 
static int pickLanguageBySelection (selectLanguage selector, MIO *input, parserCandidate *candidates, unsigned int nCandidates)
 
static int compareParsersByName (const void *a, const void *b)
 
static int sortParserCandidatesBySpecType (const void *a, const void *b)
 
static unsigned int sortAndFilterParserCandidates (parserCandidate *candidates, unsigned int n_candidates)
 
static void verboseReportCandidate (const char *header, parserCandidate *candidates, unsigned int n_candidates)
 
static bool doesCandidatesRequireMemoryStream (const parserCandidate *candidates, int n_candidates)
 
static langType getSpecLanguageCommon (const char *const spec, struct getLangCtx *glc, unsigned int nominate(const char *const, parserCandidate **), langType *fallback)
 
static langType getSpecLanguage (const char *const spec, struct getLangCtx *glc, langType *fallback)
 
static langType getPatternLanguage (const char *const baseName, struct getLangCtx *glc, langType *fallback)
 
static langType getFileLanguageForRequestInternal (struct GetLanguageRequest *req)
 
static langType getFileLanguageForRequest (struct GetLanguageRequest *req)
 
langType getLanguageForFilenameAndContents (const char *const fileName)
 
static void foreachLanguage (languageCallback callback, void *user_data)
 
static void printLanguageMap (const langType language, FILE *fp)
 
void installLanguageMapDefault (const langType language)
 
void installLanguageMapDefaults (void)
 
void installLanguageAliasesDefault (const langType language)
 
void installLanguageAliasesDefaults (void)
 
void clearLanguageMap (const langType language)
 
void clearLanguageAliases (const langType language)
 
static bool removeLanguagePatternMap1 (const langType language, const char *const pattern)
 
bool removeLanguagePatternMap (const langType language, const char *const pattern)
 
void addLanguagePatternMap (const langType language, const char *ptrn, bool exclusiveInAllLanguages)
 
static bool removeLanguageExtensionMap1 (const langType language, const char *const extension)
 
bool removeLanguageExtensionMap (const langType language, const char *const extension)
 
void addLanguageExtensionMap (const langType language, const char *extension, bool exclusiveInAllLanguages)
 
void addLanguageAlias (const langType language, const char *alias)
 
void enableLanguage (const langType language, const bool state)
 
void enableLanguages (const bool state)
 
static void installFieldDefinition (const langType language)
 
static void installXtagDefinition (const langType language)
 
static void initializeParserOne (langType lang)
 
void initializeParser (langType lang)
 
static void linkDependenciesAtInitializeParsing (parserDefinition *const parser)
 
static void initializeParsingCommon (parserDefinition *def, bool is_builtin)
 
void initializeParsing (void)
 
void freeParserResources (void)
 
static void doNothing (void)
 
static void optlibRunBaseParser (void)
 
static bool optlibIsDedicatedSubparser (parserDefinition *def)
 
void enableDefaultFileKind (bool state)
 
static void pre_lang_def_flag_base_long (const char *const optflag, const char *const param, void *data)
 
static void pre_lang_def_flag_direction_long (const char *const optflag, const char *const param, void *data)
 
static void pre_lang_def_flag_autoFQTag_long (const char *const optflag, const char *const param, void *data)
 
static void optlibFreeDep (langType lang, bool initialized)
 
static parserDefinitionOptlibParser (const char *name, const char *base, subparserRunDirection direction)
 
void processLanguageDefineOption (const char *const option, const char *const parameter)
 
bool isLanguageKindEnabled (const langType language, int kindIndex)
 
bool isLanguageRoleEnabled (const langType language, int kindIndex, int roleIndex)
 
bool isLanguageKindRefOnly (const langType language, int kindIndex)
 
static void resetLanguageKinds (const langType language, const bool mode)
 
static bool enableLanguageKindForLetter (const langType language, const int kind, const bool mode)
 
static bool enableLanguageKindForName (const langType language, const char *const name, const bool mode)
 
static void processLangKindDefinition (const langType language, const char *const option, const char *const parameter)
 
static void freeKdef (kindDefinition *kdef)
 
static char * extractDescriptionAndFlags (const char *input, const char **flags)
 
static void pre_kind_def_flag_refonly_long (const char *const optflag, const char *const param, void *data)
 
static bool processLangDefineKind (const langType language, const char *const option, const char *const parameter)
 
static void freeRdef (roleDefinition *rdef)
 
static bool processLangDefineRole (const langType language, const char *const kindSpec, const char *const option, const char *const parameter)
 
bool processKinddefOption (const char *const option, const char *const parameter)
 
bool processRoledefOption (const char *const option, const char *const parameter)
 
static void processLangKindDefinitionEach (langType lang, void *user_data)
 
static bool parameterEnablingAllOrFileKind (const char *const option, const char *const parameter, bool following_plus_or_minus_op)
 
bool processKindsOption (const char *const option, const char *const parameter)
 
static void foreachKind (langType language, kindCallback callback, void *user_data)
 
static void resetKindRoles (const langType language, int kindIndex, const bool mode)
 
static void resetKindRolesAsCallback (const langType language, int kindIndex, void *user_data)
 
static void processLangKindRoleDefinition (const langType language, const int kindIndex, const char *const option, const char *const parameter)
 
static void processLangKindRoleDefinitionEach (langType language, void *user_data)
 
bool processRolesOption (const char *const option, const char *const parameter)
 
void printLanguageRoles (const langType language, const char *kindspecs, bool withListHeader, bool machinable, FILE *fp)
 
static void printKinds (langType language, bool indent, struct colprintTable *table)
 
void printLanguageKinds (const langType language, bool allKindFields, bool withListHeader, bool machinable, FILE *fp)
 
static void printParameters (struct colprintTable *table, langType language)
 
void printLanguageParameters (const langType language, bool withListHeader, bool machinable, FILE *fp)
 
static void processLangAliasOption (const langType language, const char *const parameter)
 
bool processAliasOption (const char *const option, const char *const parameter)
 
static void printMaps (const langType language, langmapType type)
 
static struct colprintTablemapColprintTableNew (langmapType type)
 
static void mapColprintAddLanguage (struct colprintTable *table, langmapType type, const parserObject *parser)
 
void printLanguageMaps (const langType language, langmapType type, bool withListHeader, bool machinable, FILE *fp)
 
static struct colprintTablealiasColprintTableNew (void)
 
static void aliasColprintAddLanguage (struct colprintTable *table, const parserObject *parser)
 
void printLanguageAliases (const langType language, bool withListHeader, bool machinable, FILE *fp)
 
static void printLanguage (const langType language, parserDefinition **ltable)
 
void printLanguageList (void)
 
static void xtagDefinitionDestroy (xtagDefinition *xdef)
 
static bool processLangDefineExtra (const langType language, const char *const option, const char *const parameter)
 
bool processExtradefOption (const char *const option, const char *const parameter)
 
static void fieldDefinitionDestroy (fieldDefinition *fdef)
 
static bool processLangDefineField (const langType language, const char *const option, const char *const parameter)
 
bool processFielddefOption (const char *const option, const char *const parameter)
 
static rescanReason createTagsForFile (const langType language, const unsigned int passCount)
 
void notifyLanguageRegexInputStart (langType language)
 
void notifyLanguageRegexInputEnd (langType language)
 
static unsigned int parserCorkFlags (parserDefinition *parser)
 
static void setupLanguageSubparsersInUse (const langType language)
 
static subparserteardownLanguageSubparsersInUse (const langType language)
 
static void initializeParserStats (parserObject *parser)
 
void printParserStatisticsIfUsed (langType language)
 
static bool createTagsWithFallback1 (const langType language, langType *exclusive_subparser)
 
bool runParserInNarrowedInputStream (const langType language, unsigned long startLine, long startCharOffset, unsigned long endLine, long endCharOffset, unsigned long sourceLineOffset, int promise)
 
static bool createTagsWithFallback (const char *const fileName, const langType language, MIO *mio, bool *failureInOpenning)
 
static void printGuessedParser (const char *const fileName, langType language)
 
bool doesParserRequireMemoryStream (const langType language)
 
bool parseFile (const char *const fileName)
 
static bool parseMio (const char *const fileName, langType language, MIO *mio, bool useSourceFileTagPath, void *clientData)
 
bool parseFileWithMio (const char *const fileName, MIO *mio, void *clientData)
 
bool parseRawBuffer (const char *fileName, unsigned char *buffer, size_t bufferSize, const langType language, void *clientData)
 
static void matchLanguageMultilineRegexCommon (const langType language, bool(*func)(struct lregexControlBlock *, const vString *const), const vString *const allLines)
 
void matchLanguageMultilineRegex (const langType language, const vString *const allLines)
 
void matchLanguageMultitableRegex (const langType language, const vString *const allLines)
 
void processLanguageMultitableExtendingOption (langType language, const char *const parameter)
 
static bool lregexQueryParserAndSubparsers (const langType language, bool(*predicate)(struct lregexControlBlock *))
 
bool hasLanguageMultilineRegexPatterns (const langType language)
 
void addLanguageCallbackRegex (const langType language, const char *const regex, const char *const flags, const regexCallback callback, bool *disabled, void *userData)
 
bool hasLanguageScopeActionInRegex (const langType language)
 
void matchLanguageRegex (const langType language, const vString *const line)
 
bool processLanguageRegexOption (langType language, enum regexParserType regptype, const char *const parameter)
 
bool processTabledefOption (const char *const option, const char *const parameter)
 
void useRegexMethod (const langType language)
 
static void useXpathMethod (const langType language)
 
const tagXpathTableTablegetXpathTableTable (const langType language, unsigned int nth)
 
unsigned int getXpathFileSpecCount (const langType language)
 
xpathFileSpecgetXpathFileSpec (const langType language, unsigned int nth)
 
bool makeKindSeparatorsPseudoTags (const langType language, const ptagDesc *pdesc)
 
static bool makeKindDescriptionPseudoTag (kindDefinition *kind, void *user_data)
 
bool makeKindDescriptionsPseudoTags (const langType language, const ptagDesc *pdesc)
 
static bool makeFieldDescriptionPseudoTag (const langType language, fieldType f, const ptagDesc *pdesc)
 
bool makeFieldDescriptionsPseudoTags (const langType language, const ptagDesc *pdesc)
 
static bool makeExtraDescriptionPseudoTag (const langType language, xtagType x, const ptagDesc *pdesc)
 
bool makeExtraDescriptionsPseudoTags (const langType language, const ptagDesc *pdesc)
 
static unsigned int anonHash (const unsigned char *str)
 
void anonHashString (const char *filename, char buf[9])
 
void anonGenerate (vString *buffer, const char *prefix, int kind)
 
vStringanonGenerateNew (const char *prefix, int kind)
 
void applyParameter (const langType language, const char *name, const char *args)
 
subparsergetNextSubparser (subparser *last, bool includingNoneCraftedParser)
 
slaveParsergetNextSlaveParser (slaveParser *last)
 
void scheduleRunningBaseparser (int dependencyIndex)
 
bool isParserMarkedNoEmission (void)
 
subparsergetSubparserRunningBaseparser (void)
 
void printLanguageSubparsers (const langType language, bool withListHeader, bool machinable, FILE *fp)
 
void printLangdefFlags (bool withListHeader, bool machinable, FILE *fp)
 
void printKinddefFlags (bool withListHeader, bool machinable, FILE *fp)
 
void printLanguageMultitableStatistics (langType language)
 
void addLanguageRegexTable (const langType language, const char *name)
 
void addLanguageTagMultiTableRegex (const langType language, const char *const table_name, const char *const regex, const char *const name, const char *const kinds, const char *const flags, bool *disabled)
 
bool processPretendOption (const char *const option, const char *const parameter)
 
static void dontFindTags (void)
 
static void createCTSTTags (void)
 
static void initStatsCTST (langType lang)
 
static void printStatsCTST (langType lang)
 

Variables

const char * specTypeName []
 
static parserDefinitionFuncBuiltInParsers []
 
static parserObjectLanguageTable = NULL
 
static unsigned int LanguageCount = 0
 
static hashTableLanguageHTable = NULL
 
static kindDefinition defaultFileKind
 
static kindDefinition kindGhost
 
static const struct taster eager_tasters []
 
static flagDefinition PreLangDefFlagDef []
 
static flagDefinition PreKindDefFlagDef []
 
static ptrArrayparsersUsedInCurrentInput
 
static kindDefinition CtagsKinds []
 
static bool CTST_GatherStats
 
static int CTST_num_handled_char
 
static roleDefinition CTST_BrokenRoles []
 
static roleDefinition CTST_DisabledKindRoles []
 
static roleDefinition CTST_EnabledKindRoles []
 
static roleDefinition CTST_RolesKindRoles []
 
static roleDefinition CTST_RolesDisabledKindRoles []
 
static kindDefinition CTST_Kinds [KIND_COUNT]
 
static fieldDefinition CTSTFields [COUNT_FIELD]
 

Macro Definition Documentation

◆ GLC_FCLOSE

#define GLC_FCLOSE (   _glc_)
Value:
do { \
if ((_glc_)->input) { \
mio_unref((_glc_)->input); \
(_glc_)->input = NULL; \
} \
} while (0)
#define NULL
Definition: rbtree.h:150

Definition at line 1077 of file parse.c.

◆ GLC_FOPEN_IF_NECESSARY

#define GLC_FOPEN_IF_NECESSARY (   _glc_,
  _label_,
  _doesParserRequireMemoryStream_ 
)
Value:
do { \
if (!(_glc_)->input) \
GLC_FOPEN_IF_NECESSARY0 (_glc_, _label_); \
if ((_doesParserRequireMemoryStream_) && \
(mio_memory_get_data((_glc_)->input, NULL) == NULL)) \
{ \
MIO *tmp_ = (_glc_)->input; \
(_glc_)->input = mio_new_mio (tmp_, 0, -1); \
mio_unref (tmp_); \
if (!(_glc_)->input) { \
(_glc_)->err = true; \
goto _label_; \
} \
} \
} while (0)
unsigned char * mio_memory_get_data(MIO *mio, size_t *size)
mio_memory_get_data: @mio: A MIO object @size: (allow-none) (out): Return location for the length of ...
Definition: mio.c:457
MIO * mio_new_mio(MIO *base, long start, long size)
mio_new_mio: @base: The original mio @start: stream offset of the @base where new mio starts @size: t...
Definition: mio.c:364

Definition at line 1060 of file parse.c.

◆ GLC_FOPEN_IF_NECESSARY0

#define GLC_FOPEN_IF_NECESSARY0 (   _glc_,
  _label_ 
)
Value:
do { \
if (!(_glc_)->input) { \
(_glc_)->input = getMio((_glc_)->fileName, "rb", false); \
if (!(_glc_)->input) { \
(_glc_)->err = true; \
goto _label_; \
} \
} \
} while (0) \
MIO * getMio(const char *const fileName, const char *const openMode, bool memStreamRequired)
Definition: read.c:607

Definition at line 1050 of file parse.c.

◆ LANGDEF_FLAG_BIDIR

#define LANGDEF_FLAG_BIDIR   "bidirectional"

Definition at line 2063 of file parse.c.

◆ LANGDEF_FLAG_DEDICATED

#define LANGDEF_FLAG_DEDICATED   "dedicated"

Definition at line 2061 of file parse.c.

◆ LANGDEF_FLAG_SHARED

#define LANGDEF_FLAG_SHARED   "shared"

Definition at line 2062 of file parse.c.

◆ OPTION_WRITE

#define OPTION_WRITE

Definition at line 17 of file parse.c.

◆ PREFIX [1/4]

#define PREFIX   "_roledef-"

◆ PREFIX [2/4]

#define PREFIX   "kinds-"

◆ PREFIX [3/4]

#define PREFIX   "roles-"

◆ PREFIX [4/4]

#define PREFIX   "alias-"

◆ PREFIX_LEN [1/3]

#define PREFIX_LEN   strlen(PREFIX)

◆ PREFIX_LEN [2/3]

#define PREFIX_LEN   strlen(PREFIX)

◆ PREFIX_LEN [3/3]

#define PREFIX_LEN   strlen(PREFIX)

◆ pretendOptionPrefix

#define pretendOptionPrefix   "_pretend-"

◆ RING_SIZE

#define RING_SIZE   5

◆ SELF_TEST_PARSER

#define SELF_TEST_PARSER   "CTagsSelfTest"

Definition at line 5054 of file parse.c.

Typedef Documentation

◆ kindCallback

typedef void(* kindCallback) (langType language, int kindIndex, void *user_data)

Definition at line 2873 of file parse.c.

◆ languageCallback

typedef void(* languageCallback) (langType language, void *user_data)

Definition at line 1524 of file parse.c.

◆ parserObject

typedef struct sParserObject parserObject

Enumeration Type Documentation

◆ CTST_BrokenRole

Enumerator
R_BROKEN_REF 

Definition at line 5080 of file parse.c.

◆ CTST_DisabledKindRole

Enumerator
R_DISABLED_KIND_DISABLED_ROLE 
R_DISABLED_KIND_ENABLED_ROLE 

Definition at line 5088 of file parse.c.

◆ CTST_EnabledKindRole

Enumerator
R_ENABLED_KIND_DISABLED_ROLE 
R_ENABLED_KIND_ENABLED_ROLE 

Definition at line 5098 of file parse.c.

◆ CTST_Kind

enum CTST_Kind
Enumerator
K_BROKEN 
K_NO_LETTER 
K_NO_LONG_NAME 
K_NOTHING_SPECIAL 
K_GUEST_BEGINNING 
K_GUEST_END 
K_DISABLED 
K_ENABLED 
K_ROLES 
K_ROLES_DISABLED 
K_FIELD_TESTING 
KIND_COUNT 

Definition at line 5062 of file parse.c.

◆ CTST_RolesDisableKindRole

Enumerator
R_ROLES_DISABLED_KIND_A_ROLE 
R_ROLES_DISABLED_KIND_B_ROLE 

Definition at line 5122 of file parse.c.

◆ CTST_RolesKindRole

Enumerator
R_ROLES_KIND_A_ROLE 
R_ROLES_KIND_B_ROLE 
R_ROLES_KIND_C_ROLE 
R_ROLES_KIND_D_ROLE 

Definition at line 5108 of file parse.c.

◆ CTSTField

enum CTSTField
Enumerator
F_BOOLEAN_FIELD 
F_BOOLEAN_AND_STRING_FIELD 
COUNT_FIELD 

Definition at line 5158 of file parse.c.

◆ specType

enum specType
Enumerator
SPEC_NONE 
SPEC_NAME 
SPEC_ALIAS 
SPEC_EXTENSION 
SPEC_PATTERN 

Definition at line 58 of file parse.c.

Function Documentation

◆ addLanguageAlias()

void addLanguageAlias ( const langType  language,
const char *  alias 
)

◆ addLanguageCallbackRegex()

void addLanguageCallbackRegex ( const langType  language,
const char *const  regex,
const char *const  flags,
const regexCallback  callback,
bool *  disabled,
void *  userData 
)

Definition at line 4255 of file parse.c.

References addCallbackRegex(), and LanguageTable.

◆ addLanguageExtensionMap()

void addLanguageExtensionMap ( const langType  language,
const char *  extension,
bool  exclusiveInAllLanguages 
)

◆ addLanguagePatternMap()

void addLanguagePatternMap ( const langType  language,
const char *  ptrn,
bool  exclusiveInAllLanguages 
)

◆ addLanguageRegexTable()

void addLanguageRegexTable ( const langType  language,
const char *  name 
)

Definition at line 4936 of file parse.c.

References addRegexTable(), LanguageTable, sParserObject::lregexControlBlock, and name.

◆ addLanguageTagMultiTableRegex()

void addLanguageTagMultiTableRegex ( const langType  language,
const char *const  table_name,
const char *const  regex,
const char *const  name,
const char *const  kinds,
const char *const  flags,
bool *  disabled 
)

◆ addParserPseudoTags()

static void addParserPseudoTags ( langType  language)
static

◆ aliasColprintAddLanguage()

◆ aliasColprintTableNew()

static struct colprintTable * aliasColprintTableNew ( void  )
static

Definition at line 3478 of file parse.c.

References colprintTableNew(), and NULL.

Referenced by printLanguageAliases().

◆ anonGenerate()

void anonGenerate ( vString buffer,
const char *  prefix,
int  kind 
)

◆ anonGenerateNew()

vString * anonGenerateNew ( const char *  prefix,
int  kind 
)

Definition at line 4720 of file parse.c.

References anonGenerate(), and vStringNew().

Referenced by matchTagPattern().

◆ anonHash()

static unsigned int anonHash ( const unsigned char *  str)
static

Definition at line 4682 of file parse.c.

Referenced by anonHashString().

◆ anonHashString()

void anonHashString ( const char *  filename,
char  buf[9] 
)

Definition at line 4693 of file parse.c.

References anonHash(), and filename.

Referenced by anonGenerate(), and processAnonHashOption().

◆ anonResetMaybe()

static void anonResetMaybe ( parserObject parser)
static

Definition at line 4673 of file parse.c.

References parsersUsedInCurrentInput, ptrArrayAdd(), and ptrArrayHas().

Referenced by createTagsWithFallback1().

◆ applyParameter()

◆ clearLanguageAliases()

void clearLanguageAliases ( const langType  language)

◆ clearLanguageMap()

void clearLanguageMap ( const langType  language)

Definition at line 1636 of file parse.c.

References Assert, LanguageCount, LanguageTable, and stringListClear().

Referenced by processLanguageMap(), and processMapOption().

◆ commonSelector()

static selectLanguage commonSelector ( const parserCandidate candidates,
int  n_candidates 
)
static

◆ compareParsersByName()

static int compareParsersByName ( const void *  a,
const void *  b 
)
static

Definition at line 1190 of file parse.c.

References strcasecmp.

Referenced by printLanguageList(), and sortParserCandidatesBySpecType().

◆ countLanguageKinds()

unsigned int countLanguageKinds ( const langType  language)

◆ countLanguageRoles()

unsigned int countLanguageRoles ( const langType  language,
int  kindIndex 
)

◆ countParsers()

unsigned int countParsers ( void  )

◆ createCTSTTags()

◆ createTagsForFile()

◆ createTagsWithFallback()

static bool createTagsWithFallback ( const char *const  fileName,
const langType  language,
MIO mio,
bool *  failureInOpenning 
)
static

◆ createTagsWithFallback1()

◆ CTagsParser()

◆ CTagsSelfTestParser()

◆ defineLanguageKind()

int defineLanguageKind ( const langType  language,
kindDefinition def,
freeKindDefFunc  freeKindDef 
)

Definition at line 301 of file parse.c.

References defineKind(), and LanguageTable.

Referenced by setKind().

◆ determineEmacsModeAtEOF()

static vString * determineEmacsModeAtEOF ( MIO *const  fp)
static

◆ determineEmacsModeAtFirstLine()

static vString * determineEmacsModeAtFirstLine ( const char *const  line)
static

◆ determineInterpreter()

static vString * determineInterpreter ( const char *const  cmd)
static

Definition at line 743 of file parse.c.

References vStringClear, vStringNew(), vStringPut(), and vStringValue.

Referenced by extractInterpreter().

◆ determinePHPMark()

static vString * determinePHPMark ( const char *const  modeline,
void *  data 
)
static

Definition at line 1029 of file parse.c.

References NULL, and vStringNewInit().

Referenced by extractPHPMark().

◆ determineVimFileType()

static vString * determineVimFileType ( const char *const  modeline)
static

Definition at line 902 of file parse.c.

References ARRAY_SIZE, NULL, strrstr(), vStringNew(), and vStringPut().

Referenced by extractVimFileType().

◆ determineZshAutoloadTag()

static vString * determineZshAutoloadTag ( const char *const  modeline,
void *  data 
)
static

Definition at line 1008 of file parse.c.

References NULL, and vStringNewInit().

Referenced by extractZshAutoloadTag().

◆ doesCandidatesRequireMemoryStream()

static bool doesCandidatesRequireMemoryStream ( const parserCandidate candidates,
int  n_candidates 
)
static

Definition at line 1252 of file parse.c.

References doesParserRequireMemoryStream().

Referenced by getSpecLanguageCommon().

◆ doesLanguageAllowNullTag()

bool doesLanguageAllowNullTag ( const langType  language)

◆ doesLanguageRequestAutomaticFQTag()

bool doesLanguageRequestAutomaticFQTag ( const langType  language)

◆ doesParserRequireMemoryStream()

◆ doNothing()

static void doNothing ( void  )
static

Definition at line 1989 of file parse.c.

Referenced by lazyInitialize().

◆ dontFindTags()

static void dontFindTags ( void  )
static

Definition at line 5032 of file parse.c.

Referenced by CTagsParser().

◆ enableDefaultFileKind()

void enableDefaultFileKind ( bool  state)

Definition at line 2023 of file parse.c.

References defaultFileKind, and sKindDefinition::enabled.

Referenced by enableFileKind().

◆ enableLanguage()

void enableLanguage ( const langType  language,
const bool  state 
)

◆ enableLanguageKindForLetter()

static bool enableLanguageKindForLetter ( const langType  language,
const int  kind,
const bool  mode 
)
static

Definition at line 2260 of file parse.c.

References enableKind(), getLanguageKindForLetter(), kindControlBlock::kind, and NULL.

Referenced by processLangKindDefinition().

◆ enableLanguageKindForName()

static bool enableLanguageKindForName ( const langType  language,
const char *const  name,
const bool  mode 
)
static

Definition at line 2273 of file parse.c.

References enableKind(), getLanguageKindForName(), name, and NULL.

Referenced by processLangKindDefinition().

◆ enableLanguages()

void enableLanguages ( const bool  state)

Definition at line 1761 of file parse.c.

References enableLanguage(), and LanguageCount.

Referenced by processLanguagesOption().

◆ extractDescriptionAndFlags()

static char * extractDescriptionAndFlags ( const char *  input,
const char **  flags 
)
static

◆ extractEmacsModeAtFirstLine()

static vString * extractEmacsModeAtFirstLine ( MIO input)
static

◆ extractEmacsModeLanguageAtEOF()

static vString * extractEmacsModeLanguageAtEOF ( MIO input)
static

Definition at line 880 of file parse.c.

References determineEmacsModeAtEOF(), mio_seek(), NULL, vStringDelete(), and vStringLength.

◆ extractInterpreter()

static vString * extractInterpreter ( MIO input)
static

◆ extractMarkGeneric()

static vString * extractMarkGeneric ( MIO input,
vString *(*)(const char *const, void *)  determiner,
void *  data 
)
static

Definition at line 993 of file parse.c.

References line, NULL, readLineRaw(), vStringDelete(), and vStringNew().

Referenced by extractPHPMark(), and extractZshAutoloadTag().

◆ extractPHPMark()

static vString * extractPHPMark ( MIO input)
static

Definition at line 1038 of file parse.c.

References determinePHPMark(), extractMarkGeneric(), and NULL.

◆ extractVimFileType()

static vString * extractVimFileType ( MIO input)
static

◆ extractZshAutoloadTag()

static vString * extractZshAutoloadTag ( MIO input)
static

Definition at line 1024 of file parse.c.

References determineZshAutoloadTag(), extractMarkGeneric(), and NULL.

◆ FallbackParser()

◆ fieldDefinitionDestroy()

static void fieldDefinitionDestroy ( fieldDefinition fdef)
static

Definition at line 3633 of file parse.c.

References sFieldDefinition::description, eFree(), and sFieldDefinition::name.

Referenced by processLangDefineField().

◆ foreachKind()

static void foreachKind ( langType  language,
kindCallback  callback,
void *  user_data 
)
static

Definition at line 2874 of file parse.c.

References countLanguageKinds().

Referenced by processLangKindRoleDefinitionEach(), and processRolesOption().

◆ foreachLanguage()

static void foreachLanguage ( languageCallback  callback,
void *  user_data 
)
static

◆ freeKdef()

static void freeKdef ( kindDefinition kdef)
static

Definition at line 2363 of file parse.c.

References sKindDefinition::description, eFree(), and sKindDefinition::name.

Referenced by processLangDefineKind().

◆ freeParserResources()

◆ freeRdef()

static void freeRdef ( roleDefinition rdef)
static

Definition at line 2529 of file parse.c.

References sRoleDefinition::description, eFree(), and sRoleDefinition::name.

Referenced by processLangDefineRole().

◆ getFileLanguageForRequest()

static langType getFileLanguageForRequest ( struct GetLanguageRequest req)
static

◆ getFileLanguageForRequestInternal()

◆ getLanguageForCommand()

langType getLanguageForCommand ( const char *const  command,
langType  startFrom 
)

Definition at line 451 of file parse.c.

References baseFilename(), command, and getNameOrAliasesLanguageAndSpec().

◆ getLanguageForFilename()

langType getLanguageForFilename ( const char *const  filename,
langType  startFrom 
)

Definition at line 520 of file parse.c.

References baseFilename(), filename, and getPatternLanguageAndSpec().

Referenced by fillGuestRequest().

◆ getLanguageForFilenameAndContents()

langType getLanguageForFilenameAndContents ( const char *const  fileName)

◆ getLanguageKind()

◆ getLanguageKindForLetter()

kindDefinition * getLanguageKindForLetter ( const langType  language,
char  kindLetter 
)

◆ getLanguageKindForName()

kindDefinition * getLanguageKindForName ( const langType  language,
const char *  kindName 
)

◆ getLanguageKindName()

const char * getLanguageKindName ( const langType  language,
const int  kindIndex 
)

Definition at line 289 of file parse.c.

References getLanguageKind(), and sKindDefinition::name.

◆ getLanguageName()

◆ getLanguageNameFull()

static const char * getLanguageNameFull ( const langType  language,
bool  noPretending 
)
static

◆ getLanguageRole()

roleDefinition * getLanguageRole ( const langType  language,
int  kindIndex,
int  roleIndex 
)

Definition at line 362 of file parse.c.

References getRole(), and LanguageTable.

Referenced by getTagRole(), and resetKindRoles().

◆ getLanguageRoleForName()

roleDefinition * getLanguageRoleForName ( const langType  language,
int  kindIndex,
const char *  roleName 
)

Definition at line 367 of file parse.c.

References getRoleForName(), and LanguageTable.

Referenced by common_flag_role_long(), and processLangKindRoleDefinition().

◆ getNamedLanguage()

◆ getNamedLanguageFull()

◆ getNameOrAliasesLanguageAndSpec()

static langType getNameOrAliasesLanguageAndSpec ( const char *const  key,
langType  start_index,
const char **const  spec,
enum specType specType 
)
static

◆ getNextSlaveParser()

slaveParser * getNextSlaveParser ( slaveParser last)

◆ getNextSubparser()

subparser * getNextSubparser ( subparser last,
bool  includingNoneCraftedParser 
)

◆ getPatternLanguage()

static langType getPatternLanguage ( const char *const  baseName,
struct getLangCtx glc,
langType fallback 
)
static

◆ getPatternLanguageAndSpec()

static langType getPatternLanguageAndSpec ( const char *const  baseName,
langType  start_index,
const char **const  spec,
enum specType specType 
)
static

◆ getSpecLanguage()

static langType getSpecLanguage ( const char *const  spec,
struct getLangCtx glc,
langType fallback 
)
static

Definition at line 1319 of file parse.c.

References fallback, getSpecLanguageCommon(), and nominateLanguageCandidates().

Referenced by tasteLanguage().

◆ getSpecLanguageCommon()

static langType getSpecLanguageCommon ( const char *const  spec,
struct getLangCtx glc,
unsigned int   nominateconst char *const, parserCandidate **,
langType fallback 
)
static

◆ getSubparserRunningBaseparser()

subparser * getSubparserRunningBaseparser ( void  )

◆ getXpathFileSpec()

xpathFileSpec * getXpathFileSpec ( const langType  language,
unsigned int  nth 
)

◆ getXpathFileSpecCount()

unsigned int getXpathFileSpecCount ( const langType  language)

◆ getXpathTableTable()

const tagXpathTableTable * getXpathTableTable ( const langType  language,
unsigned int  nth 
)

◆ hasLanguageMultilineRegexPatterns()

bool hasLanguageMultilineRegexPatterns ( const langType  language)

◆ hasLanguageScopeActionInRegex()

bool hasLanguageScopeActionInRegex ( const langType  language)

◆ hasTheSameSelector()

static bool hasTheSameSelector ( langType  lang,
selectLanguage  candidate_selector 
)
static

Definition at line 1120 of file parse.c.

References sParserObject::def, LanguageTable, NULL, and sParserDefinition::selectLanguage.

Referenced by commonSelector().

◆ initializeParser()

◆ initializeParserOne()

◆ initializeParserStats()

static void initializeParserStats ( parserObject parser)
static

◆ initializeParsing()

◆ initializeParsingCommon()

◆ initStatsCTST()

static void initStatsCTST ( langType  lang)
static

Definition at line 5344 of file parse.c.

References CTST_GatherStats.

Referenced by CTagsSelfTestParser().

◆ installFieldDefinition()

static void installFieldDefinition ( const langType  language)
static

◆ installKeywordTable()

static void installKeywordTable ( const langType  language)
static

◆ installLanguageAliasesDefault()

◆ installLanguageAliasesDefaults()

void installLanguageAliasesDefaults ( void  )

Definition at line 1626 of file parse.c.

References getLanguageName(), installLanguageAliasesDefault(), LanguageCount, and verbose().

Referenced by initOptions(), and processAliasOption().

◆ installLanguageMapDefault()

◆ installLanguageMapDefaults()

void installLanguageMapDefaults ( void  )

◆ installTagRegexTable()

◆ installTagXpathTable()

◆ installXtagDefinition()

static void installXtagDefinition ( const langType  language)
static

◆ isLanguageEnabled()

◆ isLanguageKindEnabled()

bool isLanguageKindEnabled ( const langType  language,
int  kindIndex 
)

◆ isLanguageKindRefOnly()

bool isLanguageKindRefOnly ( const langType  language,
int  kindIndex 
)

Definition at line 2235 of file parse.c.

References getLanguageKind(), and sKindDefinition::referenceOnly.

Referenced by isTagWritable().

◆ isLanguageNameChar()

static bool isLanguageNameChar ( int  c)
static

Definition at line 165 of file parse.c.

Referenced by determineEmacsModeAtEOF(), and determineEmacsModeAtFirstLine().

◆ isLanguageRoleEnabled()

bool isLanguageRoleEnabled ( const langType  language,
int  kindIndex,
int  roleIndex 
)

Definition at line 2229 of file parse.c.

References isRoleEnabled(), and LanguageTable.

Referenced by isInputLanguageRoleEnabled(), isTagWritable(), and renderFieldRoles().

◆ isLanguageVisible()

bool isLanguageVisible ( const langType  language)

◆ isParserMarkedNoEmission()

bool isParserMarkedNoEmission ( void  )

Definition at line 4851 of file parse.c.

References sParserObject::dontEmit, getInputLanguage(), and LanguageTable.

Referenced by initTagEntryFull().

◆ lazyInitialize()

◆ linkDependenciesAtInitializeParsing()

◆ lregexQueryParserAndSubparsers()

static bool lregexQueryParserAndSubparsers ( const langType  language,
bool(*)(struct lregexControlBlock *)  predicate 
)
static

◆ makeExtraDescriptionPseudoTag()

static bool makeExtraDescriptionPseudoTag ( const langType  language,
xtagType  x,
const ptagDesc pdesc 
)
static

◆ makeExtraDescriptionsPseudoTags()

bool makeExtraDescriptionsPseudoTags ( const langType  language,
const ptagDesc pdesc 
)

◆ makeFieldDescriptionPseudoTag()

static bool makeFieldDescriptionPseudoTag ( const langType  language,
fieldType  f,
const ptagDesc pdesc 
)
static

◆ makeFieldDescriptionsPseudoTags()

bool makeFieldDescriptionsPseudoTags ( const langType  language,
const ptagDesc pdesc 
)

◆ makeKindDescriptionPseudoTag()

◆ makeKindDescriptionsPseudoTags()

◆ makeKindSeparatorsPseudoTags()

◆ makeSimplePlaceholder()

int makeSimplePlaceholder ( const vString *const  name)

Definition at line 206 of file parse.c.

References makePlaceholder(), name, and vStringValue.

◆ makeSimpleRefTag()

int makeSimpleRefTag ( const vString *const  name,
const int  kindIndex,
int  roleIndex 
)

◆ makeSimpleTag()

◆ mapColprintAddLanguage()

◆ mapColprintTableNew()

static struct colprintTable * mapColprintTableNew ( langmapType  type)
static

Definition at line 3374 of file parse.c.

References AssertNotReached, colprintTableNew(), LMAP_ALL, LMAP_EXTENSION, LMAP_PATTERN, and NULL.

Referenced by printLanguageMaps().

◆ matchLanguageMultilineRegex()

void matchLanguageMultilineRegex ( const langType  language,
const vString *const  allLines 
)

Definition at line 4191 of file parse.c.

References matchLanguageMultilineRegexCommon(), and matchMultilineRegex().

Referenced by iFileGetLine().

◆ matchLanguageMultilineRegexCommon()

static void matchLanguageMultilineRegexCommon ( const langType  language,
bool(*)(struct lregexControlBlock *, const vString *const)  func,
const vString *const  allLines 
)
static

◆ matchLanguageMultitableRegex()

void matchLanguageMultitableRegex ( const langType  language,
const vString *const  allLines 
)

Definition at line 4197 of file parse.c.

References matchLanguageMultilineRegexCommon(), and matchMultitableRegex().

Referenced by iFileGetLine().

◆ matchLanguageRegex()

void matchLanguageRegex ( const langType  language,
const vString *const  line 
)

◆ nominateLanguageCandidates()

static unsigned int nominateLanguageCandidates ( const char *const  key,
parserCandidate **  candidates 
)
static

◆ nominateLanguageCandidatesForPattern()

static unsigned int nominateLanguageCandidatesForPattern ( const char *const  baseName,
parserCandidate **  candidates 
)
static

◆ notifyLanguageRegexInputEnd()

void notifyLanguageRegexInputEnd ( langType  language)

Definition at line 3737 of file parse.c.

References LanguageTable, and notifyRegexInputEnd().

Referenced by createTagsForFile(), and notifyInputEnd().

◆ notifyLanguageRegexInputStart()

void notifyLanguageRegexInputStart ( langType  language)

Definition at line 3732 of file parse.c.

References LanguageTable, and notifyRegexInputStart().

Referenced by createTagsForFile(), and notifyInputStart().

◆ optlibFreeDep()

static void optlibFreeDep ( langType  lang,
bool  initialized 
)
static

◆ optlibIsDedicatedSubparser()

static bool optlibIsDedicatedSubparser ( parserDefinition def)
static

◆ OptlibParser()

◆ optlibRunBaseParser()

static void optlibRunBaseParser ( void  )
static

Definition at line 1993 of file parse.c.

References scheduleRunningBaseparser().

Referenced by lazyInitialize().

◆ parameterEnablingAllOrFileKind()

static bool parameterEnablingAllOrFileKind ( const char *const  option,
const char *const  parameter,
bool  following_plus_or_minus_op 
)
static

◆ parseFile()

bool parseFile ( const char *const  fileName)

Definition at line 4076 of file parse.c.

References NULL, parseFileWithMio(), TRACE_ENTER_TEXT, and TRACE_LEAVE.

Referenced by createTagsForEntry().

◆ parseFileWithMio()

◆ parseMio()

static bool parseMio ( const char *const  fileName,
langType  language,
MIO mio,
bool  useSourceFileTagPath,
void *  clientData 
)
static

◆ parseRawBuffer()

bool parseRawBuffer ( const char *  fileName,
unsigned char *  buffer,
size_t  bufferSize,
const langType  language,
void *  clientData 
)

◆ parserCandidateNew()

static parserCandidate * parserCandidateNew ( unsigned int  count)
static

◆ parserCorkFlags()

◆ parserNew()

◆ pickLanguageBySelection()

static int pickLanguageBySelection ( selectLanguage  selector,
MIO input,
parserCandidate candidates,
unsigned int  nCandidates 
)
static

Definition at line 1165 of file parse.c.

References eFree(), getNamedLanguage(), LANG_IGNORE, verbose(), and xMalloc.

Referenced by getSpecLanguageCommon().

◆ pre_kind_def_flag_refonly_long()

static void pre_kind_def_flag_refonly_long ( const char *const  optflag,
const char *const  param,
void *  data 
)
static

Definition at line 2401 of file parse.c.

References sKindDefinition::referenceOnly.

◆ pre_lang_def_flag_autoFQTag_long()

static void pre_lang_def_flag_autoFQTag_long ( const char *const  optflag,
const char *const  param,
void *  data 
)
static

Definition at line 2078 of file parse.c.

References preLangDefFlagData::autoFQTag.

◆ pre_lang_def_flag_base_long()

static void pre_lang_def_flag_base_long ( const char *const  optflag,
const char *const  param,
void *  data 
)
static

Definition at line 2038 of file parse.c.

References preLangDefFlagData::base, error(), eStrdup(), getNamedLanguage(), LANG_IGNORE, and WARNING.

◆ pre_lang_def_flag_direction_long()

static void pre_lang_def_flag_direction_long ( const char *const  optflag,
const char *const  param,
void *  data 
)
static

◆ printGuessedParser()

static void printGuessedParser ( const char *const  fileName,
langType  language 
)
static

Definition at line 3948 of file parse.c.

References getLanguageName(), LANG_IGNORE, Option, sOptionValues::printLanguage, and RSV_NONE.

Referenced by parseFileWithMio().

◆ printKinddefFlags()

void printKinddefFlags ( bool  withListHeader,
bool  machinable,
FILE *  fp 
)

◆ printKinds()

static void printKinds ( langType  language,
bool  indent,
struct colprintTable table 
)
static

◆ printLangdefFlags()

void printLangdefFlags ( bool  withListHeader,
bool  machinable,
FILE *  fp 
)

◆ printLanguage()

◆ printLanguageAliases()

void printLanguageAliases ( const langType  language,
bool  withListHeader,
bool  machinable,
FILE *  fp 
)

◆ printLanguageKinds()

void printLanguageKinds ( const langType  language,
bool  allKindFields,
bool  withListHeader,
bool  machinable,
FILE *  fp 
)

◆ printLanguageList()

void printLanguageList ( void  )

◆ printLanguageMap()

static void printLanguageMap ( const langType  language,
FILE *  fp 
)
static

◆ printLanguageMaps()

void printLanguageMaps ( const langType  language,
langmapType  type,
bool  withListHeader,
bool  machinable,
FILE *  fp 
)

◆ printLanguageMultitableStatistics()

void printLanguageMultitableStatistics ( langType  language)

◆ printLanguageParameters()

void printLanguageParameters ( const langType  language,
bool  withListHeader,
bool  machinable,
FILE *  fp 
)

◆ printLanguageRoles()

void printLanguageRoles ( const langType  language,
const char *  kindspecs,
bool  withListHeader,
bool  machinable,
FILE *  fp 
)

◆ printLanguageSubparsers()

◆ printMaps()

◆ printParameters()

◆ printParserStatisticsIfUsed()

void printParserStatisticsIfUsed ( langType  language)

◆ printStatsCTST()

static void printStatsCTST ( langType  lang)
static

Definition at line 5349 of file parse.c.

References CTST_num_handled_char.

Referenced by CTagsSelfTestParser().

◆ processAliasOption()

bool processAliasOption ( const char *const  option,
const char *const  parameter 
)

◆ processExtradefOption()

bool processExtradefOption ( const char *const  option,
const char *const  parameter 
)

Definition at line 3622 of file parse.c.

References getLanguageComponentInOption(), LANG_IGNORE, and processLangDefineExtra().

Referenced by processLongOption().

◆ processFielddefOption()

bool processFielddefOption ( const char *const  option,
const char *const  parameter 
)

Definition at line 3693 of file parse.c.

References getLanguageComponentInOption(), LANG_IGNORE, and processLangDefineField().

Referenced by processLongOption().

◆ processKinddefOption()

bool processKinddefOption ( const char *const  option,
const char *const  parameter 
)

Definition at line 2640 of file parse.c.

References getLanguageComponentInOption(), LANG_IGNORE, and processLangDefineKind().

Referenced by processLongOption().

◆ processKindsOption()

◆ processLangAliasOption()

static void processLangAliasOption ( const langType  language,
const char *const  parameter 
)
static

◆ processLangDefineExtra()

static bool processLangDefineExtra ( const langType  language,
const char *const  option,
const char *const  parameter 
)
static

◆ processLangDefineField()

◆ processLangDefineKind()

◆ processLangDefineRole()

◆ processLangDefineScopesep()

static bool processLangDefineScopesep ( const langType  language,
const char *const  option,
const char *const  parameter 
)
static

◆ processLangKindDefinition()

static void processLangKindDefinition ( const langType  language,
const char *const  option,
const char *const  parameter 
)
static

◆ processLangKindDefinitionEach()

static void processLangKindDefinitionEach ( langType  lang,
void *  user_data 
)
static

◆ processLangKindRoleDefinition()

static void processLangKindRoleDefinition ( const langType  language,
const int  kindIndex,
const char *const  option,
const char *const  parameter 
)
static

◆ processLangKindRoleDefinitionEach()

◆ processLanguageDefineOption()

◆ processLanguageMultitableExtendingOption()

void processLanguageMultitableExtendingOption ( langType  language,
const char *const  parameter 
)

Definition at line 4203 of file parse.c.

References eFree(), error(), eStrndup(), extendRegexTable(), FATAL, and LanguageTable.

Referenced by processMultitableExtendingOption().

◆ processLanguageRegexOption()

bool processLanguageRegexOption ( langType  language,
enum regexParserType  regptype,
const char *const  parameter 
)

◆ processPretendOption()

bool processPretendOption ( const char *const  option,
const char *const  parameter 
)

◆ processRoledefOption()

bool processRoledefOption ( const char *const  option,
const char *const  parameter 
)

◆ processRolesOption()

◆ processScopesepOption()

bool processScopesepOption ( const char *const  option,
const char *const  parameter 
)

Definition at line 665 of file parse.c.

References getLanguageComponentInOption(), LANG_IGNORE, and processLangDefineScopesep().

Referenced by processLongOption().

◆ processTabledefOption()

bool processTabledefOption ( const char *const  option,
const char *const  parameter 
)

◆ removeLanguageExtensionMap()

bool removeLanguageExtensionMap ( const langType  language,
const char *const  extension 
)

Definition at line 1705 of file parse.c.

References LANG_AUTO, LanguageCount, and removeLanguageExtensionMap1().

Referenced by addLanguageExtensionMap(), and removeLanguageMap().

◆ removeLanguageExtensionMap1()

static bool removeLanguageExtensionMap1 ( const langType  language,
const char *const  extension 
)
static

◆ removeLanguagePatternMap()

bool removeLanguagePatternMap ( const langType  language,
const char *const  pattern 
)

Definition at line 1665 of file parse.c.

References LANG_AUTO, LanguageCount, and removeLanguagePatternMap1().

Referenced by addLanguagePatternMap(), and removeLanguageMap().

◆ removeLanguagePatternMap1()

static bool removeLanguagePatternMap1 ( const langType  language,
const char *const  pattern 
)
static

◆ resetKindRoles()

static void resetKindRoles ( const langType  language,
int  kindIndex,
const bool  mode 
)
static

◆ resetKindRolesAsCallback()

static void resetKindRolesAsCallback ( const langType  language,
int  kindIndex,
void *  user_data 
)
static

Definition at line 2893 of file parse.c.

References resetKindRoles().

Referenced by processLangKindRoleDefinitionEach(), and processRolesOption().

◆ resetLanguageKinds()

static void resetLanguageKinds ( const langType  language,
const bool  mode 
)
static

◆ runParserInNarrowedInputStream()

bool runParserInNarrowedInputStream ( const langType  language,
unsigned long  startLine,
long  startCharOffset,
unsigned long  endLine,
long  endCharOffset,
unsigned long  sourceLineOffset,
int  promise 
)

◆ scheduleRunningBaseparser()

◆ scopeSeparatorFor()

const char * scopeSeparatorFor ( langType  language,
int  kindIndex,
int  parentKindIndex 
)

◆ setupAnon()

static void setupAnon ( void  )
static

Definition at line 4663 of file parse.c.

References NULL, parsersUsedInCurrentInput, and ptrArrayNew().

Referenced by parseMio().

◆ setupLanguageSubparsersInUse()

static void setupLanguageSubparsersInUse ( const langType  language)
static

◆ sortAndFilterParserCandidates()

static unsigned int sortAndFilterParserCandidates ( parserCandidate candidates,
unsigned int  n_candidates 
)
static

Definition at line 1215 of file parse.c.

References sortParserCandidatesBySpecType(), and parserCandidate::specType.

Referenced by getSpecLanguageCommon().

◆ sortParserCandidatesBySpecType()

static int sortParserCandidatesBySpecType ( const void *  a,
const void *  b 
)
static

◆ tasteLanguage()

static langType tasteLanguage ( struct getLangCtx glc,
const struct taster *const  tasters,
int  n_tasters,
langType fallback 
)
static

◆ teardownAnon()

static void teardownAnon ( void  )
static

Definition at line 4668 of file parse.c.

References parsersUsedInCurrentInput, and ptrArrayDelete().

Referenced by parseMio().

◆ teardownLanguageSubparsersInUse()

static subparser * teardownLanguageSubparsersInUse ( const langType  language)
static

◆ uninstallTagXpathTable()

◆ useRegexMethod()

void useRegexMethod ( const langType  language)

◆ useXpathMethod()

static void useXpathMethod ( const langType  language)
static

◆ verboseReportCandidate()

static void verboseReportCandidate ( const char *  header,
parserCandidate candidates,
unsigned int  n_candidates 
)
static

◆ xtagDefinitionDestroy()

static void xtagDefinitionDestroy ( xtagDefinition xdef)
static

Definition at line 3564 of file parse.c.

References sXtagDefinition::description, eFree(), and sXtagDefinition::name.

Referenced by processLangDefineExtra().

Variable Documentation

◆ BuiltInParsers

parserDefinitionFunc* BuiltInParsers[]
static
Initial value:
= {
}
static parserDefinition * CTagsParser(void)
Definition: parse.c:5040
static parserDefinition * FallbackParser(void)
Definition: parse.c:5007
static parserDefinition * CTagsSelfTestParser(void)
Definition: parse.c:5355
parserDefinitionFunc YaccParser
Definition: parse_p.h:51
parserDefinitionFunc Perl6Parser
Definition: parse_p.h:51
parserDefinitionFunc SystemTapParser
Definition: parse_p.h:51
parserDefinitionFunc FyppParser
Definition: parse_p.h:51
parserDefinitionFunc LdScriptParser
Definition: parse_p.h:51
parserDefinitionFunc ElixirParser
Definition: parse_p.h:51
parserDefinitionFunc BasicParser
Definition: parse_p.h:51
parserDefinitionFunc CppParser
Definition: parse_p.h:51
parserDefinitionFunc MatLabParser
Definition: parse_p.h:51
parserDefinitionFunc GdbinitParser
Definition: parse_p.h:51
parserDefinitionFunc TTCNParser
Definition: parse_p.h:51
parserDefinitionFunc EiffelParser
Definition: parse_p.h:51
parserDefinitionFunc KconfigParser
Definition: parse_p.h:51
parserDefinitionFunc DosBatchParser
Definition: parse_p.h:51
parserDefinitionFunc ManParser
Definition: parse_p.h:51
parserDefinitionFunc RustParser
Definition: parse_p.h:51
parserDefinitionFunc SystemVerilogParser
Definition: parse_p.h:51
parserDefinitionFunc SmlParser
Definition: parse_p.h:51
parserDefinitionFunc QtMocParser
Definition: parse_p.h:51
parserDefinitionFunc QemuHXParser
Definition: parse_p.h:51
parserDefinitionFunc VeraParser
Definition: parse_p.h:51
parserDefinitionFunc VimParser
Definition: parse_p.h:51
parserDefinitionFunc RexxParser
Definition: parse_p.h:51
parserDefinitionFunc PythonParser
Definition: parse_p.h:51
parserDefinitionFunc TexParser
Definition: parse_p.h:51
parserDefinitionFunc JsonParser
Definition: parse_p.h:51
parserDefinitionFunc AspParser
Definition: parse_p.h:51
parserDefinitionFunc ElmParser
Definition: parse_p.h:51
parserDefinitionFunc MooseParser
Definition: parse_p.h:51
parserDefinitionFunc CtagsParser
Definition: parse_p.h:51
parserDefinitionFunc MyrddinParser
Definition: parse_p.h:51
parserDefinitionFunc S4ClassParser
Definition: parse_p.h:51
parserDefinitionFunc CssParser
Definition: parse_p.h:51
parserDefinitionFunc DiffParser
Definition: parse_p.h:51
parserDefinitionFunc OldCppParser
Definition: parse_p.h:51
parserDefinitionFunc FlexParser
Definition: parse_p.h:51
parserDefinitionFunc VhdlParser
Definition: parse_p.h:51
parserDefinitionFunc EmacsLispParser
Definition: parse_p.h:51
parserDefinitionFunc ObjcParser
Definition: parse_p.h:51
parserDefinitionFunc CParser
Definition: parse_p.h:51
parserDefinitionFunc RSpecParser
Definition: parse_p.h:51
parserDefinitionFunc ShParser
Definition: parse_p.h:51
parserDefinitionFunc MarkdownParser
Definition: parse_p.h:51
parserDefinitionFunc PascalParser
Definition: parse_p.h:51
parserDefinitionFunc ClojureParser
Definition: parse_p.h:51
parserDefinitionFunc SystemdUnitParser
Definition: parse_p.h:51
parserDefinitionFunc FortranParser
Definition: parse_p.h:51
parserDefinitionFunc PhpParser
Definition: parse_p.h:51
parserDefinitionFunc RstParser
Definition: parse_p.h:51
parserDefinitionFunc JavaScriptParser
Definition: parse_p.h:51
parserDefinitionFunc LispParser
Definition: parse_p.h:51
parserDefinitionFunc AutoconfParser
Definition: parse_p.h:51
parserDefinitionFunc RpmSpecParser
Definition: parse_p.h:51
parserDefinitionFunc CsharpParser
Definition: parse_p.h:51
parserDefinitionFunc PodParser
Definition: parse_p.h:51
parserDefinitionFunc DParser
Definition: parse_p.h:51
parserDefinitionFunc PowerShellParser
Definition: parse_p.h:51
parserDefinitionFunc DTSParser
Definition: parse_p.h:51
parserDefinitionFunc ProtobufParser
Definition: parse_p.h:51
parserDefinitionFunc InkoParser
Definition: parse_p.h:51
parserDefinitionFunc PerlParser
Definition: parse_p.h:51
parserDefinitionFunc AntParser
Definition: parse_p.h:51
parserDefinitionFunc OcamlParser
Definition: parse_p.h:51
parserDefinitionFunc ErlangParser
Definition: parse_p.h:51
parserDefinitionFunc SlangParser
Definition: parse_p.h:51
parserDefinitionFunc AutomakeParser
Definition: parse_p.h:51
parserDefinitionFunc BetaParser
Definition: parse_p.h:51
parserDefinitionFunc R6ClassParser
Definition: parse_p.h:51
parserDefinitionFunc PuppetManifestParser
Definition: parse_p.h:51
parserDefinitionFunc AwkParser
Definition: parse_p.h:51
parserDefinitionFunc ZephirParser
Definition: parse_p.h:51
parserDefinitionFunc DtdParser
Definition: parse_p.h:51
parserDefinitionFunc CobolParser
Definition: parse_p.h:51
parserDefinitionFunc HtmlParser
Definition: parse_p.h:51
parserDefinitionFunc JavaParser
Definition: parse_p.h:51
parserDefinitionFunc RobotParser
Definition: parse_p.h:51
parserDefinitionFunc CPreProParser
Definition: parse_p.h:51
parserDefinitionFunc SCSSParser
Definition: parse_p.h:51
parserDefinitionFunc JavaPropertiesParser
Definition: parse_p.h:51
parserDefinitionFunc IniconfParser
Definition: parse_p.h:51
parserDefinitionFunc TclOOParser
Definition: parse_p.h:51
parserDefinitionFunc SqlParser
Definition: parse_p.h:51
parserDefinitionFunc NsisParser
Definition: parse_p.h:51
parserDefinitionFunc RParser
Definition: parse_p.h:51
parserDefinitionFunc MakefileParser
Definition: parse_p.h:51
parserDefinitionFunc AsciidocParser
Definition: parse_p.h:51
parserDefinitionFunc SchemeParser
Definition: parse_p.h:51
parserDefinitionFunc AdaParser
parserDefinitionFunc TexBeamerParser
Definition: parse_p.h:51
parserDefinitionFunc ITclParser
Definition: parse_p.h:51
parserDefinitionFunc TclParser
Definition: parse_p.h:51
parserDefinitionFunc PythonLoggingConfigParser
Definition: parse_p.h:51
parserDefinitionFunc WindResParser
Definition: parse_p.h:51
parserDefinitionFunc CUDAParser
Definition: parse_p.h:51
parserDefinitionFunc TypeScriptParser
Definition: parse_p.h:51
parserDefinitionFunc M4Parser
Definition: parse_p.h:51
parserDefinitionFunc VerilogParser
Definition: parse_p.h:51
parserDefinitionFunc RubyParser
Definition: parse_p.h:51
parserDefinitionFunc AsmParser
Definition: parse_p.h:51
parserDefinitionFunc AutoItParser
Definition: parse_p.h:51
parserDefinitionFunc PasswdParser
Definition: parse_p.h:51
parserDefinitionFunc BibtexParser
Definition: parse_p.h:51
parserDefinitionFunc FalconParser
Definition: parse_p.h:51
parserDefinitionFunc YumRepoParser
Definition: parse_p.h:51
parserDefinitionFunc GoParser
Definition: parse_p.h:51
parserDefinitionFunc LuaParser
Definition: parse_p.h:51
parserDefinitionFunc CMakeParser
Definition: parse_p.h:51
parserDefinitionFunc OldCParser
Definition: parse_p.h:51

Definition at line 128 of file parse.c.

Referenced by initializeParsing().

◆ CtagsKinds

kindDefinition CtagsKinds[]
static
Initial value:
= {
{true, 'p', "ptag", "pseudo tags"},
}

Definition at line 5036 of file parse.c.

Referenced by CTagsParser().

◆ CTST_BrokenRoles

roleDefinition CTST_BrokenRoles[]
static
Initial value:
= {
{true, "broken", "broken" },
}

Definition at line 5084 of file parse.c.

◆ CTST_DisabledKindRoles

roleDefinition CTST_DisabledKindRoles[]
static
Initial value:
= {
{ false, "disabled", "disabled role attached to disabled kind" },
{ true, "enabled", "enabled role attached to disabled kind" },
}

Definition at line 5093 of file parse.c.

◆ CTST_EnabledKindRoles

roleDefinition CTST_EnabledKindRoles[]
static
Initial value:
= {
{ false, "disabled", "disabled role attached to enabled kind" },
{ true, "enabled", "enabled role attached to enabled kind" },
}

Definition at line 5103 of file parse.c.

◆ CTST_GatherStats

bool CTST_GatherStats
static

Definition at line 5059 of file parse.c.

Referenced by createCTSTTags(), and initStatsCTST().

◆ CTST_Kinds

kindDefinition CTST_Kinds[KIND_COUNT]
static
Initial value:
= {
{true, 'b', "broken tag", "name with unwanted characters",
.referenceOnly = false, .nRoles = (sizeof ( CTST_BrokenRoles ) / sizeof ( CTST_BrokenRoles [0])), .roles = CTST_BrokenRoles },
{true, '\0' , "no letter", "kind with no letter"
},
{true, 'L', NULL, "kind with no long name" },
{true, 'N', "nothingSpecial", "emit a normal tag" },
{true, 'B', NULL, "beginning of an area for a guest" },
{true, 'E', NULL, "end of an area for a guest" },
{false,'d', "disabled", "a kind disabled by default",
.referenceOnly = false, .nRoles = (sizeof ( CTST_DisabledKindRoles ) / sizeof ( CTST_DisabledKindRoles [0])), .roles = CTST_DisabledKindRoles },
{true, 'e', "enabled", "a kind enabled by default",
.referenceOnly = false, .nRoles = (sizeof ( CTST_EnabledKindRoles ) / sizeof ( CTST_EnabledKindRoles [0])), .roles = CTST_EnabledKindRoles },
{true, 'r', "roles", "emit a tag with multi roles",
.referenceOnly = true, .nRoles = (sizeof ( CTST_RolesKindRoles ) / sizeof ( CTST_RolesKindRoles [0])), .roles = CTST_RolesKindRoles },
{false, 'R', "rolesDisabled", "emit a tag with multi roles(disabled by default)",
.referenceOnly = true, .nRoles = (sizeof ( CTST_RolesDisabledKindRoles ) / sizeof ( CTST_RolesDisabledKindRoles [0])), .roles = CTST_RolesDisabledKindRoles },
{true, 'f', "fieldMaker", "tag for testing field:" },
}
static roleDefinition CTST_RolesKindRoles[]
Definition: parse.c:5115
static roleDefinition CTST_RolesDisabledKindRoles[]
Definition: parse.c:5128
static roleDefinition CTST_EnabledKindRoles[]
Definition: parse.c:5103
static roleDefinition CTST_DisabledKindRoles[]
Definition: parse.c:5093
static roleDefinition CTST_BrokenRoles[]
Definition: parse.c:5084

Definition at line 5133 of file parse.c.

Referenced by createCTSTTags(), and CTagsSelfTestParser().

◆ CTST_num_handled_char

int CTST_num_handled_char
static

Definition at line 5060 of file parse.c.

Referenced by createCTSTTags(), and printStatsCTST().

◆ CTST_RolesDisabledKindRoles

roleDefinition CTST_RolesDisabledKindRoles[]
static
Initial value:
= {
{ true, "A", "A role" },
{ true, "B", "B role" },
}

Definition at line 5128 of file parse.c.

◆ CTST_RolesKindRoles

roleDefinition CTST_RolesKindRoles[]
static
Initial value:
= {
{ true, "a", "A role" },
{ true, "b", "B role" },
{ false, "c", "C role" },
{ true, "d", "D role" },
}

Definition at line 5115 of file parse.c.

◆ CTSTFields

fieldDefinition CTSTFields[COUNT_FIELD]
static
Initial value:
= {
{ .name = "bField",
.description = "field for testing boolean type",
.dataType = FIELDTYPE_BOOL,
.enabled = true,
},
{ .name = "sbField",
.description = "field for testing string|boolean type",
.enabled = true,
},
}
@ FIELDTYPE_STRING
Definition: field.h:65
@ FIELDTYPE_BOOL
Definition: field.h:67

Definition at line 5164 of file parse.c.

Referenced by createCTSTTags(), and CTagsSelfTestParser().

◆ defaultFileKind

kindDefinition defaultFileKind
static
Initial value:
= {
.enabled = false,
.letter = 'F' ,
.name = "file" ,
.description = "file" ,
}

Definition at line 154 of file parse.c.

Referenced by enableDefaultFileKind(), and initializeParsingCommon().

◆ eager_tasters

const struct taster eager_tasters[]
static
Initial value:
= {
{
.msg = "interpreter",
},
{
.msg = "zsh autoload tag",
},
{
.msg = "emacs mode at the first line",
},
{
.msg = "emacs mode at the EOF",
},
{
.msg = "vim modeline",
},
{
.taste = extractPHPMark,
.msg = "PHP marker",
}
}
static vString * extractEmacsModeLanguageAtEOF(MIO *input)
Definition: parse.c:880
static vString * extractVimFileType(MIO *input)
Definition: parse.c:928
static vString * extractInterpreter(MIO *input)
Definition: parse.c:758
static vString * extractZshAutoloadTag(MIO *input)
Definition: parse.c:1024
static vString * extractPHPMark(MIO *input)
Definition: parse.c:1038
static vString * extractEmacsModeAtFirstLine(MIO *input)
Definition: parse.c:833

Referenced by getFileLanguageForRequestInternal().

◆ kindGhost

kindDefinition kindGhost
static
Initial value:
= {
.letter = ' ' ,
.name = "ghost" ,
.description = "ghost" ,
}

Definition at line 295 of file parse.c.

Referenced by getLanguageKind(), getLanguageKindForLetter(), and getLanguageKindForName().

◆ LanguageCount

unsigned int LanguageCount = 0
static

Definition at line 152 of file parse.c.

Referenced by addLanguageAlias(), addLanguageExtensionMap(), addLanguagePatternMap(), applyParameter(), clearLanguageAliases(), clearLanguageMap(), countParsers(), createTagsWithFallback(), doesLanguageAllowNullTag(), doesLanguageRequestAutomaticFQTag(), doesParserRequireMemoryStream(), enableLanguage(), enableLanguages(), foreachLanguage(), freeParserResources(), getLanguageKind(), getLanguageKindForLetter(), getLanguageKindForName(), getLanguageNameFull(), getNamedLanguageFull(), getNameOrAliasesLanguageAndSpec(), getPatternLanguageAndSpec(), getXpathFileSpec(), getXpathFileSpecCount(), getXpathTableTable(), initializeParsingCommon(), installFieldDefinition(), installKeywordTable(), installLanguageAliasesDefault(), installLanguageAliasesDefaults(), installLanguageMapDefault(), installLanguageMapDefaults(), installTagRegexTable(), installTagXpathTable(), installXtagDefinition(), lazyInitialize(), makeKindDescriptionsPseudoTags(), makeKindSeparatorsPseudoTags(), nominateLanguageCandidates(), nominateLanguageCandidatesForPattern(), parserCandidateNew(), printKinds(), printLanguage(), printLanguageAliases(), printLanguageKinds(), printLanguageList(), printLanguageMap(), printLanguageMaps(), printLanguageParameters(), printLanguageRoles(), printLanguageSubparsers(), printParameters(), processAliasOption(), processLangAliasOption(), processLangDefineExtra(), processLangDefineField(), processLangDefineKind(), processLangDefineRole(), processLangDefineScopesep(), processLangKindDefinition(), processLangKindRoleDefinition(), processLanguageDefineOption(), processRoledefOption(), removeLanguageExtensionMap(), removeLanguagePatternMap(), resetKindRoles(), resetLanguageKinds(), scopeSeparatorFor(), uninstallTagXpathTable(), useRegexMethod(), and useXpathMethod().

◆ LanguageHTable

hashTable* LanguageHTable = NULL
static

Definition at line 153 of file parse.c.

Referenced by getNamedLanguageFull(), initializeParsing(), and initializeParsingCommon().

◆ LanguageTable

parserObject* LanguageTable = NULL
static

Definition at line 151 of file parse.c.

Referenced by addLanguageAlias(), addLanguageCallbackRegex(), addLanguageExtensionMap(), addLanguagePatternMap(), addLanguageRegexTable(), addLanguageTagMultiTableRegex(), addParserPseudoTags(), anonGenerate(), applyParameter(), clearLanguageAliases(), clearLanguageMap(), commonSelector(), countLanguageKinds(), countLanguageRoles(), createTagsForFile(), createTagsWithFallback1(), defineLanguageKind(), doesLanguageAllowNullTag(), doesLanguageRequestAutomaticFQTag(), doesParserRequireMemoryStream(), enableLanguage(), foreachLanguage(), freeParserResources(), getFileLanguageForRequestInternal(), getLanguageKind(), getLanguageKindForLetter(), getLanguageKindForName(), getLanguageNameFull(), getLanguageRole(), getLanguageRoleForName(), getNamedLanguageFull(), getNameOrAliasesLanguageAndSpec(), getNextSlaveParser(), getNextSubparser(), getPatternLanguageAndSpec(), getSubparserRunningBaseparser(), getXpathFileSpec(), getXpathFileSpecCount(), getXpathTableTable(), hasTheSameSelector(), initializeParserOne(), initializeParsing(), initializeParsingCommon(), installFieldDefinition(), installKeywordTable(), installLanguageAliasesDefault(), installLanguageMapDefault(), installTagRegexTable(), installTagXpathTable(), installXtagDefinition(), isLanguageEnabled(), isLanguageRoleEnabled(), isLanguageVisible(), isParserMarkedNoEmission(), lazyInitialize(), linkDependenciesAtInitializeParsing(), lregexQueryParserAndSubparsers(), makeKindDescriptionsPseudoTags(), makeKindSeparatorsPseudoTags(), matchLanguageMultilineRegexCommon(), matchLanguageRegex(), notifyLanguageRegexInputEnd(), notifyLanguageRegexInputStart(), optlibFreeDep(), parserCorkFlags(), printKinds(), printLanguageAliases(), printLanguageKinds(), printLanguageList(), printLanguageMap(), printLanguageMaps(), printLanguageMultitableStatistics(), printLanguageParameters(), printLanguageRoles(), printLanguageSubparsers(), printMaps(), printParameters(), printParserStatisticsIfUsed(), processLangAliasOption(), processLangDefineKind(), processLangDefineRole(), processLangDefineScopesep(), processLanguageDefineOption(), processLanguageMultitableExtendingOption(), processLanguageRegexOption(), processPretendOption(), processRolesOption(), processTabledefOption(), removeLanguageExtensionMap1(), removeLanguagePatternMap1(), resetLanguageKinds(), scheduleRunningBaseparser(), scopeSeparatorFor(), setupLanguageSubparsersInUse(), sortParserCandidatesBySpecType(), teardownLanguageSubparsersInUse(), uninstallTagXpathTable(), useRegexMethod(), useXpathMethod(), and verboseReportCandidate().

◆ parsersUsedInCurrentInput

ptrArray* parsersUsedInCurrentInput
static

Definition at line 4661 of file parse.c.

Referenced by anonResetMaybe(), setupAnon(), and teardownAnon().

◆ PreKindDefFlagDef

flagDefinition PreKindDefFlagDef[]
static
Initial value:
= {
{ '\0', "_refonly", NULL, pre_kind_def_flag_refonly_long,
NULL, "use this kind reference tags only"},
}
static void pre_kind_def_flag_refonly_long(const char *const optflag, const char *const param, void *data)
Definition: parse.c:2401

Definition at line 2408 of file parse.c.

Referenced by printKinddefFlags(), and processLangDefineKind().

◆ PreLangDefFlagDef

flagDefinition PreLangDefFlagDef[]
static
Initial value:
= {
"BASEPARSER", "utilize as a base parser"},
{ '\0', "dedicated" , NULL,
NULL, "make the base parser dedicated to this subparser"},
{ '\0', "shared" , NULL,
NULL, "share the base parser with the other subparsers"
},
{ '\0', "bidirectional" , NULL,
NULL, "utilize the base parser both 'dedicated' and 'shared' way"
},
{ '\0', "_autoFQTag", NULL, pre_lang_def_flag_autoFQTag_long,
NULL, "make full qualified tags automatically based on scope information"},
}
static void pre_lang_def_flag_autoFQTag_long(const char *const optflag, const char *const param, void *data)
Definition: parse.c:2078
static void pre_lang_def_flag_base_long(const char *const optflag, const char *const param, void *data)
Definition: parse.c:2038
static void pre_lang_def_flag_direction_long(const char *const optflag, const char *const param, void *data)
Definition: parse.c:2064

Definition at line 2086 of file parse.c.

Referenced by printLangdefFlags(), and processLanguageDefineOption().

◆ specTypeName

const char* specTypeName[]
Initial value:
= {
"none", "name", "extension", "pattern"
}

Definition at line 65 of file parse.c.

Referenced by verboseReportCandidate().