Commit bc59964a authored by David Gobbi's avatar David Gobbi
Browse files

ENH: Rework vtkWrapJava and vtkWrapTcl to use vtkParseType.h

All of the hexidecimal constants in vtkWrap/ParseJava and vtkWrapTcl
have been replaced with constants defined in vtkParseType.h.  The
semantics of these files is the same as before.  I checked the
generated code for all VTK classes to make sure that it is the same
as it was before this change.
parent ed312f3e
......@@ -17,6 +17,7 @@
#include <string.h>
#include <stdlib.h>
#include "vtkParse.h"
#include "vtkParseType.h"
int numberOfWrappedFunctions = 0;
FunctionInfo *wrappedFunctions[1000];
......@@ -24,48 +25,49 @@ extern FunctionInfo *currentFunction;
void output_temp(FILE *fp,int i)
{
int aType = (currentFunction->ArgTypes[i] & VTK_PARSE_UNQUALIFIED_TYPE);
/* ignore void */
if (((currentFunction->ArgTypes[i] % 0x10) == 0x2)&&
(!((currentFunction->ArgTypes[i] % 0x1000)/0x100)))
if (aType == VTK_PARSE_VOID)
{
return;
}
if (currentFunction->ArgTypes[i] == 0x5000)
if (currentFunction->ArgTypes[i] == VTK_PARSE_FUNCTION)
{
fprintf(fp,"Object id0, String id1");
fprintf(fp,"Object id0, String id1");
return;
}
if (currentFunction->ArgTypes[i] % 0x1000 == 0x303)
if (aType == VTK_PARSE_CHAR_PTR)
{
fprintf(fp,"String ");
}
else
{
switch (currentFunction->ArgTypes[i] % 0x10)
switch ((aType & VTK_PARSE_BASE_TYPE) & ~VTK_PARSE_UNSIGNED)
{
case 0x1: fprintf(fp,"double "); break;
case 0x7: fprintf(fp,"double "); break;
case 0x4: fprintf(fp,"int "); break;
case 0x5: fprintf(fp,"int "); break;
case 0x6: fprintf(fp,"int "); break;
case 0xA: fprintf(fp,"int "); break;
case 0xB: fprintf(fp,"int "); break;
case 0xC: fprintf(fp,"int "); break;
case 0xD: fprintf(fp,"char "); break;
case 0xE: fprintf(fp,"boolean "); break;
case 0x2: fprintf(fp,"void "); break;
case 0x3: fprintf(fp,"char "); break;
case 0x9: fprintf(fp,"%s ",currentFunction->ArgClasses[i]); break;
case 0x8: return;
case VTK_PARSE_FLOAT: fprintf(fp,"double "); break;
case VTK_PARSE_DOUBLE: fprintf(fp,"double "); break;
case VTK_PARSE_INT: fprintf(fp,"int "); break;
case VTK_PARSE_SHORT: fprintf(fp,"int "); break;
case VTK_PARSE_LONG: fprintf(fp,"int "); break;
case VTK_PARSE_ID_TYPE: fprintf(fp,"int "); break;
case VTK_PARSE_LONG_LONG: fprintf(fp,"int "); break;
case VTK_PARSE___INT64: fprintf(fp,"int "); break;
case VTK_PARSE_SIGNED_CHAR: fprintf(fp,"char "); break;
case VTK_PARSE_BOOL: fprintf(fp,"boolean "); break;
case VTK_PARSE_VOID: fprintf(fp,"void "); break;
case VTK_PARSE_CHAR: fprintf(fp,"char "); break;
case VTK_PARSE_VTK_OBJECT: fprintf(fp,"%s ",currentFunction->ArgClasses[i]); break;
case VTK_PARSE_UNKNOWN: return;
}
}
fprintf(fp,"id%i",i);
if (((currentFunction->ArgTypes[i] % 0x1000)/0x100 == 0x3)&&
(currentFunction->ArgTypes[i] % 0x1000 != 0x303)&&
(currentFunction->ArgTypes[i] % 0x1000 != 0x309))
if (((aType & VTK_PARSE_INDIRECT) == VTK_PARSE_POINTER) &&
(aType != VTK_PARSE_CHAR_PTR) &&
(aType != VTK_PARSE_VTK_OBJECT_PTR))
{
fprintf(fp,"[]");
}
......@@ -73,170 +75,253 @@ void output_temp(FILE *fp,int i)
void return_result(FILE *fp)
{
switch (currentFunction->ReturnType % 0x1000)
{
case 0x1: fprintf(fp,"double "); break;
case 0x2: fprintf(fp,"void "); break;
case 0x3: fprintf(fp,"char "); break;
case 0x7: fprintf(fp,"double "); break;
case 0x4: case 0x5: case 0x6: case 0xA: case 0xB: case 0xC: case 0xD:
case 0x13: case 0x14: case 0x15: case 0x16: case 0x1A: case 0x1B: case 0x1C:
fprintf(fp,"int ");
int rType = (currentFunction->ReturnType & VTK_PARSE_UNQUALIFIED_TYPE);
switch (rType)
{
case VTK_PARSE_FLOAT:
fprintf(fp,"double ");
break;
case VTK_PARSE_VOID:
fprintf(fp,"void ");
break;
case 0xE:
case VTK_PARSE_CHAR:
fprintf(fp,"char ");
break;
case VTK_PARSE_DOUBLE:
fprintf(fp,"double ");
break;
case VTK_PARSE_INT:
case VTK_PARSE_SHORT:
case VTK_PARSE_LONG:
case VTK_PARSE_ID_TYPE:
case VTK_PARSE_LONG_LONG:
case VTK_PARSE___INT64:
case VTK_PARSE_SIGNED_CHAR:
case VTK_PARSE_UNSIGNED_CHAR:
case VTK_PARSE_UNSIGNED_INT:
case VTK_PARSE_UNSIGNED_SHORT:
case VTK_PARSE_UNSIGNED_LONG:
case VTK_PARSE_UNSIGNED_ID_TYPE:
case VTK_PARSE_UNSIGNED_LONG_LONG:
case VTK_PARSE_UNSIGNED___INT64:
fprintf(fp,"int ");
break;
case VTK_PARSE_BOOL:
fprintf(fp,"boolean ");
break;
case 0x303: fprintf(fp,"String "); break;
case 0x109:
case 0x309:
case VTK_PARSE_CHAR_PTR: fprintf(fp,"String "); break;
case VTK_PARSE_VTK_OBJECT_REF:
case VTK_PARSE_VTK_OBJECT_PTR:
fprintf(fp,"%s ",currentFunction->ReturnClass);
break;
/* handle functions returning vectors */
/* this is done by looking them up in a hint file */
case 0x301: case 0x307:
fprintf(fp,"double[] ");
case VTK_PARSE_FLOAT_PTR:
case VTK_PARSE_DOUBLE_PTR:
fprintf(fp,"double[] ");
break;
case VTK_PARSE_UNSIGNED_CHAR_PTR:
fprintf(fp,"byte[] ");
break;
case VTK_PARSE_INT_PTR:
case VTK_PARSE_SHORT_PTR:
case VTK_PARSE_LONG_PTR:
case VTK_PARSE_ID_TYPE_PTR:
case VTK_PARSE_LONG_LONG_PTR:
case VTK_PARSE___INT64_PTR:
case VTK_PARSE_SIGNED_CHAR_PTR:
case VTK_PARSE_UNSIGNED_INT_PTR:
case VTK_PARSE_UNSIGNED_SHORT_PTR:
case VTK_PARSE_UNSIGNED_LONG_PTR:
case VTK_PARSE_UNSIGNED_ID_TYPE_PTR:
case VTK_PARSE_UNSIGNED_LONG_LONG_PTR:
case VTK_PARSE_UNSIGNED___INT64_PTR:
fprintf(fp,"int[] ");
break;
case VTK_PARSE_BOOL_PTR:
fprintf(fp,"boolean[] ");
break;
case 0x313:
fprintf(fp,"byte[] ");
break;
case 0x304: case 0x305: case 0x306: case 0x30A: case 0x30B: case 0x30C: case 0x30D:
case 0x314: case 0x315: case 0x316: case 0x31A: case 0x31B: case 0x31C:
fprintf(fp,"int[] "); break;
case 0x30E:
fprintf(fp,"boolean[] "); break;
}
}
/* same as return_result except we return a long (the c++ pointer) rather than an object */
void return_result_native(FILE *fp)
{
switch (currentFunction->ReturnType % 0x1000)
{
case 0x1: fprintf(fp,"double "); break;
case 0x2: fprintf(fp,"void "); break;
case 0x3: fprintf(fp,"char "); break;
case 0x7: fprintf(fp,"double "); break;
case 0x4: case 0x5: case 0x6: case 0xA: case 0xB: case 0xC: case 0xD:
case 0x13: case 0x14: case 0x15: case 0x16: case 0x1A: case 0x1B: case 0x1C:
fprintf(fp,"int ");
int rType = (currentFunction->ReturnType & VTK_PARSE_UNQUALIFIED_TYPE);
switch (rType)
{
case VTK_PARSE_FLOAT:
fprintf(fp,"double ");
break;
case VTK_PARSE_VOID:
fprintf(fp,"void ");
break;
case 0xE:
case VTK_PARSE_CHAR:
fprintf(fp,"char ");
break;
case VTK_PARSE_DOUBLE:
fprintf(fp,"double ");
break;
case VTK_PARSE_INT:
case VTK_PARSE_SHORT:
case VTK_PARSE_LONG:
case VTK_PARSE_ID_TYPE:
case VTK_PARSE_LONG_LONG:
case VTK_PARSE___INT64:
case VTK_PARSE_SIGNED_CHAR:
case VTK_PARSE_UNSIGNED_CHAR:
case VTK_PARSE_UNSIGNED_INT:
case VTK_PARSE_UNSIGNED_SHORT:
case VTK_PARSE_UNSIGNED_LONG:
case VTK_PARSE_UNSIGNED_ID_TYPE:
case VTK_PARSE_UNSIGNED_LONG_LONG:
case VTK_PARSE_UNSIGNED___INT64:
fprintf(fp,"int ");
break;
case VTK_PARSE_BOOL:
fprintf(fp,"boolean ");
break;
case 0x303: fprintf(fp,"String "); break;
case 0x109:
case 0x309:
fprintf(fp,"long ");
case VTK_PARSE_CHAR_PTR: fprintf(fp,"String "); break;
case VTK_PARSE_VTK_OBJECT_REF:
case VTK_PARSE_VTK_OBJECT_PTR:
fprintf(fp,"long ");
break;
/* handle functions returning vectors */
/* this is done by looking them up in a hint file */
case 0x301: case 0x307:
fprintf(fp,"double[] ");
case VTK_PARSE_FLOAT_PTR:
case VTK_PARSE_DOUBLE_PTR:
fprintf(fp,"double[] ");
break;
case VTK_PARSE_UNSIGNED_CHAR_PTR:
fprintf(fp,"byte[] ");
break;
case VTK_PARSE_INT_PTR:
case VTK_PARSE_SHORT_PTR:
case VTK_PARSE_LONG_PTR:
case VTK_PARSE_ID_TYPE_PTR:
case VTK_PARSE_LONG_LONG_PTR:
case VTK_PARSE___INT64_PTR:
case VTK_PARSE_SIGNED_CHAR_PTR:
case VTK_PARSE_UNSIGNED_INT_PTR:
case VTK_PARSE_UNSIGNED_SHORT_PTR:
case VTK_PARSE_UNSIGNED_LONG_PTR:
case VTK_PARSE_UNSIGNED_ID_TYPE_PTR:
case VTK_PARSE_UNSIGNED_LONG_LONG_PTR:
case VTK_PARSE_UNSIGNED___INT64_PTR:
fprintf(fp,"int[] ");
break;
case VTK_PARSE_BOOL_PTR:
fprintf(fp,"boolean[] ");
break;
case 0x313:
fprintf(fp,"byte[] ");
break;
case 0x304: case 0x305: case 0x306: case 0x30A: case 0x30B: case 0x30C: case 0x30D:
case 0x314: case 0x315: case 0x316: case 0x31A: case 0x31B: case 0x31C:
fprintf(fp,"int[] "); break;
case 0x30E:
fprintf(fp,"boolean[] "); break;
}
}
/* have we done one of these yet */
int DoneOne()
{
int aType = 0;
int fType = 0;
int rType = 0;
int qType = 0;
int i,j;
int match;
FunctionInfo *fi;
for (i = 0; i < numberOfWrappedFunctions; i++)
{
fi = wrappedFunctions[i];
rType = (currentFunction->ReturnType & VTK_PARSE_UNQUALIFIED_TYPE);
qType = (fi->ReturnType & VTK_PARSE_UNQUALIFIED_TYPE);
if ((!strcmp(fi->Name,currentFunction->Name))
&&(fi->NumberOfArguments == currentFunction->NumberOfArguments))
{
match = 1;
for (j = 0; j < fi->NumberOfArguments; j++)
{
aType = (currentFunction->ArgTypes[j] & VTK_PARSE_UNQUALIFIED_TYPE);
fType = (fi->ArgTypes[j] & VTK_PARSE_UNQUALIFIED_TYPE);
if ((fi->ArgTypes[j] != currentFunction->ArgTypes[j]) &&
!(((fi->ArgTypes[j] % 0x1000 == 0x309)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x109)) ||
((fi->ArgTypes[j] % 0x1000 == 0x109)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x309)) ||
((fi->ArgTypes[j] % 0x1000 == 0x301)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x307)) ||
((fi->ArgTypes[j] % 0x1000 == 0x307)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x301)) ||
((fi->ArgTypes[j] % 0x1000 == 0x304)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x306)) ||
((fi->ArgTypes[j] % 0x1000 == 0x306)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x304)) ||
((fi->ArgTypes[j] % 0x1000 == 0x304)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x30A)) ||
((fi->ArgTypes[j] % 0x1000 == 0x30A)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x304)) ||
((fi->ArgTypes[j] % 0x1000 == 0x30A)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x306)) ||
((fi->ArgTypes[j] % 0x1000 == 0x306)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x30A)) ||
((fi->ArgTypes[j] % 0x1000 == 0x304)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x30B)) ||
((fi->ArgTypes[j] % 0x1000 == 0x30B)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x304)) ||
((fi->ArgTypes[j] % 0x1000 == 0x30B)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x306)) ||
((fi->ArgTypes[j] % 0x1000 == 0x306)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x30B)) ||
((fi->ArgTypes[j] % 0x1000 == 0x304)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x30C)) ||
((fi->ArgTypes[j] % 0x1000 == 0x30C)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x304)) ||
((fi->ArgTypes[j] % 0x1000 == 0x30C)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x306)) ||
((fi->ArgTypes[j] % 0x1000 == 0x306)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x30C)) ||
((fi->ArgTypes[j] % 0x1000 == 0x1)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x7)) ||
((fi->ArgTypes[j] % 0x1000 == 0x7)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x1)) ||
((fi->ArgTypes[j] % 0x1000 == 0x4)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x6)) ||
((fi->ArgTypes[j] % 0x1000 == 0x6)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x4)) ||
((fi->ArgTypes[j] % 0x1000 == 0x4)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0xA)) ||
((fi->ArgTypes[j] % 0x1000 == 0xA)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x4)) ||
((fi->ArgTypes[j] % 0x1000 == 0xA)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x6)) ||
((fi->ArgTypes[j] % 0x1000 == 0x6)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0xA)) ||
((fi->ArgTypes[j] % 0x1000 == 0x4)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0xB)) ||
((fi->ArgTypes[j] % 0x1000 == 0xB)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x4)) ||
((fi->ArgTypes[j] % 0x1000 == 0xB)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x6)) ||
((fi->ArgTypes[j] % 0x1000 == 0x6)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0xB)) ||
((fi->ArgTypes[j] % 0x1000 == 0x4)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0xC)) ||
((fi->ArgTypes[j] % 0x1000 == 0xC)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x4)) ||
((fi->ArgTypes[j] % 0x1000 == 0xC)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0x6)) ||
((fi->ArgTypes[j] % 0x1000 == 0x6)&&
(currentFunction->ArgTypes[j] % 0x1000 == 0xC))))
!(((fType == VTK_PARSE_VTK_OBJECT_PTR)&&
(aType == VTK_PARSE_VTK_OBJECT_REF)) ||
((fType == VTK_PARSE_VTK_OBJECT_REF)&&
(aType == VTK_PARSE_VTK_OBJECT_PTR)) ||
((fType == VTK_PARSE_FLOAT_PTR)&&
(aType == VTK_PARSE_DOUBLE_PTR)) ||
((fType == VTK_PARSE_DOUBLE_PTR)&&
(aType == VTK_PARSE_FLOAT_PTR)) ||
((fType == VTK_PARSE_INT_PTR)&&
(aType == VTK_PARSE_LONG_PTR)) ||
((fType == VTK_PARSE_LONG_PTR)&&
(aType == VTK_PARSE_INT_PTR)) ||
((fType == VTK_PARSE_INT_PTR)&&
(aType == VTK_PARSE_ID_TYPE_PTR)) ||
((fType == VTK_PARSE_ID_TYPE_PTR)&&
(aType == VTK_PARSE_INT_PTR)) ||
((fType == VTK_PARSE_ID_TYPE_PTR)&&
(aType == VTK_PARSE_LONG_PTR)) ||
((fType == VTK_PARSE_LONG_PTR)&&
(aType == VTK_PARSE_ID_TYPE_PTR)) ||
((fType == VTK_PARSE_INT_PTR)&&
(aType == VTK_PARSE_LONG_LONG_PTR)) ||
((fType == VTK_PARSE_LONG_LONG_PTR)&&
(aType == VTK_PARSE_INT_PTR)) ||
((fType == VTK_PARSE_LONG_LONG_PTR)&&
(aType == VTK_PARSE_LONG_PTR)) ||
((fType == VTK_PARSE_LONG_PTR)&&
(aType == VTK_PARSE_LONG_LONG_PTR)) ||
((fType == VTK_PARSE_INT_PTR)&&
(aType == VTK_PARSE___INT64_PTR)) ||
((fType == VTK_PARSE___INT64_PTR)&&
(aType == VTK_PARSE_INT_PTR)) ||
((fType == VTK_PARSE___INT64_PTR)&&
(aType == VTK_PARSE_LONG_PTR)) ||
((fType == VTK_PARSE_LONG_PTR)&&
(aType == VTK_PARSE___INT64_PTR)) ||
((fType == VTK_PARSE_FLOAT)&&
(aType == VTK_PARSE_DOUBLE)) ||
((fType == VTK_PARSE_DOUBLE)&&
(aType == VTK_PARSE_FLOAT)) ||
((fType == VTK_PARSE_INT)&&
(aType == VTK_PARSE_LONG)) ||
((fType == VTK_PARSE_LONG)&&
(aType == VTK_PARSE_INT)) ||
((fType == VTK_PARSE_INT)&&
(aType == VTK_PARSE_ID_TYPE)) ||
((fType == VTK_PARSE_ID_TYPE)&&
(aType == VTK_PARSE_INT)) ||
((fType == VTK_PARSE_ID_TYPE)&&
(aType == VTK_PARSE_LONG)) ||
((fType == VTK_PARSE_LONG)&&
(aType == VTK_PARSE_ID_TYPE)) ||
((fType == VTK_PARSE_INT)&&
(aType == VTK_PARSE_LONG_LONG)) ||
((fType == VTK_PARSE_LONG_LONG)&&
(aType == VTK_PARSE_INT)) ||
((fType == VTK_PARSE_LONG_LONG)&&
(aType == VTK_PARSE_LONG)) ||
((fType == VTK_PARSE_LONG)&&
(aType == VTK_PARSE_LONG_LONG)) ||
((fType == VTK_PARSE_INT)&&
(aType == VTK_PARSE___INT64)) ||
((fType == VTK_PARSE___INT64)&&
(aType == VTK_PARSE_INT)) ||
((fType == VTK_PARSE___INT64)&&
(aType == VTK_PARSE_LONG)) ||
((fType == VTK_PARSE_LONG)&&
(aType == VTK_PARSE___INT64))))
{
match = 0;
}
else
{
if (fi->ArgTypes[j] % 0x1000 == 0x309 || fi->ArgTypes[j] % 0x1000 == 0x109)
if (fType == VTK_PARSE_VTK_OBJECT_PTR ||
fType == VTK_PARSE_VTK_OBJECT_REF)
{
if (strcmp(fi->ArgClasses[j],currentFunction->ArgClasses[j]))
{
......@@ -246,80 +331,81 @@ int DoneOne()
}
}
if ((fi->ReturnType != currentFunction->ReturnType) &&
!(((fi->ReturnType % 0x1000 == 0x309)&&
(currentFunction->ReturnType % 0x1000 == 0x109)) ||
((fi->ReturnType % 0x1000 == 0x109)&&
(currentFunction->ReturnType % 0x1000 == 0x309)) ||
((fi->ReturnType % 0x1000 == 0x301)&&
(currentFunction->ReturnType % 0x1000 == 0x307)) ||
((fi->ReturnType % 0x1000 == 0x307)&&
(currentFunction->ReturnType % 0x1000 == 0x301)) ||
((fi->ReturnType % 0x1000 == 0x304)&&
(currentFunction->ReturnType % 0x1000 == 0x306)) ||
((fi->ReturnType % 0x1000 == 0x306)&&
(currentFunction->ReturnType % 0x1000 == 0x304)) ||
((fi->ReturnType % 0x1000 == 0x30A)&&
(currentFunction->ReturnType % 0x1000 == 0x306)) ||
((fi->ReturnType % 0x1000 == 0x306)&&
(currentFunction->ReturnType % 0x1000 == 0x30A)) ||
((fi->ReturnType % 0x1000 == 0x304)&&
(currentFunction->ReturnType % 0x1000 == 0x30A)) ||
((fi->ReturnType % 0x1000 == 0x30A)&&
(currentFunction->ReturnType % 0x1000 == 0x304)) ||
((fi->ReturnType % 0x1000 == 0x30B)&&
(currentFunction->ReturnType % 0x1000 == 0x306)) ||
((fi->ReturnType % 0x1000 == 0x306)&&
(currentFunction->ReturnType % 0x1000 == 0x30B)) ||
((fi->ReturnType % 0x1000 == 0x304)&&
(currentFunction->ReturnType % 0x1000 == 0x30B)) ||
((fi->ReturnType % 0x1000 == 0x30B)&&
(currentFunction->ReturnType % 0x1000 == 0x304)) ||
((fi->ReturnType % 0x1000 == 0x30C)&&
(currentFunction->ReturnType % 0x1000 == 0x306)) ||
((fi->ReturnType % 0x1000 == 0x306)&&
(currentFunction->ReturnType % 0x1000 == 0x30C)) ||
((fi->ReturnType % 0x1000 == 0x304)&&
(currentFunction->ReturnType % 0x1000 == 0x30C)) ||
((fi->ReturnType % 0x1000 == 0x30C)&&
(currentFunction->ReturnType % 0x1000 == 0x304)) ||
((fi->ReturnType % 0x1000 == 0x1)&&
(currentFunction->ReturnType % 0x1000 == 0x7)) ||
((fi->ReturnType % 0x1000 == 0x7)&&
(currentFunction->ReturnType % 0x1000 == 0x1)) ||
((fi->ReturnType % 0x1000 == 0x4)&&
(currentFunction->ReturnType % 0x1000 == 0x6)) ||
((fi->ReturnType % 0x1000 == 0x6)&&
(currentFunction->ReturnType % 0x1000 == 0x4)) ||
((fi->ReturnType % 0x1000 == 0x4)&&
(currentFunction->ReturnType % 0x1000 == 0xA)) ||
((fi->ReturnType % 0x1000 == 0xA)&&
(currentFunction->ReturnType % 0x1000 == 0x4)) ||
((fi->ReturnType % 0x1000 == 0xA)&&
(currentFunction->ReturnType % 0x1000 == 0x6)) ||
((fi->ReturnType % 0x1000 == 0x6)&&
(currentFunction->ReturnType % 0x1000 == 0xA)) ||
((fi->ReturnType % 0x1000 == 0x4)&&
(currentFunction->ReturnType % 0x1000 == 0xB)) ||
((fi->ReturnType % 0x1000 == 0xB)&&
(currentFunction->ReturnType % 0x1000 == 0x4)) ||
((fi->ReturnType % 0x1000 == 0xB)&&
(currentFunction->ReturnType % 0x1000 == 0x6)) ||
((fi->ReturnType % 0x1000 == 0x6)&&
(currentFunction->ReturnType % 0x1000 == 0xB)) ||
((fi->ReturnType % 0x1000 == 0x4)&&
(currentFunction->ReturnType % 0x1000 == 0xC)) ||
((fi->ReturnType % 0x1000 == 0xC)&&
(currentFunction->ReturnType % 0x1000 == 0x4)) ||
((fi->ReturnType % 0x1000 == 0xC)&&
(currentFunction->ReturnType % 0x1000 == 0x6)) ||
((fi->ReturnType % 0x1000 == 0x6)&&
(currentFunction->ReturnType % 0x1000 == 0xC))))
!(((qType == VTK_PARSE_VTK_OBJECT_PTR)&&
(rType == VTK_PARSE_VTK_OBJECT_REF)) ||
((qType == VTK_PARSE_VTK_OBJECT_REF)&&
(rType == VTK_PARSE_VTK_OBJECT_PTR)) ||
((qType == VTK_PARSE_FLOAT_PTR)&&
(rType == VTK_PARSE_DOUBLE_PTR)) ||
((qType == VTK_PARSE_DOUBLE_PTR)&&