Package pygccxml :: Package declarations

Source Code for Package pygccxml.declarations

  1  # Copyright 2004-2008 Roman Yakovenko. 
  2  # Distributed under the Boost Software License, Version 1.0. (See 
  3  # accompanying file LICENSE_1_0.txt or copy at 
  4  # http://www.boost.org/LICENSE_1_0.txt) 
  5   
  6  """ 
  7  contains classes that describe different C++ declarations 
  8  """ 
  9   
 10  import compilers 
 11   
 12  from dependencies import dependency_info_t 
 13  from declaration import location_t 
 14  from declaration import declaration_t 
 15  from scopedef import scopedef_t 
 16  from enumeration import enumeration_t 
 17  from namespace import namespace_t 
 18   
 19  from class_declaration import class_t 
 20  from class_declaration import CLASS_TYPES 
 21  from class_declaration import ACCESS_TYPES 
 22  from class_declaration import hierarchy_info_t 
 23  from class_declaration import class_declaration_t 
 24  from class_declaration import class_types 
 25   
 26  from typedef import typedef_t 
 27   
 28  from cpptypes import type_t 
 29  from cpptypes import dummy_type_t 
 30  from cpptypes import unknown_t 
 31  from cpptypes import ellipsis_t 
 32  from cpptypes import fundamental_t 
 33  from cpptypes import void_t 
 34  from cpptypes import char_t 
 35  from cpptypes import signed_char_t 
 36  from cpptypes import unsigned_char_t 
 37  from cpptypes import wchar_t 
 38  from cpptypes import short_int_t 
 39  from cpptypes import short_unsigned_int_t 
 40  from cpptypes import bool_t 
 41  from cpptypes import int_t 
 42  from cpptypes import unsigned_int_t 
 43  from cpptypes import long_int_t 
 44  from cpptypes import long_unsigned_int_t 
 45  from cpptypes import long_long_int_t 
 46  from cpptypes import long_long_unsigned_int_t 
 47  from cpptypes import float_t 
 48  from cpptypes import double_t 
 49  from cpptypes import long_double_t 
 50  from cpptypes import FUNDAMENTAL_TYPES 
 51  from cpptypes import compound_t 
 52  from cpptypes import volatile_t 
 53  from cpptypes import const_t 
 54  from cpptypes import pointer_t 
 55  from cpptypes import reference_t 
 56  from cpptypes import restrict_t 
 57  from cpptypes import array_t 
 58  from cpptypes import calldef_type_t 
 59  from cpptypes import free_function_type_t 
 60  from cpptypes import member_function_type_t 
 61  from cpptypes import member_variable_type_t 
 62  from cpptypes import declarated_t 
 63  from cpptypes import type_qualifiers_t 
 64  #java types 
 65  from cpptypes import java_fundamental_t 
 66  from cpptypes import jbyte_t 
 67  from cpptypes import jshort_t 
 68  from cpptypes import jint_t 
 69  from cpptypes import jlong_t 
 70  from cpptypes import jfloat_t 
 71  from cpptypes import jdouble_t 
 72  from cpptypes import jchar_t 
 73  from cpptypes import jboolean_t 
 74   
 75   
 76   
 77  from variable import variable_t 
 78   
 79  from algorithm import full_name 
 80  from algorithm import full_name_from_declaration_path 
 81  from algorithm import make_flatten 
 82  from algorithm import apply_visitor 
 83  from algorithm import declaration_path 
 84  from algorithm import get_named_parent 
 85  from algorithm import find_declaration 
 86  from algorithm import match_declaration_t 
 87  from algorithm import find_all_declarations 
 88  from algorithm import find_first_declaration 
 89  from algorithm import declaration_files 
 90  from algorithm import visit_function_has_not_been_found_t 
 91  from algorithm import get_global_namespace 
 92   
 93  from calldef import VIRTUALITY_TYPES 
 94  from calldef import FUNCTION_VIRTUALITY_TYPES 
 95  from calldef import argument_t 
 96  from calldef import calldef_t 
 97  from calldef import member_calldef_t 
 98  from calldef import free_calldef_t 
 99  from calldef import operator_t 
