Update of /cvsroot/pygccxml/source/pygccxml/declarations
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19111/pygccxml/declarations
Modified Files:
filters.py matcher.py
Log Message:
porting boost.date_time library to use new api.
Porting process discover few bugs, I fixed them.
Index: filters.py
===================================================================
RCS file: /cvsroot/pygccxml/source/pygccxml/declarations/filters.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** filters.py 16 Mar 2006 06:31:29 -0000 1.4
--- filters.py 19 Mar 2006 13:35:39 -0000 1.5
***************
*** 12,15 ****
--- 12,16 ----
import calldef
import cpptypes
+ import templates
import class_declaration
from pygccxml import utils
***************
*** 102,117 ****
return False
if None != self.name:
! if '::' not in self.name:
! if decl.name != self.name:
! return False
else:
! if self.name != algorithm.full_name( decl ):
! return False
! if None != self.header_dir:
decl_dir = os.path.abspath( os.path.dirname( decl.location.file_name ) )
decl_dir = utils.normalize_path( decl_dir )
if decl_dir[:len(self.header_dir)] != self.header_dir:
return False
! if None != self.header_file:
decl_file = os.path.abspath( decl.location.file_name )
decl_file = utils.normalize_path( decl_file )
--- 103,127 ----
return False
if None != self.name:
! if not templates.is_instantiation( self.name ):
! if '::' not in self.name:
! if decl.name != self.name:
! return False
! else:
! if self.name != algorithm.full_name( decl ):
! return False
else:
! templ_name = templates.name( self.name )
! if '::' not in templ_name:
! if self.name != decl.name:
! return False
! else:
! if self.name != algorithm.full_name( decl ):
! return False
! if None != self.header_dir and decl.location:
decl_dir = os.path.abspath( os.path.dirname( decl.location.file_name ) )
decl_dir = utils.normalize_path( decl_dir )
if decl_dir[:len(self.header_dir)] != self.header_dir:
return False
! if None != self.header_file and decl.location:
decl_file = os.path.abspath( decl.location.file_name )
decl_file = utils.normalize_path( decl_file )
Index: matcher.py
===================================================================
RCS file: /cvsroot/pygccxml/source/pygccxml/declarations/matcher.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** matcher.py 28 Feb 2006 07:11:09 -0000 1.1
--- matcher.py 19 Mar 2006 13:35:39 -0000 1.2
***************
*** 16,20 ****
def __str__( self ):
return "Unable to find declaration."
!
def find( decl_matcher, decls, recursive=True ):
where = []
--- 16,28 ----
def __str__( self ):
return "Unable to find declaration."
!
! class multiple_declarations_found_t( RuntimeError ):
! def __init__( self, matcher ):
! RuntimeError.__init__( self )
! self.matcher = matcher
!
! def __str__( self ):
! return "Multiple declarations has been found."
!
def find( decl_matcher, decls, recursive=True ):
where = []
***************
*** 35,41 ****
def get_single( decl_matcher, decls, recursive=True ):
! found = matcher.find_single( decl_matcher, decls, recursive )
! if not found:
raise matcher.declaration_not_found_t( decl_matcher )
! return found
get_single = staticmethod( get_single )
\ No newline at end of file
--- 43,52 ----
def get_single( decl_matcher, decls, recursive=True ):
! answer = matcher.find( decl_matcher, decls, recursive )
! if len(answer) == 1:
! return answer[0]
! elif len(answer) == 0:
raise matcher.declaration_not_found_t( decl_matcher )
! else:
! raise matcher.multiple_declarations_found_t( decl_matcher )
get_single = staticmethod( get_single )
\ No newline at end of file
|