/usr/include/srchilite/stringdef.h is in libsource-highlight-dev 3.1.6-2ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | //
// C++ Interface: StringDef
//
// Description: a string definition that is used by all the language elements.
//
//
// Author: Lorenzo Bettini, 1999-2007 <http://www.lorenzobettini.it>
//
// Copyright: See COPYING file that comes with this distribution
//
//
#ifndef STRINGDEF_H
#define STRINGDEF_H
#include <string>
#include <list>
namespace srchilite {
class StringDefs;
/**
represent a string for a language definition file's element
*/
class StringDef {
private:
/// @brief the actual content
std::string stringdef;
/// @brief the original representation (without any preprocessing)
std::string orig;
/// @brief whether the string was specified with double quotes
bool doubleQuotedString;
/// @brief whether this is contains a back reference to a matched subexpression
bool hasBackRef_;
public:
/**
* constructs a StringDef and store also the original representation
* @param s the actual content
* @param o the original representation
*/
StringDef(const std::string &s, const std::string &o) :
stringdef(s), orig(o), doubleQuotedString(false), hasBackRef_(false) {
}
/**
* constructs a StringDef and record whether it comes from a double quoted
* string.
* @param s the actual content
* @param doubleQuotes
*/
StringDef(const std::string &s, bool doubleQuotes = false) :
stringdef(s), doubleQuotedString(doubleQuotes), hasBackRef_(false) {
}
/**
* return the string representation (after preprocessing)
* @return the string representation
*/
const std::string toString() const;
/**
* return the original representation (without any preprocessing);
* this is useful for printing errors
* @return the original representation
*/
const std::string toStringOriginal() const {
return orig;
}
/**
* whether this comes from a double quoted string
* @return whether this comes from a double quoted string
*/
bool isDoubleQuoted() const {
return doubleQuotedString;
}
/**
* @return whether this has a back reference
*/
bool hasBackRef() const {
return hasBackRef_;
}
/**
* @param b
*/
void setBackRef(bool b) {
hasBackRef_ = b;
}
/**
* Given two StringDef produces a new StringDef (keeping properties such as
* hasBackRef)
* @param s1
* @param s2
* @return the new StringDef
*/
static StringDef *concat(const StringDef *s1, const StringDef *s2);
};
typedef std::list<StringDef *> StringDefsBase;
/**
* A collection (list) of StringDef's. This collection is the owner
* of its elements, so it will delete them when the collection is deleted
*/
class StringDefs : public StringDefsBase {
public:
~StringDefs() {
for (StringDefsBase::iterator it = begin(); it != end(); ++it)
delete *it;
}
};
}
#endif
|