VTK
|
Go to the source code of this file.
#define VTK_PARSE_BASE_TYPE 0x000000FF |
The parser identifies VTK types with 32-bit hexidecimal numbers:
There is some type information that cannot be stored within this bitfield. This info falls into three categories:
1) Function pointers are stored in a FunctionInfo struct. However, if the type is VTK_PARSE_FUNCTION with no POINTER, it is guaranteed to be "void func(void *)" which is the old VTK-style callback.
2) Multi-dimensional arrays are stored in a char *[MAX_ARRAY_DIMS] array with a NULL pointer indicating there are no more brackets. If the type is a pointer and the first value is not NULL, then that value gives the array size for that pointer. The reason that "char *" is used is because the sizes might be template parameters or constants defined elsewhere. However, most often the sizes are integer literals, and the first size will be stored as an int in ArgCounts.
3) The ID for VTK_PARSE_OBJECT is stored in ArgClasses. Mask for removing everything but the base type
Definition at line 51 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED 0x00000010 |
Mask for checking signed/unsigned.
Definition at line 56 of file vtkParseType.h.
#define VTK_PARSE_INDIRECT 0x0000FF00 |
Mask for pointers and references.
Definition at line 61 of file vtkParseType.h.
#define VTK_PARSE_QUALIFIER 0x00FF0000 |
Qualifiers.
Definition at line 66 of file vtkParseType.h.
#define VTK_PARSE_CONST 0x00010000 |
Definition at line 67 of file vtkParseType.h.
#define VTK_PARSE_STATIC 0x00020000 |
Definition at line 68 of file vtkParseType.h.
#define VTK_PARSE_VIRTUAL 0x00040000 |
Definition at line 69 of file vtkParseType.h.
#define VTK_PARSE_EXPLICIT 0x00080000 |
Definition at line 70 of file vtkParseType.h.
#define VTK_PARSE_MUTABLE 0x00100000 |
Definition at line 71 of file vtkParseType.h.
#define VTK_PARSE_VOLATILE 0x00200000 |
Definition at line 72 of file vtkParseType.h.
#define VTK_PARSE_RVALUE 0x00400000 |
Definition at line 73 of file vtkParseType.h.
#define VTK_PARSE_THREAD_LOCAL 0x00800000 |
Definition at line 74 of file vtkParseType.h.
#define VTK_PARSE_NEWINSTANCE 0x01000000 |
Definition at line 75 of file vtkParseType.h.
#define VTK_PARSE_TYPEDEF 0x10000000 |
Special.
Definition at line 80 of file vtkParseType.h.
#define VTK_PARSE_FRIEND 0x20000000 |
Definition at line 81 of file vtkParseType.h.
#define VTK_PARSE_PACK 0x40000000 |
Definition at line 82 of file vtkParseType.h.
#define VTK_PARSE_QUALIFIED_TYPE 0x01FFFFFF |
Mask for removing qualifiers.
Definition at line 87 of file vtkParseType.h.
#define VTK_PARSE_UNQUALIFIED_TYPE 0x0000FFFF |
Definition at line 88 of file vtkParseType.h.
#define VTK_PARSE_BAD_INDIRECT 0xFF00 |
Indirection, contained in VTK_PARSE_INDIRECT.
Indirection of types works as follows: type **(**&val[n])[m] Pointers on the left, arrays on the right, and optionally a set of parentheses and a ref.
The 'type' may be preceded or followed by const, which is handled by the VTK_PARSE_CONST flag.
The array dimensionality and sizes is stored elsewhere, it isn't stored in the bitfield.
The leftmost [] is converted to a pointer, unless it is outside the parenthesis. So "type val[n][m]" becomes "type (*val)[m]", these two types are identical in C and C++.
Any pointer can be followed by const, and any pointer can be preceded by a parenthesis. However, you will never see a parenthesis anywhere except for just before the leftmost pointer.
These are good: "(*val)[n]", "**(*val)[n]", "(*&val)[n]" Not so good: "(**val)[n]" (is actually like (*val)[][n])
The Ref needs 1 bit total, and each pointer needs 2 bits:
0 = nothing 1 = '*' = VTK_PARSE_POINTER 2 = '[]' = VTK_PARSE_ARRAY 3 = '* const' = VTK_PARSE_CONST_POINTER
The VTK_PARSE_ARRAY flag means "this pointer is actually the first bracket in a multi-dimensional array" with the array info stored separately.
Definition at line 128 of file vtkParseType.h.
#define VTK_PARSE_POINTER_MASK 0xFE00 |
Definition at line 129 of file vtkParseType.h.
#define VTK_PARSE_POINTER_LOWMASK 0x0600 |
Definition at line 130 of file vtkParseType.h.
#define VTK_PARSE_REF 0x0100 |
Definition at line 131 of file vtkParseType.h.
#define VTK_PARSE_POINTER 0x0200 |
Definition at line 132 of file vtkParseType.h.
#define VTK_PARSE_POINTER_REF 0x0300 |
Definition at line 133 of file vtkParseType.h.
#define VTK_PARSE_ARRAY 0x0400 |
Definition at line 134 of file vtkParseType.h.
#define VTK_PARSE_ARRAY_REF 0x0500 |
Definition at line 135 of file vtkParseType.h.
#define VTK_PARSE_CONST_POINTER 0x0600 |
Definition at line 136 of file vtkParseType.h.
#define VTK_PARSE_CONST_POINTER_REF 0x0700 |
Definition at line 137 of file vtkParseType.h.
#define VTK_PARSE_POINTER_POINTER 0x0A00 |
Definition at line 138 of file vtkParseType.h.
#define VTK_PARSE_POINTER_POINTER_REF 0x0B00 |
Definition at line 139 of file vtkParseType.h.
#define VTK_PARSE_POINTER_CONST_POINTER 0x0E00 |
Definition at line 140 of file vtkParseType.h.
#define VTK_PARSE_FLOAT 0x01 |
Basic types contained in VTK_PARSE_BASE_TYPE.
The lowest two hex digits describe the basic type, where bit 0x10 is used to indicate unsigned types, value 0x8 is used for unrecognized types, and value 0x9 is used for types that start with "vtk".
The bit 0x10 is reserved for "unsigned", and it may only be present in unsigned types.
Do not rearrange these types, they are hard-coded into the hints file.
Definition at line 156 of file vtkParseType.h.
#define VTK_PARSE_VOID 0x02 |
Definition at line 157 of file vtkParseType.h.
#define VTK_PARSE_CHAR 0x03 |
Definition at line 158 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED_CHAR 0x13 |
Definition at line 159 of file vtkParseType.h.
#define VTK_PARSE_INT 0x04 |
Definition at line 160 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED_INT 0x14 |
Definition at line 161 of file vtkParseType.h.
#define VTK_PARSE_SHORT 0x05 |
Definition at line 162 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED_SHORT 0x15 |
Definition at line 163 of file vtkParseType.h.
#define VTK_PARSE_LONG 0x06 |
Definition at line 164 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED_LONG 0x16 |
Definition at line 165 of file vtkParseType.h.
#define VTK_PARSE_DOUBLE 0x07 |
Definition at line 166 of file vtkParseType.h.
#define VTK_PARSE_UNKNOWN 0x08 |
Definition at line 167 of file vtkParseType.h.
#define VTK_PARSE_OBJECT 0x09 |
Definition at line 168 of file vtkParseType.h.
#define VTK_PARSE_ID_TYPE 0x0A |
Definition at line 169 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED_ID_TYPE 0x1A |
Definition at line 170 of file vtkParseType.h.
#define VTK_PARSE_LONG_LONG 0x0B |
Definition at line 171 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED_LONG_LONG 0x1B |
Definition at line 172 of file vtkParseType.h.
#define VTK_PARSE___INT64 0x0C |
Definition at line 173 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED___INT64 0x1C |
Definition at line 174 of file vtkParseType.h.
#define VTK_PARSE_SIGNED_CHAR 0x0D |
Definition at line 175 of file vtkParseType.h.
#define VTK_PARSE_BOOL 0x0E |
Definition at line 176 of file vtkParseType.h.
#define VTK_PARSE_SSIZE_T 0x0F |
Definition at line 177 of file vtkParseType.h.
#define VTK_PARSE_SIZE_T 0x1F |
Definition at line 178 of file vtkParseType.h.
#define VTK_PARSE_STRING 0x21 |
Definition at line 179 of file vtkParseType.h.
#define VTK_PARSE_UNICODE_STRING 0x22 |
Definition at line 180 of file vtkParseType.h.
#define VTK_PARSE_OSTREAM 0x23 |
Definition at line 181 of file vtkParseType.h.
#define VTK_PARSE_ISTREAM 0x24 |
Definition at line 182 of file vtkParseType.h.
#define VTK_PARSE_FUNCTION 0x25 |
Definition at line 183 of file vtkParseType.h.
#define VTK_PARSE_QOBJECT 0x26 |
Definition at line 184 of file vtkParseType.h.
#define VTK_PARSE_LONG_DOUBLE 0x27 |
Definition at line 185 of file vtkParseType.h.
#define VTK_PARSE_WCHAR_T 0x28 |
Definition at line 186 of file vtkParseType.h.
#define VTK_PARSE_CHAR16_T 0x29 |
Definition at line 187 of file vtkParseType.h.
#define VTK_PARSE_CHAR32_T 0x2A |
Definition at line 188 of file vtkParseType.h.
#define VTK_PARSE_NULLPTR_T 0x2B |
Definition at line 189 of file vtkParseType.h.
#define VTK_PARSE_FLOAT_PTR 0x201 |
Basic pointer types.
Definition at line 194 of file vtkParseType.h.
#define VTK_PARSE_VOID_PTR 0x202 |
Definition at line 195 of file vtkParseType.h.
#define VTK_PARSE_CHAR_PTR 0x203 |
Definition at line 196 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED_CHAR_PTR 0x213 |
Definition at line 197 of file vtkParseType.h.
#define VTK_PARSE_INT_PTR 0x204 |
Definition at line 198 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED_INT_PTR 0x214 |
Definition at line 199 of file vtkParseType.h.
#define VTK_PARSE_SHORT_PTR 0x205 |
Definition at line 200 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED_SHORT_PTR 0x215 |
Definition at line 201 of file vtkParseType.h.
#define VTK_PARSE_LONG_PTR 0x206 |
Definition at line 202 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED_LONG_PTR 0x216 |
Definition at line 203 of file vtkParseType.h.
#define VTK_PARSE_DOUBLE_PTR 0x207 |
Definition at line 204 of file vtkParseType.h.
#define VTK_PARSE_UNKNOWN_PTR 0x208 |
Definition at line 205 of file vtkParseType.h.
#define VTK_PARSE_OBJECT_PTR 0x209 |
Definition at line 206 of file vtkParseType.h.
#define VTK_PARSE_ID_TYPE_PTR 0x20A |
Definition at line 207 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED_ID_TYPE_PTR 0x21A |
Definition at line 208 of file vtkParseType.h.
#define VTK_PARSE_LONG_LONG_PTR 0x20B |
Definition at line 209 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED_LONG_LONG_PTR 0x21B |
Definition at line 210 of file vtkParseType.h.
#define VTK_PARSE___INT64_PTR 0x20C |
Definition at line 211 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED___INT64_PTR 0x21C |
Definition at line 212 of file vtkParseType.h.
#define VTK_PARSE_SIGNED_CHAR_PTR 0x20D |
Definition at line 213 of file vtkParseType.h.
#define VTK_PARSE_BOOL_PTR 0x20E |
Definition at line 214 of file vtkParseType.h.
#define VTK_PARSE_SSIZE_T_PTR 0x20F |
Definition at line 215 of file vtkParseType.h.
#define VTK_PARSE_SIZE_T_PTR 0x21F |
Definition at line 216 of file vtkParseType.h.
#define VTK_PARSE_STRING_PTR 0x221 |
Definition at line 217 of file vtkParseType.h.
#define VTK_PARSE_UNICODE_STRING_PTR 0x222 |
Definition at line 218 of file vtkParseType.h.
#define VTK_PARSE_OSTREAM_PTR 0x223 |
Definition at line 219 of file vtkParseType.h.
#define VTK_PARSE_ISTREAM_PTR 0x224 |
Definition at line 220 of file vtkParseType.h.
#define VTK_PARSE_FUNCTION_PTR 0x225 |
Definition at line 221 of file vtkParseType.h.
#define VTK_PARSE_QOBJECT_PTR 0x226 |
Definition at line 222 of file vtkParseType.h.
#define VTK_PARSE_LONG_DOUBLE_PTR 0x227 |
Definition at line 223 of file vtkParseType.h.
#define VTK_PARSE_WCHAR_T_PTR 0x228 |
Definition at line 224 of file vtkParseType.h.
#define VTK_PARSE_CHAR16_T_PTR 0x229 |
Definition at line 225 of file vtkParseType.h.
#define VTK_PARSE_CHAR32_T_PTR 0x22A |
Definition at line 226 of file vtkParseType.h.
#define VTK_PARSE_NULLPTR_T_PTR 0x22B |
Definition at line 227 of file vtkParseType.h.
#define VTK_PARSE_FLOAT_REF 0x101 |
Basic reference types.
Definition at line 233 of file vtkParseType.h.
#define VTK_PARSE_VOID_REF 0x102 |
Definition at line 234 of file vtkParseType.h.
#define VTK_PARSE_CHAR_REF 0x103 |
Definition at line 235 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED_CHAR_REF 0x113 |
Definition at line 236 of file vtkParseType.h.
#define VTK_PARSE_INT_REF 0x104 |
Definition at line 237 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED_INT_REF 0x114 |
Definition at line 238 of file vtkParseType.h.
#define VTK_PARSE_SHORT_REF 0x105 |
Definition at line 239 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED_SHORT_REF 0x115 |
Definition at line 240 of file vtkParseType.h.
#define VTK_PARSE_LONG_REF 0x106 |
Definition at line 241 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED_LONG_REF 0x116 |
Definition at line 242 of file vtkParseType.h.
#define VTK_PARSE_DOUBLE_REF 0x107 |
Definition at line 243 of file vtkParseType.h.
#define VTK_PARSE_UNKNOWN_REF 0x108 |
Definition at line 244 of file vtkParseType.h.
#define VTK_PARSE_OBJECT_REF 0x109 |
Definition at line 245 of file vtkParseType.h.
#define VTK_PARSE_ID_TYPE_REF 0x10A |
Definition at line 246 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED_ID_TYPE_REF 0x11A |
Definition at line 247 of file vtkParseType.h.
#define VTK_PARSE_LONG_LONG_REF 0x10B |
Definition at line 248 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED_LONG_LONG_REF 0x11B |
Definition at line 249 of file vtkParseType.h.
#define VTK_PARSE___INT64_REF 0x10C |
Definition at line 250 of file vtkParseType.h.
#define VTK_PARSE_UNSIGNED___INT64_REF 0x11C |
Definition at line 251 of file vtkParseType.h.
#define VTK_PARSE_SIGNED_CHAR_REF 0x10D |
Definition at line 252 of file vtkParseType.h.
#define VTK_PARSE_BOOL_REF 0x10E |
Definition at line 253 of file vtkParseType.h.
#define VTK_PARSE_SSIZE_T_REF 0x10F |
Definition at line 254 of file vtkParseType.h.
#define VTK_PARSE_SIZE_T_REF 0x11F |
Definition at line 255 of file vtkParseType.h.
#define VTK_PARSE_STRING_REF 0x121 |
Definition at line 256 of file vtkParseType.h.
#define VTK_PARSE_UNICODE_STRING_REF 0x122 |
Definition at line 257 of file vtkParseType.h.
#define VTK_PARSE_OSTREAM_REF 0x123 |
Definition at line 258 of file vtkParseType.h.
#define VTK_PARSE_ISTREAM_REF 0x124 |
Definition at line 259 of file vtkParseType.h.
#define VTK_PARSE_QOBJECT_REF 0x126 |
Definition at line 260 of file vtkParseType.h.
#define VTK_PARSE_LONG_DOUBLE_REF 0x127 |
Definition at line 261 of file vtkParseType.h.
#define VTK_PARSE_WCHAR_T_REF 0x128 |
Definition at line 262 of file vtkParseType.h.
#define VTK_PARSE_CHAR16_T_REF 0x129 |
Definition at line 263 of file vtkParseType.h.
#define VTK_PARSE_CHAR32_T_REF 0x12A |
Definition at line 264 of file vtkParseType.h.
#define VTK_PARSE_NULLPTR_T_REF 0x12B |
Definition at line 265 of file vtkParseType.h.
#define VTK_PARSE_VTK_OBJECT VTK_PARSE_OBJECT |
For backwards compatibility.
Definition at line 271 of file vtkParseType.h.
#define VTK_PARSE_VTK_OBJECT_PTR VTK_PARSE_OBJECT_PTR |
Definition at line 272 of file vtkParseType.h.
#define VTK_PARSE_VTK_OBJECT_REF VTK_PARSE_OBJECT_REF |
Definition at line 273 of file vtkParseType.h.