/usr/include/paraview/vtkParseExtras.h is in paraview-dev 4.0.1-1ubuntu1.
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 | /*=========================================================================
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 VTK_PARSE_EXTRAS_H
#define VTK_PARSE_EXTRAS_H
#include "vtkParseData.h"
#include <stddef.h>
#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 declaration string from a ValueInfo struct. If the
* "nf" arg is set, the returned string must be freed.
* Only simple text strings are supported, e.g. "const T **".
* The variable or typedef name, if present, is ignored.
*/
const char *vtkParse_ValueInfoToString(ValueInfo *val, int *nf);
/**
* 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
|