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 6import os 7from . import code_creator 8 9class instruction_t(code_creator.code_creator_t): 10 """ 11 This class is used as a base class for different instruction for code creators. 12 """ 13 #TODO: add silent option and make it default 14 def __init__(self, silent=True): 15 code_creator.code_creator_t.__init__(self) 16 self._silent = silent 17 18 def get_silent(self): 19 return self._silent 20 21 def set_silent(self, silent ): 22 self._silent = silent 23 24 silent = property( get_silent, set_silent 25 , doc="""silent property controls, whether instruction 26 should be written within generated code or not. 27 Default value is True - not written.""" ) 28 29 def _create_impl(self): 30 if self.silent: 31 return '' 32 answer = [] 33 for line in self._generate_description().split( os.linesep ): 34 answer.append( '// %s' % line ) 35 return os.linesep.join( answer ) 36 37 def _generate_description(self): 38 raise NotImplementedError() 39 40 def _get_system_files_impl( self ): 41 return [] 42