~ubuntu-branches/ubuntu/wily/apparmor/wily

« back to all changes in this revision

Viewing changes to deprecated/management/profile-editor/src/wxStyledTextCtrl/KeyWords.h

  • Committer: Bazaar Package Importer
  • Author(s): Kees Cook
  • Date: 2011-08-10 18:12:34 UTC
  • mto: This revision was merged to the branch mainline in revision 9.
  • Revision ID: james.westby@ubuntu.com-20110810181234-b6obckg60cp99crg
Tags: upstream-2.7.0~beta1+bzr1774
ImportĀ upstreamĀ versionĀ 2.7.0~beta1+bzr1774

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// Scintilla source code edit control
2
 
/** @file KeyWords.h
3
 
 ** Colourise for particular languages.
4
 
 **/
5
 
// Copyright 1998-2001 by Neil Hodgson <neilh@scintilla.org>
6
 
// The License.txt file describes the conditions under which this software may be distributed.
7
 
 
8
 
typedef void (*LexerFunction)(unsigned int startPos, int lengthDoc, int initStyle,
9
 
                  WordList *keywordlists[], Accessor &styler);
10
 
                  
11
 
/**
12
 
 * A LexerModule is responsible for lexing and folding a particular language.
13
 
 * The class maintains a list of LexerModules which can be searched to find a
14
 
 * module appropriate to a particular language.
15
 
 */
16
 
class LexerModule {
17
 
protected:
18
 
        const LexerModule *next;
19
 
        int language;
20
 
        LexerFunction fnLexer;
21
 
        LexerFunction fnFolder;
22
 
        const char * const * wordListDescriptions;
23
 
        int styleBits;
24
 
 
25
 
        static const LexerModule *base;
26
 
        static int nextLanguage;
27
 
 
28
 
public:
29
 
        const char *languageName;
30
 
        LexerModule(int language_, 
31
 
                LexerFunction fnLexer_, 
32
 
                const char *languageName_=0, 
33
 
                LexerFunction fnFolder_=0,
34
 
                const char * const wordListDescriptions_[] = NULL,
35
 
                int styleBits_=5);
36
 
        virtual ~LexerModule() {
37
 
        }
38
 
        int GetLanguage() const { return language; }
39
 
 
40
 
        // -1 is returned if no WordList information is available
41
 
        int GetNumWordLists() const;
42
 
        const char *GetWordListDescription(int index) const;
43
 
 
44
 
        int GetStyleBitsNeeded() const;
45
 
 
46
 
        virtual void Lex(unsigned int startPos, int lengthDoc, int initStyle,
47
 
                  WordList *keywordlists[], Accessor &styler) const;
48
 
        virtual void Fold(unsigned int startPos, int lengthDoc, int initStyle,
49
 
                  WordList *keywordlists[], Accessor &styler) const;
50
 
        static const LexerModule *Find(int language);
51
 
        static const LexerModule *Find(const char *languageName);
52
 
};
53
 
 
54
 
/**
55
 
 * Check if a character is a space.
56
 
 * This is ASCII specific but is safe with chars >= 0x80.
57
 
 */
58
 
inline bool isspacechar(unsigned char ch) {
59
 
    return (ch == ' ') || ((ch >= 0x09) && (ch <= 0x0d));
60
 
}
61
 
 
62
 
inline bool iswordchar(char ch) {
63
 
        return isascii(ch) && (isalnum(ch) || ch == '.' || ch == '_');
64
 
}
65
 
 
66
 
inline bool iswordstart(char ch) {
67
 
        return isascii(ch) && (isalnum(ch) || ch == '_');
68
 
}
69
 
 
70
 
inline bool isoperator(char ch) {
71
 
        if (isascii(ch) && isalnum(ch))
72
 
                return false;
73
 
        // '.' left out as it is used to make up numbers
74
 
        if (ch == '%' || ch == '^' || ch == '&' || ch == '*' ||
75
 
                ch == '(' || ch == ')' || ch == '-' || ch == '+' ||
76
 
                ch == '=' || ch == '|' || ch == '{' || ch == '}' ||
77
 
                ch == '[' || ch == ']' || ch == ':' || ch == ';' ||
78
 
                ch == '<' || ch == '>' || ch == ',' || ch == '/' ||
79
 
                ch == '?' || ch == '!' || ch == '.' || ch == '~')
80
 
                return true;
81
 
        return false;
82
 
}