Update of /cvsroot/pygccxml/source/pyplusplus/decl_wrappers
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7137/pyplusplus/decl_wrappers
Modified Files:
__init__.py
Added Files:
decl_wrapper_printer.py
Log Message:
Removing DeclPrinter class from experemental folder.
Now there are 2 printers: decl_printer_t and decl_wrapper_printer_t
Index: __init__.py
===================================================================
RCS file: /cvsroot/pygccxml/source/pyplusplus/decl_wrappers/__init__.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** __init__.py 28 Feb 2006 07:31:33 -0000 1.1
--- __init__.py 6 Mar 2006 05:00:33 -0000 1.2
***************
*** 4,13 ****
# http://www.boost.org/LICENSE_1_0.txt)
! import calldef_wrapper
! import class_wrapper
! import enumeration_wrapper
! import namespace_wrapper
! import typedef_wrapper
! import variable_wrapper
from pygccxml import declarations
--- 4,32 ----
# http://www.boost.org/LICENSE_1_0.txt)
! from decl_wrapper import decl_wrapper_t
!
! from calldef_wrapper import calldef_t
! from calldef_wrapper import member_function_t
! from calldef_wrapper import constructor_t
! from calldef_wrapper import destructor_t
! from calldef_wrapper import member_operator_t
! from calldef_wrapper import casting_operator_t
! from calldef_wrapper import free_function_t
! from calldef_wrapper import free_operator_t
!
! from class_wrapper import class_declaration_t
! from class_wrapper import class_t
!
! from enumeration_wrapper import enumeration_t
!
! from namespace_wrapper import namespace_t
!
! from typedef_wrapper import typedef_t
!
! from variable_wrapper import variable_t
!
! from scopedef_wrapper import scopedef_t
!
!
from pygccxml import declarations
***************
*** 33,36 ****
--- 52,60 ----
from call_policies import return_value_policy
+ from decl_wrapper_printer import decl_wrapper_printer_t
+ from decl_wrapper_printer import print_declarations
+
+ from mdecl_wrapper import mdecl_wrapper_t
+
class dwfactory_t( declarations.decl_factory_t ):
"""
***************
*** 41,80 ****
def create_member_function( self, *arguments, **keywords ):
! return calldef_wrapper.member_function_t(*arguments, **keywords)
def create_constructor( self, *arguments, **keywords ):
! return calldef_wrapper.constructor_t(*arguments, **keywords)
def create_destructor( self, *arguments, **keywords ):
! return calldef_wrapper.destructor_t(*arguments, **keywords)
def create_member_operator( self, *arguments, **keywords ):
! return calldef_wrapper.member_operator_t(*arguments, **keywords)
def create_casting_operator( self, *arguments, **keywords ):
! return calldef_wrapper.casting_operator_t(*arguments, **keywords)
def create_free_function( self, *arguments, **keywords ):
! return calldef_wrapper.free_function_t(*arguments, **keywords)
def create_free_operator( self, *arguments, **keywords ):
! return calldef_wrapper.free_operator_t(*arguments, **keywords)
def create_class_declaration(self, *arguments, **keywords ):
! return class_wrapper.class_declaration_t(*arguments, **keywords)
def create_class( self, *arguments, **keywords ):
! return class_wrapper.class_t(*arguments, **keywords)
def create_enumeration( self, *arguments, **keywords ):
! return enumeration_wrapper.enumeration_t(*arguments, **keywords)
def create_namespace( self, *arguments, **keywords ):
! return namespace_wrapper.namespace_t(*arguments, **keywords)
def create_typedef( self, *arguments, **keywords ):
! return typedef_wrapper.typedef_t(*arguments, **keywords)
def create_variable( self, *arguments, **keywords ):
! return variable_wrapper.variable_t(*arguments, **keywords)
--- 65,104 ----
def create_member_function( self, *arguments, **keywords ):
! return member_function_t(*arguments, **keywords)
def create_constructor( self, *arguments, **keywords ):
! return constructor_t(*arguments, **keywords)
def create_destructor( self, *arguments, **keywords ):
! return destructor_t(*arguments, **keywords)
def create_member_operator( self, *arguments, **keywords ):
! return member_operator_t(*arguments, **keywords)
def create_casting_operator( self, *arguments, **keywords ):
! return casting_operator_t(*arguments, **keywords)
def create_free_function( self, *arguments, **keywords ):
! return free_function_t(*arguments, **keywords)
def create_free_operator( self, *arguments, **keywords ):
! return free_operator_t(*arguments, **keywords)
def create_class_declaration(self, *arguments, **keywords ):
! return class_declaration_t(*arguments, **keywords)
def create_class( self, *arguments, **keywords ):
! return class_t(*arguments, **keywords)
def create_enumeration( self, *arguments, **keywords ):
! return enumeration_t(*arguments, **keywords)
def create_namespace( self, *arguments, **keywords ):
! return namespace_t(*arguments, **keywords)
def create_typedef( self, *arguments, **keywords ):
! return typedef_t(*arguments, **keywords)
def create_variable( self, *arguments, **keywords ):
! return variable_t(*arguments, **keywords)
--- NEW FILE: decl_wrapper_printer.py ---
# Copyright 2004 Roman Yakovenko, 2006 Allen Bierbaum, Matthias Baas
# Distributed under the Boost Software License, Version 1.0. (See
# accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
import os
import sys
from pygccxml import declarations
class decl_wrapper_printer_t( declarations.decl_printer_t ):
""" Helper class for printing decl tree. """
JUSTIFY = 20
INDENT_SIZE = 4
def __init__( self, level=0, print_details=True, recursive=True, writer=None ):
declarations.decl_printer_t.__init__(self, level, print_details, recursive, writer)
def clone( self, increment_level=True ):
level = self.level
if increment_level:
level += 1
return decl_wrapper_printer_t(level, self.print_details, self.recursive, self.writer)
def print_decl_header(self):
super( decl_wrapper_printer_t, self ).print_decl_header()
if not self.print_details:
return
self.writer( ' ' * (self.level+1) * self.INDENT_SIZE
+ "Alias: " + self.instance.alias + os.linesep )
self.writer( ' ' * (self.level+1) * self.INDENT_SIZE
+ "Ignore: " + str( self.instance.ignore ) + os.linesep )
def print_calldef_wrapper(self):
if not self.print_details:
return
self.writer( ' ' * (self.level+1) * self.INDENT_SIZE
+ "Call policies: " + str(self.instance.call_policies) + os.linesep )
self.writer( ' ' * (self.level+1) * self.INDENT_SIZE
+ "Use keywords: " + str(self.instance.use_keywords) + os.linesep )
self.writer( ' ' * (self.level+1) * self.INDENT_SIZE
+ "Use signature: " + str(self.instance.create_with_signature) + os.linesep )
self.writer( ' ' * (self.level+1) * self.INDENT_SIZE
+ "Use default arguments: " + str(self.instance.use_default_arguments) + os.linesep )
def visit_member_function( self ):
super( decl_wrapper_printer_t, self ).visit_member_function()
self.print_calldef_wrapper()
def visit_constructor( self ):
super( decl_wrapper_printer_t, self ).visit_constructor()
self.print_calldef_wrapper()
def visit_destructor( self ):
super( decl_wrapper_printer_t, self ).visit_destructor()
self.print_calldef_wrapper()
def visit_member_operator( self ):
super( decl_wrapper_printer_t, self ).visit_member_operator()
self.print_calldef_wrapper()
def visit_casting_operator( self ):
super( decl_wrapper_printer_t, self ).visit_casting_operator()
self.print_calldef_wrapper()
def visit_free_function( self ):
super( decl_wrapper_printer_t, self ).visit_free_function()
self.print_calldef_wrapper()
def visit_free_operator( self ):
super( decl_wrapper_printer_t, self ).visit_free_operator()
self.print_calldef_wrapper()
def visit_class_declaration(self ):
super( decl_wrapper_printer_t, self ).visit_class_declaration()
def visit_class(self ):
super( decl_wrapper_printer_t, self ).visit_class()
self.writer( ' ' * (self.level+1) * self.INDENT_SIZE
+ "Expose using scope: " + str(self.instance.always_expose_using_scope) + os.linesep )
self.writer( ' ' * (self.level+1) * self.INDENT_SIZE
+ "Redefine operators: " + str(self.instance.redefine_operators) + os.linesep )
self.writer( ' ' * (self.level+1) * self.INDENT_SIZE
+ "Held type: " + str(self.instance.held_type) + os.linesep )
self.writer( ' ' * (self.level+1) * self.INDENT_SIZE
+ "Use noncopyable: " + str(self.instance.noncopyable) + os.linesep )
self.writer( ' ' * (self.level+1) * self.INDENT_SIZE
+ "Class wrapper alias: " + str(self.instance.wrapper_alias) + os.linesep )
def visit_enumeration(self):
super( decl_wrapper_printer_t, self ).visit_enumeration()
self.writer( ' ' * (self.level+1) * self.INDENT_SIZE
+ "Enumeration value aliases: " + str(self.instance.value_aliases) + os.linesep )
self.writer( ' ' * (self.level+1) * self.INDENT_SIZE
+ "Enumeration export values: " + str(self.instance.export_values) + os.linesep )
def visit_namespace(self ):
super( decl_wrapper_printer_t, self ).visit_namespace()
def visit_typedef(self ):
super( decl_wrapper_printer_t, self ).visit_typedef()
def visit_variable(self ):
super( decl_wrapper_printer_t, self ).visit_variable()
def print_declarations( decls, detailed=True, recursive=True, writer=sys.stdout.write ):
""" Print decl tree rooted at each of the included nodes.
decls - either a single decl or a list of decls.
"""
prn = decl_wrapper_printer_t(0, detailed, recursive, writer)
if type(decls) is not list:
decls = [decls]
for d in decls:
prn.level = 0
prn.instance = d
declarations.apply_visitor(prn, d)
|