diff options
Diffstat (limited to 'lexlib')
-rw-r--r-- | lexlib/CharacterSet.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lexlib/CharacterSet.h b/lexlib/CharacterSet.h index 929a3a6e1..a0c45b2fb 100644 --- a/lexlib/CharacterSet.h +++ b/lexlib/CharacterSet.h @@ -40,11 +40,32 @@ public: if (base & setDigits) AddString("0123456789"); } + CharacterSet(const CharacterSet &other) { + size = other.size; + valueAfter = other.valueAfter; + bset = new bool[size]; + for (int i=0; i < size; i++) { + bset[i] = other.bset[i]; + } + } ~CharacterSet() { delete []bset; bset = 0; size = 0; } + CharacterSet &operator=(const CharacterSet &other) { + if (this != &other) { + bool *bsetNew = new bool[other.size]; + for (int i=0; i < other.size; i++) { + bsetNew[i] = other.bset[i]; + } + delete []bset; + size = other.size; + valueAfter = other.valueAfter; + bset = bsetNew; + } + return *this; + } void Add(int val) { assert(val >= 0); assert(val < size); |