~ubuntu-branches/ubuntu/utopic/geany/utopic

« back to all changes in this revision

Viewing changes to .pc/git_build_with_latest_glib.patch/tagmanager/parse.h

  • Committer: Package Import Robot
  • Author(s): Jeremy Bicha
  • Date: 2013-04-19 21:00:25 UTC
  • Revision ID: package-import@ubuntu.com-20130419210025-tsuvhqufntxj5rsy
Tags: 1.22+dfsg-2ubuntu1
* debian/patches/git_build_with_latest_glib.patch:
  - Backport patch from 1.23 to fix build failure with glib 2.36

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
*
 
3
*   Copyright (c) 1998-2001, Darren Hiebert
 
4
*
 
5
*   This source code is released for free distribution under the terms of the
 
6
*   GNU General Public License.
 
7
*
 
8
*   Private definitions for parsing support.
 
9
*/
 
10
#ifndef _PARSE_H
 
11
#define _PARSE_H
 
12
 
 
13
/*
 
14
*   INCLUDE FILES
 
15
*/
 
16
#include "general.h"    /* must always come first */
 
17
 
 
18
#include "parsers.h"    /* contains list of parsers */
 
19
#include "strlist.h"
 
20
#include "entry.h"
 
21
 
 
22
/*
 
23
*   MACROS
 
24
*/
 
25
#define KIND_COUNT(kindTable) (sizeof(kindTable)/sizeof(kindOption))
 
26
 
 
27
#define LANG_AUTO   (-1)
 
28
#define LANG_IGNORE (-2)
 
29
 
 
30
/*
 
31
*   DATA DECLARATIONS
 
32
*/
 
33
typedef int langType;
 
34
 
 
35
typedef void (*createRegexTag) (const vString* const name);
 
36
typedef void (*simpleParser) (void);
 
37
typedef boolean (*rescanParser) (const unsigned int passCount);
 
38
typedef void (*parserInitialize) (langType language);
 
39
typedef int (*tagEntryFunction) (const tagEntryInfo *const tag);
 
40
typedef void (*tagEntrySetArglistFunction) (const char *tag_name, const char *arglist);
 
41
 
 
42
typedef struct sKindOption {
 
43
    boolean enabled;                    /* are tags for kind enabled? */
 
44
    const int letter;                   /* kind letter */
 
45
    const char* name;                   /* kind name */
 
46
    const char* const description;      /* displayed in --help output */
 
47
} kindOption;
 
48
 
 
49
typedef struct {
 
50
    /* defined by parser */
 
51
    char* name;                         /* name of language */
 
52
    kindOption* kinds;                  /* tag kinds handled by parser */
 
53
    unsigned int kindCount;             /* size of `kinds' list */
 
54
    const char* const* extensions;      /* list of default extensions */
 
55
    const char* const* patterns;        /* list of default file name patterns */
 
56
    parserInitialize initialize;        /* initialization routine, if needed */
 
57
    simpleParser parser;                /* simple parser (common case) */
 
58
    rescanParser parser2;               /* rescanning parser (unusual case) */
 
59
    boolean regex;                      /* is this a regex parser? */
 
60
 
 
61
    /* used internally */
 
62
    unsigned int id;                    /* id assigned to language */
 
63
    boolean enabled;                    /* currently enabled? */
 
64
    stringList* currentPatterns;        /* current list of file name patterns */
 
65
    stringList* currentExtensions;      /* current list of extensions */
 
66
} parserDefinition;
 
67
 
 
68
typedef parserDefinition* (parserDefinitionFunc) (void);
 
69
 
 
70
typedef struct {
 
71
    int start;          /* character index in line where match starts */
 
72
    size_t length;      /* length of match */
 
73
} regexMatch;
 
74
 
 
75
typedef void (*regexCallback) (const char *line, const regexMatch *matches, unsigned int count);
 
76
 
 
77
/*
 
78
*   FUNCTION PROTOTYPES
 
79
*/
 
80
 
 
81
/* Each parsers' definition function is called. The routine is expected to
 
82
 * return a structure allocated using parserNew(). This structure must,
 
83
 * at minimum, set the `parser' field.
 
84
 */
 
85
extern parserDefinitionFunc PARSER_LIST;
 
86
extern parserDefinition** LanguageTable;
 
87
/* Legacy interface */
 
88
extern boolean includingDefineTags (void);
 
89
extern void processLegacyKindOption (const char *const parameter);
 
90
 
 
91
/* Language processing and parsing */
 
92
extern void makeSimpleTag (const vString* const name, kindOption* const kinds, const int kind);
 
93
extern void makeSimpleScopedTag (const vString* const name, kindOption* const kinds, const int kind, const char* scope, const char* scope2, const char *access);
 
94
 
 
95
extern parserDefinition* parserNew (const char* name);
 
96
extern const char *getLanguageName (const langType language);
 
97
extern langType getNamedLanguage (const char *const name);
 
98
extern langType getFileLanguage (const char *const fileName);
 
99
extern void installLanguageMapDefault (const langType language);
 
100
extern void installLanguageMapDefaults (void);
 
101
extern void clearLanguageMap (const langType language);
 
102
extern void addLanguageExtensionMap (const langType language, const char* extension);
 
103
extern void addLanguagePatternMap (const langType language, const char* ptrn);
 
104
extern void printLanguageMap (const langType language);
 
105
extern void enableLanguages (const boolean state);
 
106
extern void enableLanguage (const langType language, const boolean state);
 
107
extern void initializeParsing (void);
 
108
extern void freeParserResources (void);
 
109
extern void processLanguageDefineOption (const char *const option, const char *const parameter);
 
110
extern boolean processKindOption (const char *const option, const char *const parameter);
 
111
extern void printKindOptions (void);
 
112
extern boolean parseFile (const char *const fileName);
 
113
 
 
114
/* Regex interface */
 
115
#ifdef HAVE_REGEX
 
116
extern void findRegexTags (void);
 
117
extern boolean matchRegex (const vString* const line, const langType language);
 
118
#endif
 
119
extern boolean processRegexOption (const char *const option, const char *const parameter);
 
120
extern void addLanguageRegex (const langType language, const char* const regex);
 
121
extern void addTagRegex (const langType language, const char* const regex, const char* const name, const char* const kinds, const char* const flags);
 
122
extern void addCallbackRegex (const langType language, const char* const regex, const char* flags, const regexCallback callback);
 
123
extern void disableRegexKinds (const langType __unused__ language);
 
124
extern boolean enableRegexKind (const langType language, const int kind, const boolean mode);
 
125
extern void printRegexKindOptions (const langType language);
 
126
extern void freeRegexResources (void);
 
127
extern void checkRegex (void);
 
128
 
 
129
 
 
130
/* Extra stuff for Tag Manager */
 
131
extern tagEntryFunction TagEntryFunction;
 
132
extern tagEntrySetArglistFunction TagEntrySetArglistFunction;
 
133
extern void setTagEntryFunction(tagEntryFunction entry_function);
 
134
 
 
135
#endif  /* _PARSE_H */
 
136
 
 
137
/* vi:set tabstop=8 shiftwidth=4: */