Page MenuHomeSoftware Heritage

No OneTemporary

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

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

Event Timeline