This file is indexed.

/usr/include/vtk-7.1/vtkParseExtras.h is in libvtk7-dev 7.1.1+dfsg1-2.

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
/*=========================================================================

  Program:   Visualization Toolkit
  Module:    vtkParseExtras.h

  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
  All rights reserved.
  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.

     This software is distributed WITHOUT ANY WARRANTY; without even
     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
     PURPOSE.  See the above copyright notice for more information.

=========================================================================*/
/*-------------------------------------------------------------------------
  Copyright (c) 2011 David Gobbi.

  Contributed to the VisualizationToolkit by the author in May 2011
  under the terms of the Visualization Toolkit 2008 copyright.
-------------------------------------------------------------------------*/

/**
 * This file contains extra utilities for parsing and wrapping.
 */

#ifndef vtkParseExtras_h
#define vtkParseExtras_h

#include "vtkParseData.h"
#include <stddef.h>

/* Flags for selecting what info to print for declarations */
#define VTK_PARSE_NAMES          0x00000010
#define VTK_PARSE_VALUES         0x00000020
#define VTK_PARSE_RETURN_VALUE   0x00000040
#define VTK_PARSE_PARAMETER_LIST 0x00000080
#define VTK_PARSE_SPECIFIERS     0x00FF0000
#define VTK_PARSE_TRAILERS       0x0F000000
#define VTK_PARSE_TEMPLATES      0xF0000000
#define VTK_PARSE_EVERYTHING     0xFFFFFFFF

