⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parse.h

📁 ctags-5.5.4.tar.gz,一个很好的代码开发以及编辑源码
💻 H
字号:
/**   $Id: parse.h,v 1.13 2003/07/11 01:21:54 darren Exp $**   Copyright (c) 1998-2003, Darren Hiebert**   This source code is released for free distribution under the terms of the*   GNU General Public License.**   Private definitions for parsing support.*/#ifndef _PARSE_H#define _PARSE_H/**   INCLUDE FILES*/#include "general.h"	/* must always come first */#include "parsers.h"	/* contains list of parsers */#include "strlist.h"/**   MACROS*/#define KIND_COUNT(kindTable) (sizeof(kindTable)/sizeof(kindOption))#define LANG_AUTO   (-1)#define LANG_IGNORE (-2)/**   DATA DECLARATIONS*/typedef int langType;typedef void (*createRegexTag) (const vString* const name);typedef void (*simpleParser) (void);typedef boolean (*rescanParser) (const unsigned int passCount);typedef void (*parserInitialize) (langType language);typedef struct sKindOption {    boolean enabled;			/* are tags for kind enabled? */    int letter;				/* kind letter */    const char* name;			/* kind name */    const char* description;		/* displayed in --help output */} kindOption;typedef struct {    /* defined by parser */    char* name;				/* name of language */    kindOption* kinds;			/* tag kinds handled by parser */    unsigned int kindCount;		/* size of `kinds' list */    const char* const* extensions;	/* list of default extensions */    const char* const* patterns;	/* list of default file name patterns */    parserInitialize initialize;	/* initialization routine, if needed */    simpleParser parser;		/* simple parser (common case) */    rescanParser parser2;		/* rescanning parser (unusual case) */    boolean regex;			/* is this a regex parser? */    /* used internally */    unsigned int id;			/* id assigned to language */    boolean enabled;			/* currently enabled? */    stringList* currentPatterns;	/* current list of file name patterns */    stringList* currentExtensions;	/* current list of extensions */} parserDefinition;typedef parserDefinition* (parserDefinitionFunc) (void);typedef struct {    size_t start;	/* character index in line where match starts */    size_t length;	/* length of match */} regexMatch;typedef void (*regexCallback) (const char *line, const regexMatch *matches, unsigned int count);/**   FUNCTION PROTOTYPES*//* Each parsers' definition function is called. The routine is expected to * return a structure allocated using parserNew(). This structure must, * at minimum, set the `parser' field. */extern parserDefinitionFunc PARSER_LIST;/* Legacy interface */extern boolean includingDefineTags (void);/* Language processing and parsing */extern void makeSimpleTag (const vString* const name, kindOption* const kinds, const int kind);extern parserDefinition* parserNew (const char* name);extern const char *getLanguageName (const langType language);extern langType getNamedLanguage (const char *const name);extern langType getFileLanguage (const char *const fileName);extern void installLanguageMapDefault (const langType language);extern void installLanguageMapDefaults (void);extern void clearLanguageMap (const langType language);extern void addLanguageExtensionMap (const langType language, const char* extension);extern void addLanguagePatternMap (const langType language, const char* ptrn);extern void printLanguageMap (const langType language);extern void printLanguageMaps (const langType language);extern void enableLanguages (const boolean state);extern void enableLanguage (const langType language, const boolean state);extern void initializeParsing (void);extern void freeParserResources (void);extern void processLanguageDefineOption (const char *const option, const char *const parameter);extern boolean processKindOption (const char *const option, const char *const parameter);extern void printKindOptions (void);extern void printLanguageKinds (const langType language);extern void printLanguageList (void);extern boolean parseFile (const char *const fileName);/* Regex interface */#ifdef HAVE_REGEXextern void findRegexTags (void);extern boolean matchRegex (const vString* const line, const langType language);#endifextern boolean processRegexOption (const char *const option, const char *const parameter);extern void addLanguageRegex (const langType language, const char* const regex);extern void addTagRegex (const langType language, const char* const regex, const char* const name, const char* const kinds, const char* const flags);extern void addCallbackRegex (const langType language, const char *const regex, const char *const flags, const regexCallback callback);extern void disableRegexKinds (const langType language);extern boolean enableRegexKind (const langType language, const int kind, const boolean mode);extern void printRegexKinds (const langType language, boolean indent);extern void freeRegexResources (void);extern void checkRegex (void);#endif	/* _PARSE_H *//* vi:set tabstop=8 shiftwidth=4: */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -