This file is indexed.

/usr/include/xercesc/util/regx/Token.hpp is in libxerces-c-dev 3.1.1-5.

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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
 * $Id: Token.hpp 678879 2008-07-22 20:05:05Z amassari $
 */

#if !defined(XERCESC_INCLUDE_GUARD_TOKEN_HPP)
#define XERCESC_INCLUDE_GUARD_TOKEN_HPP

// ---------------------------------------------------------------------------
//  Includes
// ---------------------------------------------------------------------------
#include <xercesc/util/RuntimeException.hpp>
#include <xercesc/util/PlatformUtils.hpp>

XERCES_CPP_NAMESPACE_BEGIN

// ---------------------------------------------------------------------------
//  Forward Declaration
// ---------------------------------------------------------------------------
class RangeToken;
class TokenFactory;


class XMLUTIL_EXPORT Token : public XMemory
{
public:
    // -----------------------------------------------------------------------
    //  Public Constants
    // -----------------------------------------------------------------------
    // Token types
    typedef enum {
        T_CHAR = 0,
        T_CONCAT = 1,
        T_UNION = 2,
        T_CLOSURE = 3,
        T_RANGE = 4,
        T_NRANGE = 5,
        T_PAREN = 6,
        T_EMPTY = 7,
        T_ANCHOR = 8,
        T_NONGREEDYCLOSURE = 9,
        T_STRING = 10,
        T_DOT = 11,
        T_BACKREFERENCE = 12
    } tokType;

    // -----------------------------------------------------------------------
    //  Public Constructors and Destructor
    // -----------------------------------------------------------------------
    Token(const tokType tkType
        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
        );
    virtual ~Token();

    static const XMLInt32        UTF16_MAX;

    typedef enum {
        FC_CONTINUE = 0,
        FC_TERMINAL = 1,
        FC_ANY = 2
    } firstCharacterOptions;

    // -----------------------------------------------------------------------
    //  Getter methods
    // -----------------------------------------------------------------------
    tokType              getTokenType() const;
    XMLSize_t            getMinLength() const;
    int                  getMaxLength() const;
    virtual Token*       getChild(const XMLSize_t index) const;
    virtual XMLSize_t    size() const;
    virtual int          getMin() const;
    virtual int          getMax() const;
    virtual int          getNoParen() const;
    virtual int          getReferenceNo() const;
    virtual const XMLCh* getString() const;
    virtual XMLInt32     getChar() const;

    // -----------------------------------------------------------------------
    //  Setter methods
    // -----------------------------------------------------------------------
    void setTokenType(const tokType tokType);
    virtual void setMin(const int minVal);
    virtual void setMax(const int maxVal);

    // -----------------------------------------------------------------------
    //  Range manipulation methods
    // -----------------------------------------------------------------------
    virtual void addRange(const XMLInt32 start, const XMLInt32 end);
    virtual void mergeRanges(const Token *const tok);
    virtual void sortRanges();
    virtual void compactRanges();
    virtual void subtractRanges(RangeToken* const tok);
    virtual void intersectRanges(RangeToken* const tok);

    // -----------------------------------------------------------------------
    //  Putter methods
    // -----------------------------------------------------------------------
    virtual void addChild(Token* const child, TokenFactory* const tokFactory);

    // -----------------------------------------------------------------------
    //  Helper methods
    // -----------------------------------------------------------------------
    firstCharacterOptions analyzeFirstCharacter(RangeToken* const rangeTok, const int options,
                                                TokenFactory* const tokFactory);
    Token* findFixedString(int options, int& outOptions);

private:
    // -----------------------------------------------------------------------
    //  Unimplemented constructors and operators
    // -----------------------------------------------------------------------
    Token(const Token&);
    Token& operator=(const Token&);

    // -----------------------------------------------------------------------
    //  Private Helper methods
    // -----------------------------------------------------------------------
    bool isSet(const int options, const unsigned int flag);
    bool isShorterThan(Token* const tok);

    // -----------------------------------------------------------------------
    //  Private data members
    // -----------------------------------------------------------------------
    tokType fTokenType;
protected:
    MemoryManager* const    fMemoryManager;
};


// ---------------------------------------------------------------------------
//  Token: getter methods
// ---------------------------------------------------------------------------
inline Token::tokType Token::getTokenType() const {

    return fTokenType;
}

inline XMLSize_t Token::size() const {

    return 0;
}

inline Token* Token::getChild(const XMLSize_t) const {

    return 0;
}

inline int Token::getMin() const {

    return -1;
}

inline int Token::getMax() const {

    return -1;
}

inline int Token::getReferenceNo() const {

    return 0;
}

inline int Token::getNoParen() const {

    return 0;
}

inline const XMLCh* Token::getString() const {

    return 0;
}

inline XMLInt32 Token::getChar() const {

    return -1;
}

// ---------------------------------------------------------------------------
//  Token: setter methods
// ---------------------------------------------------------------------------
inline void Token::setTokenType(const Token::tokType tokType) {
    
    fTokenType = tokType;
}

inline void Token::setMax(const int) {
    // ClosureToken
}

inline void Token::setMin(const int) {
    // ClosureToken
}

inline bool Token::isSet(const int options, const unsigned int flag) {

    return (options & flag) == flag;
}

// ---------------------------------------------------------------------------
//  Token: setter methods
// ---------------------------------------------------------------------------
inline void Token::addChild(Token* const, TokenFactory* const) {

    ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
}

// ---------------------------------------------------------------------------
//  Token: Range manipulation methods
// ---------------------------------------------------------------------------
inline void Token::addRange(const XMLInt32, const XMLInt32) {

    ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
}

inline void Token::mergeRanges(const Token *const) {

    ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
}

inline void Token::sortRanges() {

    ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
}

inline void Token::compactRanges() {

    ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
}

inline void Token::subtractRanges(RangeToken* const) {

    ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
}

inline void Token::intersectRanges(RangeToken* const) {

    ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Regex_NotSupported, fMemoryManager);
}

XERCES_CPP_NAMESPACE_END

#endif

/**
  * End of file Token.hpp
  */