#ifdef __cplusplus
extern "C" {
#endif

/**
 * Skip over a sequence of characters that begin with an alphabetic
 * character or an underscore, and include only alphanumeric
 * characters or underscores. Return the number of characters.
 */
size_t vtkParse_IdentifierLength(const char *text);

/**
 * Skip over a name, including any namespace prefixes and
 * any template arguments.  Return the number of characters.
 * Examples are "name", "::name", "name<arg>", "name::name2",
 * "::name::name2<arg1,arg2>".
 */
size_t vtkParse_NameLength(const char *text);

/**
 * Skip over a name, including any template arguments, but stopping
 * if a '::' is encoutered.  Return the number of characters.
 * Examples are "name" and "name<arg>"
 */
size_t vtkParse_UnscopedNameLength(const char *text);

/**
 * Skip over a literal, which may be a number, a char in single
 * quotes, a string in double quotes, or a name, or a name followed
 * by arguments in parentheses.
 */
size_t vtkParse_LiteralLength(const char *text);

/**
 * Get a type from a type name, and return the number of characters used.
 * If the "classname" argument is not NULL, then it is used to return
 * the short name for the type, e.g. "long int" becomes "long", while
 * typedef names and class names are returned unchanged.  If "const"
 * appears in the type name, then the const bit flag is set for the
 * type, but "const" will not appear in the returned classname.
 */
size_t vtkParse_BasicTypeFromString(
  const char *text, unsigned int *type,
  const char **classname, size_t *classname_len);

/**
 * Generate a ValueInfo by parsing the type from the provided text.
 * Only simple text strings are supported, e.g. "const T **".
 * Returns the number of characters consumed.
 */
size_t vtkParse_ValueInfoFromString(
  ValueInfo *val, StringCache *cache, const char *text);

/**
 * Generate a C++ declaration string from a ValueInfo struct.
 *
 * The resulting string can represent a parameter declaration, a variable
 * or type declaration, or a function return value.  To use this function,
 * you should call it twice: first, call it with "text" set to NULL, and
 * it will return a lower bound on the length of the string that will be
 * produced.  Next, allocate at least length+1 bytes for the string, and
 * and call it again with "text" set to the allocated string.  The number
 * of bytes written to the string (not including the terminating null) will
 * be returned.
 *
 * The flags provide a mask that controls what information will be included,
 * for example VTK_PARSE_CONST|VTK_PARSE_VOLATILE is needed to include the
 * 'const' or 'volatile' qualifiers.  Use VTK_PARSE_EVERYTHING to generate
 * the entire declaration for a variable or parameter.
 */
size_t vtkParse_ValueInfoToString(
  ValueInfo *data, char *text, unsigned int flags);

/**
 * Generate a C++ function signature from a FunctionInfo struct.
 *
 * See vtkParse_ValueInfoToString() for basic usage.  The flags can be set
 * to VTK_PARSE_RETURN_VALUE to print only the return value for the function,
 * or VTK_PARSE_PARAMETER_LIST to print only the parameter list.
 */
size_t vtkParse_FunctionInfoToString(
  FunctionInfo *func, char *text, unsigned int flags);

/**
 * Generate a C++ template declaration from a TemplateInfo struct.
 *
 * See vtkParse_ValueInfoToString() for basic usage.
 */
size_t vtkParse_TemplateInfoToString(
  TemplateInfo *func, char *text, unsigned int flags);

/**
 * Compare two C++ functions to see if they have the same signature.
 *
 * The following are the possible return values.  Any non-zero return value
 * means that the parameters match.  If the 2nd bit is also set, then the
 * function return value also matches.  If the 3rd bit is set, then the
 * parameters match and both methods are members of the same class, and
 * the constness of the functions match.  This means that the signatures
 * are not identical unless the return value is 7 or higher (.
 */
int vtkParse_CompareFunctionSignature(
  const FunctionInfo *func1, const FunctionInfo *func2);

/**
 * Expand a typedef within a variable, parameter, or typedef declaration.
 * The expansion is done in-place.
 */
void vtkParse_ExpandTypedef(ValueInfo *valinfo, ValueInfo *typedefinfo);

/**
 * Expand any unrecognized types within a variable, parameter, or typedef
 * that match any of the supplied typedefs. The expansion is done in-place.
 */
void vtkParse_ExpandTypedefs(
  ValueInfo *valinfo, StringCache *cache,
  int n, const char *name[], const char *val[],
  ValueInfo *typedefinfo[]);

/**
 * Wherever one of the specified names exists inside a Value or inside
 * a Dimension size, replace it with the corresponding val string.
 * This is used to replace constants with their values.
 */
void vtkParse_ExpandValues(
  ValueInfo *valinfo, StringCache *cache,
  int n, const char *name[], const char *val[]);

/**
 * Search and replace, return the initial string if no replacements
 * occurred, else return a new string allocated with malloc. */
const char *vtkParse_StringReplace(
  const char *str1, int n, const char *name[], const char *val[]);

/**
 * Extract the class name and template args from a templated
 * class type ID.  Returns the full number of characters that
 * were consumed during the decomposition.
 */
size_t vtkParse_DecomposeTemplatedType(
  const char *text, const char **classname,
  int n, const char ***args, const char *defaults[]);

/**
 * Free the list of strings returned by ExtractTemplateArgs.
 */
void vtkParse_FreeTemplateDecomposition(
  const char *classname, int n, const char **args);

/**
 * Instantiate a class template by substituting the provided arguments
 * for the template parameters. If "n" is less than the number of template
 * parameters, then default parameter values (if present) will be used.
 * If an error occurs, the error will be printed to stderr and NULL will
 * be returned.
 */
void vtkParse_InstantiateClassTemplate(
  ClassInfo *data, StringCache *cache, int n, const char *args[]);

/**
 * Instantiate a function or class method template by substituting the
 * provided arguments for the template parameters.  If "n" is less than
 * the number of template parameters, then default parameter values
 * (if present) will be used.  If an error occurs, the error will be
 * printed to stderr and NULL will be returned.
 */
void vtkParse_IntantiateFunctionTemplate(
  FunctionInfo *data, int n, const char *args[]);

/**
 * Get a zero-terminated array of the types in vtkTemplateMacro.
 */
const char **vtkParse_GetTemplateMacroTypes();

/**
 * Get a zero-terminated array of the types in vtkArray.
 */
const char **vtkParse_GetArrayTypes();


#ifdef __cplusplus
} /* extern "C" */
#endif

#endif