]> SALOME platform Git repositories - modules/paravis.git/blob - src/ParaView/vtkParseInternal.h
Salome HOME
Merge from V6_main_20120808 08Aug12
[modules/paravis.git] / src / ParaView / vtkParseInternal.h
1 /*=========================================================================
2
3   Program:   Visualization Toolkit
4   Module:    vtkParseInternal.h
5
6   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7   All rights reserved.
8   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10      This software is distributed WITHOUT ANY WARRANTY; without even
11      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12      PURPOSE.  See the above copyright notice for more information.
13
14 =========================================================================*/
15
16 /*
17   This is an internal header for vtkParse.y, it contains methods for
18   manipulating the data structures that are not meant for general
19   use by the wrappers, and that are likely to change over time.
20 */
21
22 #ifndef VTK_PARSE_PRIVATE_H
23 #define VTK_PARSE_PRIVATE_H
24
25 #include "vtkParse.h"
26
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30
31 /**
32  * Initializer methods
33  */
34 /*@{*/
35 void vtkParse_InitFile(FileInfo *file_info);
36 void vtkParse_InitNamespace(NamespaceInfo *namespace_info);
37 void vtkParse_InitClass(ClassInfo *cls);
38 void vtkParse_InitFunction(FunctionInfo *func);
39 void vtkParse_InitValue(ValueInfo *val);
40 void vtkParse_InitEnum(EnumInfo *item);
41 void vtkParse_InitUsing(UsingInfo *item);
42 void vtkParse_InitTemplateArgs(TemplateArgs *arg);
43 void vtkParse_InitTemplateArg(TemplateArg *arg);
44 /*@}*/
45
46 /**
47  * Copy methods
48  */
49 /*@{*/
50 void vtkParse_CopyNamespace(NamespaceInfo *data, const NamespaceInfo *orig);
51 void vtkParse_CopyClass(ClassInfo *data, const ClassInfo *orig);
52 void vtkParse_CopyFunction(FunctionInfo *data, const FunctionInfo *orig);
53 void vtkParse_CopyValue(ValueInfo *data, const ValueInfo *orig);
54 void vtkParse_CopyEnum(EnumInfo *data, const EnumInfo *orig);
55 void vtkParse_CopyUsing(UsingInfo *data, const UsingInfo *orig);
56 void vtkParse_CopyTemplateArgs(TemplateArgs *data, const TemplateArgs *orig);
57 void vtkParse_CopyTemplateArg(TemplateArg *data, const TemplateArg *orig);
58 /*@}*/
59
60 /**
61  * Free methods
62  */
63 /*@{*/
64 void vtkParse_FreeFile(FileInfo *file_info);
65 void vtkParse_FreeNamespace(NamespaceInfo *namespace_info);
66 void vtkParse_FreeClass(ClassInfo *cls);
67 void vtkParse_FreeFunction(FunctionInfo *func);
68 void vtkParse_FreeValue(ValueInfo *val);
69 void vtkParse_FreeEnum(EnumInfo *item);
70 void vtkParse_FreeUsing(UsingInfo *item);
71 void vtkParse_FreeTemplateArgs(TemplateArgs *arg);
72 void vtkParse_FreeTemplateArg(TemplateArg *arg);
73 /*@}*/
74
75 /**
76  * Make a persistent copy of a string for use with AddStringToArray:
77  * At most 'n' chars will be copied, and the string will be terminated.
78  * If a null pointer is provided, then a null pointer will be returned.
79  */
80 const char *vtkParse_DuplicateString(const char *cp, size_t n);
81
82 /**
83  * Add a string to an array of strings, grow array as necessary.
84  */
85 void vtkParse_AddStringToArray(
86   const char ***valueArray, int *count, const char *value);
87
88 /**
89  * Expand the Item array for classes and namespaces.
90  */
91 void vtkParse_AddItemToArray(
92   ItemInfo **valueArray, int *count, parse_item_t type, int idx);
93
94
95 /**
96  * Add various items to the structs.
97  */
98 /*@{*/
99 void vtkParse_AddClassToClass(ClassInfo *info, ClassInfo *item);
100 void vtkParse_AddFunctionToClass(ClassInfo *info, FunctionInfo *item);
101 void vtkParse_AddEnumToClass(ClassInfo *info, EnumInfo *item);
102 void vtkParse_AddConstantToClass(ClassInfo *info, ValueInfo *item);
103 void vtkParse_AddVariableToClass(ClassInfo *info, ValueInfo *item);
104 void vtkParse_AddTypedefToClass(ClassInfo *info, ValueInfo *item);
105 void vtkParse_AddUsingToClass(ClassInfo *info, UsingInfo *item);
106 void vtkParse_AddNamespaceToNamespace(NamespaceInfo *info,NamespaceInfo *item);
107 void vtkParse_AddClassToNamespace(NamespaceInfo *info, ClassInfo *item);
108 void vtkParse_AddFunctionToNamespace(NamespaceInfo *info, FunctionInfo *item);
109 void vtkParse_AddEnumToNamespace(NamespaceInfo *info, EnumInfo *item);
110 void vtkParse_AddConstantToNamespace(NamespaceInfo *info, ValueInfo *item);
111 void vtkParse_AddVariableToNamespace(NamespaceInfo *info, ValueInfo *item);
112 void vtkParse_AddTypedefToNamespace(NamespaceInfo *info, ValueInfo *item);
113 void vtkParse_AddUsingToNamespace(NamespaceInfo *info, UsingInfo *item);
114 void vtkParse_AddArgumentToFunction(FunctionInfo *info, ValueInfo *item);
115 void vtkParse_AddArgumentToTemplate(TemplateArgs *info, TemplateArg *item);
116 /*@}*/
117
118 /**
119  * Add default constructors if they do not already exist
120  */
121 void vtkParse_AddDefaultConstructors(ClassInfo *data);
122
123 /**
124  * Simple utility for mapping VTK types to VTK_PARSE types.
125  */
126 unsigned int vtkParse_MapType(int vtktype);
127
128 /**
129  * Ignore BTX/ETX markers
130  */
131 void vtkParse_SetIgnoreBTX(int option);
132
133 #ifdef __cplusplus
134 } /* extern "C" */
135 #endif
136
137 #endif