blob: 1e94e98d69f17fef2d2e130f1d4be4faf8134e5c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
/*
* Copyright (C) 2012-2013 Robin Haberkorn
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __SYMBOLS_H
#define __SYMBOLS_H
#include <string.h>
#include <glib.h>
class SymbolList {
struct Entry {
const gchar *name;
gint value;
};
const Entry *entries;
gint size;
int (*cmp_fnc)(const char *, const char *, size_t);
/* for auto-completions */
GList *list;
public:
SymbolList(const Entry *_entries = NULL, gint _size = 0,
bool case_sensitive = false)
: entries(_entries), size(_size), list(NULL)
{
cmp_fnc = case_sensitive ? strncmp
: g_ascii_strncasecmp;
}
~SymbolList()
{
g_list_free(list);
}
gint lookup(const gchar *name, const gchar *prefix = "");
GList *get_glist(void);
/* generated per Scintilla SymbolList */
friend class SymbolListInitializer_scintilla;
friend class SymbolListInitializer_scilexer;
};
namespace Symbols {
extern SymbolList scintilla;
extern SymbolList scilexer;
}
#endif
|