Ejemplo n.º 1
0
    def __init__(self, code_sink):
        super(_MonolithicSinkManager, self).__init__()
        self.final_code_sink = code_sink
        self.null_sink = NullCodeSink()
        self.includes = MemoryCodeSink()
        self.code_sink = MemoryCodeSink()

        utils.write_preamble(code_sink)
Ejemplo n.º 2
0
 def generate_declaration(self, code_sink):
     self.reset_code_generation_state()
     self._compute_all_wrappers()
     self.generate(NullCodeSink())
     assert isinstance(self.wrapper_return, string_types)
     assert isinstance(self.wrapper_actual_name, string_types)
     assert isinstance(self.wrapper_args, list)
     code_sink.writeln("%s %s(%s);" % (self.wrapper_return, self.wrapper_actual_name, ', '.join(self.wrapper_args)))
     self.reset_code_generation_state()
Ejemplo n.º 3
0
    def generate_class_declaration(self, code_sink):
        self.reset_code_generation_state()
        self._compute_all_wrappers()
        self.generate(NullCodeSink())
        assert isinstance(self.wrapper_return, string_types)
        assert isinstance(self.wrapper_actual_name, string_types)
        assert isinstance(self.wrapper_args, list)
        name = self.wrapper_actual_name.split('::')[-1]
        code_sink.writeln("static %s %s(%s);" % (self.wrapper_return, name, ', '.join(self.wrapper_args)))

        if len(self.all_wrappers) > 1:
            for wrapper in self.all_wrappers:
                name = wrapper.wrapper_actual_name.split('::')[-1]
                code_sink.writeln("static %s %s(%s);" % (wrapper.wrapper_return, name, ', '.join(wrapper.wrapper_args)))

        self.reset_code_generation_state()