MCPcopy Create free account
hub / github.com/ProgerXP/Notepad2e / CharacterSet

Class CharacterSet

scintilla/lexlib/CharacterSet.h:15–87  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

13#endif
14
15class CharacterSet {
16 int size;
17 bool valueAfter;
18 bool *bset;
19public:
20 enum setBase {
21 setNone=0,
22 setLower=1,
23 setUpper=2,
24 setDigits=4,
25 setAlpha=setLower|setUpper,
26 setAlphaNum=setAlpha|setDigits
27 };
28 CharacterSet(setBase base=setNone, const char *initialSet="", int size_=0x80, bool valueAfter_=false) {
29 size = size_;
30 valueAfter = valueAfter_;
31 bset = new bool[size];
32 for (int i=0; i < size; i++) {
33 bset[i] = false;
34 }
35 AddString(initialSet);
36 if (base & setLower)
37 AddString("abcdefghijklmnopqrstuvwxyz");
38 if (base & setUpper)
39 AddString("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
40 if (base & setDigits)
41 AddString("0123456789");
42 }
43 CharacterSet(const CharacterSet &other) {
44 size = other.size;
45 valueAfter = other.valueAfter;
46 bset = new bool[size];
47 for (int i=0; i < size; i++) {
48 bset[i] = other.bset[i];
49 }
50 }
51 ~CharacterSet() {
52 delete []bset;
53 bset = 0;
54 size = 0;
55 }
56 CharacterSet &operator=(const CharacterSet &other) {
57 if (this != &other) {
58 bool *bsetNew = new bool[other.size];
59 for (int i=0; i < other.size; i++) {
60 bsetNew[i] = other.bset[i];
61 }
62 delete []bset;
63 size = other.size;
64 valueAfter = other.valueAfter;
65 bset = bsetNew;
66 }
67 return *this;
68 }
69 void Add(int val) {
70 assert(val >= 0);
71 assert(val < size);
72 bset[val] = true;

Callers 1

PropertySetMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected