Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9349394
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
8 KB
Subscribers
None
View Options
diff --git a/parse.h b/parse.h
index 68a68bdf..d6b738ff 100644
--- a/parse.h
+++ b/parse.h
@@ -1,193 +1,193 @@
/*
* $Id$
*
* 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"
#include "trashbox.h"
/*
* MACROS
*/
#define KIND_COUNT(kindTable) (sizeof(kindTable)/sizeof(kindOption))
#define LANG_AUTO (-1)
#define LANG_IGNORE (-2)
/*
* DATA DECLARATIONS
*/
typedef int langType;
typedef enum {
RESCAN_NONE, /* No rescan needed */
RESCAN_FAILED, /* Scan failed, clear out tags added, rescan */
RESCAN_APPEND /* Scan succeeded, rescan */
} rescanReason;
typedef void (*createRegexTag) (const vString* const name);
typedef void (*simpleParser) (void);
typedef rescanReason (*rescanParser) (const unsigned int passCount);
typedef rescanReason (*rescanParserWithExceptionAndTrash) (const unsigned int passCount,
jmp_buf *jbuf,
TrashBox *tbox);
typedef void (*parserInitialize) (langType language);
typedef void (*parserFinalize) (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 stgTableEntry{
/* two gram table which represents the
characteristic of its language.
This can be used when file extension
is conflicted another parser. */
vString* spec;
unsigned char* tg_table;
vString* corpus_file;
struct stgTableEntry *next;
} tgTableEntry;
typedef enum {
METHOD_NOT_CRAFTED = 1 << 0,
METHOD_REGEX = 1 << 1,
METHOD_XCMD = 1 << 2,
METHOD_XCMD_AVAILABLE = 1 << 3,
} parsingMethod;
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 */
- const char *const *aliases; /* list of default aliases (altenative names) */
+ const char *const *aliases; /* list of default aliases (alternative names) */
parserInitialize initialize; /* initialization routine, if needed */
parserFinalize finalize; /* finalize routine, if needed */
simpleParser parser; /* simple parser (common case) */
rescanParser parser2; /* rescanning parser (unusual case) */
rescanParserWithExceptionAndTrash parser_with_gc; /* rescanning parser (unusual case) */
unsigned int method; /* See PARSE__... definitions above */
tgTableEntry *tg_entries;
/* 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 */
stringList* currentAliaes; /* current list of aliases */
} 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 boolean removeLanguageExtensionMap (const char *const extension);
extern void addLanguageExtensionMap (const langType language, const char* extension);
extern void addLanguagePatternMap (const langType language, const char* ptrn);
extern void installLanguageAliasesDefault (const langType language);
extern void installLanguageAliasesDefaults (void);
extern void clearLanguageAliases (const langType language);
extern void addLanguageAlias (const langType language, const char* alias);
extern void addCorpusFile (const langType language, const char* const spec, vString* const corpus_file, boolean pattern_p);
extern void addTgEntryForExtension (const langType language, const char* const ext, unsigned char* const tg_table);
extern void addTgEntryForPattern (const langType language, const char* const pattern, unsigned char* const tg_table);
extern void printLanguageMap (const langType language);
extern void printLanguageMaps (const langType language);
extern void unifyLanguageMaps (void);
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 processMapOption (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 boolean processCorpusOption (const char *const option, const char *const parameter);
extern void printLanguageCorpus (langType language, const char *const spec);
extern boolean processAliasOption (const char *const option, const char *const parameter);
extern void printLanguageAliases (const langType language);
extern void printLanguageList (void);
extern boolean parseFile (const char *const fileName);
/* Regex interface */
#ifdef HAVE_REGEX
extern void findRegexTags (void);
extern boolean matchRegex (const vString* const line, const langType language);
#endif
extern 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 resetRegexKinds (const langType language, boolean mode);
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 boolean checkRegex (void);
extern void useRegexMethod (const langType language);
#ifdef HAVE_COPROC
extern boolean invokeXcmd (const char* const fileName, const langType language);
#endif
extern boolean processXcmdOption (const char *const option, const char *const parameter);
extern void addLanguageXcmd (const langType language, const char* const path);
extern void addTagXcmd (const langType language, vString* pathvstr);
extern void resetXcmdKinds (const langType language, boolean mode);
extern boolean enableXcmdKind (const langType language, const int kind, const boolean mode);
extern void printXcmdKinds (const langType language, boolean indent);
extern void freeXcmdResources (void);
extern void useXcmdMethod (const langType language);
extern void notifyAvailabilityXcmdMethod (const langType language);
#endif /* _PARSE_H */
/* vi:set tabstop=4 shiftwidth=4: */
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Jul 4 2025, 7:20 PM (6 w, 2 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3451308
Attached To
rPUC universal-ctags debian packaging
Event Timeline
Log In to Comment