[pygccxml-commit] source/pyplusplus/decl_wrappers namespace_wrapper.py,1.1,1.2 scopedef_wrapper.py,1
Brought to you by:
mbaas,
roman_yakovenko
From: Roman <rom...@us...> - 2006-03-15 09:27:14
|
Update of /cvsroot/pygccxml/source/pyplusplus/decl_wrappers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24990/pyplusplus/decl_wrappers Modified Files: namespace_wrapper.py scopedef_wrapper.py Log Message: adding select interface to decl_wrapper class hierarchy Documentation strings will come later Index: namespace_wrapper.py =================================================================== RCS file: /cvsroot/pygccxml/source/pyplusplus/decl_wrappers/namespace_wrapper.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** namespace_wrapper.py 28 Feb 2006 07:31:33 -0000 1.1 --- namespace_wrapper.py 15 Mar 2006 09:27:06 -0000 1.2 *************** *** 15,17 **** def is_finalizable(self): return True ! \ No newline at end of file --- 15,38 ---- def is_finalizable(self): return True ! ! def namespace( self, *args, **keywds ): ! return self._find_single( declarations.namespace_matcher_t, *args, **keywds ) ! ! def namespaces( self, *args, **keywds ): ! return self._find_multiple( declarations.namespace_matcher_t, *args, **keywds ) ! ! def free_function( self, *args, **keywds ): ! keywds['decl_type'] = declarations.free_function_t ! return self._find_single( declarations.calldef_matcher_t, *args, **keywds ) ! ! def free_functions( self, *args, **keywds ): ! keywds['decl_type'] = declarations.free_function_t ! return self._find_multiple( declarations.calldef_matcher_t, *args, **keywds ) ! ! def free_operator( self, *args, **keywds ): ! keywds['decl_type'] = declarations.free_operator_t ! return self._find_single( declarations.operator_matcher_t, *args, **keywds ) ! ! def free_operators( self, *args, **keywds ): ! keywds['decl_type'] = declarations.free_operator_t ! return self._find_multiple( declarations.operator_matcher_t, *args, **keywds ) Index: scopedef_wrapper.py =================================================================== RCS file: /cvsroot/pygccxml/source/pyplusplus/decl_wrappers/scopedef_wrapper.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** scopedef_wrapper.py 28 Feb 2006 07:31:33 -0000 1.1 --- scopedef_wrapper.py 15 Mar 2006 09:27:06 -0000 1.2 *************** *** 7,12 **** --- 7,16 ---- import finalizable from pygccxml import declarations + import mdecl_wrapper class scopedef_t(decl_wrapper.decl_wrapper_t, finalizable.finalizable_t): + + RECURSIVE_DEFAULT = True + def __init__(self): decl_wrapper.decl_wrapper_t.__init__( self ) *************** *** 27,28 **** --- 31,125 ---- , declarations.make_flatten( self.declarations ) ) map( lambda decl: decl.finalize(), finalizables ) + + def __create_matcher( self, match_class, *args, **keywds ): + if len( args ) == 1 and not keywds and callable( args[0] ): + matcher = match_class() + return lambda decl: matcher( decl ) and args[0](decl) + else: + if 1 == len( args ) and isinstance( args[0], str ): + keywds['name'] = args[0] + args = [] + return match_class(*args, **keywds) + + def _find_single( self, match_class, *args, **keywds ): + matcher = self.__create_matcher( match_class, *args, **keywds ) + recursive = keywds.get( 'recursive', scopedef_t.RECURSIVE_DEFAULT ) + return declarations.matcher.get_single( matcher, self.declarations, recursive ) + + def _find_multiple( self, match_class, *args, **keywds ): + matcher = self.__create_matcher( match_class, *args, **keywds ) + recursive = keywds.get( 'recursive', scopedef_t.RECURSIVE_DEFAULT ) + found = declarations.matcher.find( matcher, self.declarations, recursive ) + return mdecl_wrapper.mdecl_wrapper_t( found ) + + def decl( self, *args, **keywds ): + return self._find_single( declarations.declaration_matcher_t, *args, **keywds ) + + def decls( self, *args, **keywds ): + return self._find_multiple( declarations.declaration_matcher_t, *args, **keywds ) + + def class_( self, *args, **keywds ): + keywds['decl_type'] = declarations.class_t + return self._find_single( declarations.declaration_matcher_t, *args, **keywds ) + + def classes( self, *args, **keywds ): + keywds['decl_type'] = declarations.class_t + return self._find_multiple( declarations.declaration_matcher_t, *args, **keywds ) + + def variable( self, *args, **keywds ): + return self._find_single( declarations.variable_matcher_t, *args, **keywds ) + + def variables( self, *args, **keywds ): + return self._find_multiple( declarations.variable_matcher_t, *args, **keywds ) + + def calldef( self, *args, **keywds ): + return self._find_single( declarations.calldef_matcher_t, *args, **keywds ) + + def calldefs( self, *args, **keywds ): + return self._find_multiple( declarations.calldef_matcher_t, *args, **keywds ) + + def operator( self, *args, **keywds ): + return self._find_single( declarations.operator_matcher_t, *args, **keywds ) + + def operators( self, *args, **keywds ): + return self._find_multiple( declarations.operator_matcher_t, *args, **keywds ) + + def member_function( self, *args, **keywds ): + keywds['decl_type'] = declarations.member_function_t + return self._find_single( declarations.calldef_matcher_t, *args, **keywds ) + + def member_functions( self, *args, **keywds ): + keywds['decl_type'] = declarations.member_function_t + return self._find_multiple( declarations.calldef_matcher_t, *args, **keywds ) + + def constructor( self, *args, **keywds ): + keywds['decl_type'] = declarations.member_function_t + return self._find_single( declarations.calldef_matcher_t, *args, **keywds ) + + def constructors( self, *args, **keywds ): + keywds['decl_type'] = declarations.constructor_t + return self._find_multiple( declarations.calldef_matcher_t, *args, **keywds ) + + def member_operator( self, *args, **keywds ): + keywds['decl_type'] = declarations.member_operator_t + return self._find_single( declarations.operator_matcher_t, *args, **keywds ) + + def member_operators( self, *args, **keywds ): + keywds['decl_type'] = declarations.member_operator_t + return self._find_multiple( declarations.operator_matcher_t, *args, **keywds ) + + def casting_operator( self, *args, **keywds ): + keywds['decl_type'] = declarations.casting_operator_t + return self._find_single( declarations.calldef_matcher_t, *args, **keywds ) + + def casting_operators( self, *args, **keywds ): + keywds['decl_type'] = declarations.casting_operator_t + return self._find_multiple( declarations.calldef_matcher_t, *args, **keywds ) + + def enumeration( self, *args, **keywds ): + keywds['decl_type'] = declarations.enumeration_t + return self._find_single( declarations.declaration_matcher_t, *args, **keywds ) + + def enumerations( self, *args, **keywds ): + keywds['decl_type'] = declarations.enumeration_t + return self._find_multiple( declarations.declaration_matcher_t, *args, **keywds ) |