100  from calldef import member_function_t 
101  from calldef import constructor_t 
102  from calldef import destructor_t 
103  from calldef import member_operator_t 
104  from calldef import casting_operator_t 
105  from calldef import free_function_t 
106  from calldef import free_operator_t 
107   
108  from decl_visitor import decl_visitor_t 
109  from type_visitor import type_visitor_t 
110   
111  from type_traits import decompose_type 
112  from type_traits import decompose_class 
113   
114   
115  from type_traits import is_enum 
116  from type_traits import enum_declaration 
117  from type_traits import enum_traits 
118   
119  from type_traits import is_class 
120  from type_traits import class_traits 
121  from type_traits import is_class_declaration 
122  from type_traits import class_declaration_traits 
123   
124   
125  from type_traits import is_bool 
126  from type_traits import is_same 
127  from type_traits import is_void 
128  from type_traits import is_void_pointer 
129  from type_traits import is_const 
130  from type_traits import base_type 
131  from type_traits import is_array 
132  from type_traits import is_pointer 
133  from type_traits import is_volatile 
134  from type_traits import is_integral 
135  from type_traits import is_reference 
136  from type_traits import is_arithmetic 
137  from type_traits import is_fundamental 
138  from type_traits import is_floating_point 
139  from type_traits import is_base_and_derived 
140  from type_traits import is_convertible 
141  from type_traits import is_noncopyable 
142  from type_traits import is_std_string 
143  from type_traits import is_std_wstring 
144  from type_traits import is_std_ostream 
145  from type_traits import is_std_wostream 
146  from type_traits import is_calldef_pointer 
147   
148  from type_traits import is_unary_operator 
149  from type_traits import is_binary_operator 
150   
151  from type_traits import array_size 
152  from type_traits import array_item_type 
153   
154  from type_traits import remove_cv 
155  from type_traits import remove_const 
156  from type_traits import remove_alias 
157  from type_traits import remove_pointer 
158  from type_traits import remove_volatile 
159  from type_traits import remove_reference 
160  from type_traits import remove_declarated 
161   
162  from type_traits import has_destructor 
163  from type_traits import has_public_less 
164  from type_traits import has_copy_constructor 
165  has_trivial_copy = has_copy_constructor #backward comp mode will be removed 
166  from type_traits import has_public_equal 
167  from type_traits import has_public_assign 
168  from type_traits import has_public_destructor 
169  from type_traits import has_public_constructor 
170  from type_traits import has_trivial_constructor 
171  from type_traits import find_trivial_constructor 
172  from type_traits import has_public_binary_operator 
173  from type_traits import has_any_non_copyconstructor 
174   
175  from type_traits import auto_ptr_traits 
176  from type_traits import smart_pointer_traits 
177   
178  from container_traits import list_traits 
179  from container_traits import deque_traits 
180  from container_traits import queue_traits 
181  from container_traits import priority_queue_traits 
182  from container_traits import vector_traits 
183  from container_traits import stack_traits 
184  from container_traits import map_traits 
185  from container_traits import multimap_traits 
186  from container_traits import hash_map_traits 
187  from container_traits import hash_multimap_traits 
188  from container_traits import set_traits 
189  from container_traits import hash_set_traits 
190  from container_traits import multiset_traits 
191  from container_traits import hash_multiset_traits 
192  from container_traits import find_container_traits 
193   
194  from function_traits import is_same_function 
195   
196  all_container_traits = container_traits.container_traits 
197  """tuple of all STD container traits classes""" 
198   
199  sequential_container_traits = \ 
200  [ 
201      list_traits 
202      , deque_traits 
203      , queue_traits 
204      , priority_queue_traits 
205      , vector_traits 
206      , stack_traits 
207      , set_traits 
208      , hash_set_traits 
209      , multiset_traits 
210      , hash_multiset_traits 
211  ] 
212  """list, that contains all STD container traits classes""" 
213   
214   
215  import templates 
216  import call_invocation 
217   
218  from filtering import filtering 
219   
220  from decl_factory import decl_factory_t 
221   
222  from matchers import matcher_base_t 
223  from matchers import or_matcher_t 
224  from matchers import and_matcher_t 
225  from matchers import not_matcher_t 
226  from matchers import declaration_matcher_t 
227  from matchers import calldef_matcher_t 
228  from matchers import namespace_matcher_t 
229  from matchers import variable_matcher_t 
230  from matchers import regex_matcher_t 
231  from matchers import access_type_matcher_t 
232  from matchers import operator_matcher_t 
233  from matchers import custom_matcher_t 
234  from matchers import virtuality_type_matcher_t 
235   
236  #make matchers to look more like functors 
237  or_matcher = or_matcher_t 
238  """see L{or_matcher} for documentation""" 
239  and_matcher = and_matcher_t 
240  """see L{and_matcher} for documentation""" 
241  not_matcher = not_matcher_t 
242  """see L{not_matcher} for documentation""" 
243  declaration_matcher = declaration_matcher_t 
244  """see L{declaration_matcher} for documentation""" 
245  calldef_matcher = calldef_matcher_t 
246  """see L{calldef_matcher} for documentation""" 
247  namespace_matcher = namespace_matcher_t 
248  """see L{namespace_matcher} for documentation""" 
249  variable_matcher = variable_matcher_t 
250  """see L{variable_matcher} for documentation""" 
251  regex_matcher = regex_matcher_t 
252  """see L{regex_matcher} for documentation""" 
253  access_type_matcher = access_type_matcher_t 
254  """see L{access_type_matcher} for documentation""" 
255  operator_matcher = operator_matcher_t 
256  """see L{operator_matcher} for documentation""" 
257  custom_matcher = custom_matcher_t 
258  """see L{custom_matcher} for documentation""" 
259  virtuality_type_matcher = virtuality_type_matcher_t 
260  """see L{virtuality_type_matcher} for documentation""" 
261   
262  from matcher import matcher 
263   
264  from mdecl_wrapper import mdecl_wrapper_t 
265   
266  from decl_printer import decl_printer_t 
267  from decl_printer import print_declarations 
268   
269   
270  import scopedef 
271   
272  scopedef.scopedef_t._impl_all_decl_types = \ 
273  [ 
274      scopedef.scopedef_t 
275      , enumeration_t 
276      , namespace_t 
277      , class_t 
278      , class_declaration_t 
279      , typedef_t 
280      , variable_t 
281      , calldef_t 
282      , member_calldef_t 
283      , free_calldef_t 
284      , operator_t 
285      , member_function_t 
286      , constructor_t 
287      , destructor_t 
288      , member_operator_t 
289      , casting_operator_t 
290      , free_function_t 
291      , free_operator_t 
292  ] 
293   
294  __impl_matchers = scopedef.scopedef_t._impl_matchers 
295  __impl_decl_types = scopedef.scopedef_t._impl_decl_types 
296   
297  __impl_matchers[ scopedef.scopedef_t.decl ] = declaration_matcher_t 
298   
299  __impl_matchers[ scopedef.scopedef_t.class_ ] = declaration_matcher_t 
300  __impl_decl_types[ scopedef.scopedef_t.class_ ] = class_t 
301   
302  __impl_matchers[ scopedef.scopedef_t.variable ] = variable_matcher_t 
303   
304  __impl_matchers[ scopedef.scopedef_t.calldef ] = calldef_matcher_t 
305  __impl_decl_types[ scopedef.scopedef_t.calldef ] = calldef_t 
306   
307  __impl_matchers[ scopedef.scopedef_t.operator ] = operator_matcher_t 
308  __impl_decl_types[ scopedef.scopedef_t.operator ] = operator_t 
309   
310  __impl_matchers[ scopedef.scopedef_t.member_function ] = calldef_matcher_t 
311  __impl_decl_types[ scopedef.scopedef_t.member_function ] = member_function_t 
312   
313  __impl_matchers[ scopedef.scopedef_t.constructor ] = calldef_matcher_t 
314  __impl_decl_types[ scopedef.scopedef_t.constructor ] = constructor_t 
315   
316  __impl_matchers[ scopedef.scopedef_t.member_operator ] = operator_matcher_t 
317  __impl_decl_types[ scopedef.scopedef_t.member_operator ] = member_operator_t 
318   
319  __impl_matchers[ scopedef.scopedef_t.member_operator ] = operator_matcher_t 
320  __impl_decl_types[ scopedef.scopedef_t.member_operator ] = member_operator_t 
321   
322  __impl_matchers[ scopedef.scopedef_t.casting_operator ] = calldef_matcher_t 
323  __impl_decl_types[ scopedef.scopedef_t.casting_operator ] = casting_operator_t 
324   
325  __impl_matchers[ scopedef.scopedef_t.enumeration ] = declaration_matcher_t 
326  __impl_decl_types[ scopedef.scopedef_t.enumeration ] = enumeration_t 
327   
328  __impl_matchers[ scopedef.scopedef_t.typedef ] = declaration_matcher_t 
329  __impl_decl_types[ scopedef.scopedef_t.typedef ] = typedef_t 
330   
331  __impl_matchers[ namespace_t.namespace ] = namespace_matcher_t 
332   
333  __impl_matchers[ namespace_t.free_function ] = calldef_matcher_t 
334  __impl_decl_types[ namespace_t.free_function ] = free_function_t 
335   
336  __impl_matchers[ namespace_t.free_operator ] = operator_matcher_t 
337  __impl_decl_types[ namespace_t.free_operator ] = free_operator_t 
338