def generate_source(self, commspec, targets): self.cs = commspec self._annotate_messages() return [ self._generate_data(), self._generate_core(), SourceFile('Cobs.hs', self.expand_template('Cobs.hs')), SourceFile('Bitvec.hs', self.expand_template('Bitvec.hs')), ]
def _generate_core(self): src = self.expand_template( 'haskell_core.jinja2', { 'messages': self.cs.messages, 'enumerations': self.cs.enums, 'msg_name_list': _gen_msg_name_list(self.cs.messages) }) return SourceFile('XBVC.hs', src)
def _generate_encoder_decoder(self): content = self.expand_template( 'c_interface.jinja2', { 'msgs': self.all_msgs, 'dec_msgs': self.dec_msgs, 'enc_msgs': self.enc_msgs }) return SourceFile('xbvc_core.c', content)
def _generate_header_file(self): # message ids protos = [ self._generate_handler_prototype(x.name) for x in self.dec_msgs ] header_vars = { 'enumerations': self.cs.enums, 'prototypes': protos, 'msgs': self.all_msgs, } header_content = self.expand_template('c_header.jinja2', header_vars) return SourceFile('xbvc_core.h', header_content)
def _generate_interface(self): src = self.expand_template('nim_interface.jinja2', { 'messages': self.cs.messages, 'enumerations': self.cs.enums }) return SourceFile('xbvc.nim', src)
def _generate_interface(self): src = self.expand_template('py_interface.jinja2', {'messages': self.cs.messages}) return SourceFile('xbvc_py.py', src)
def _retrieve_cobs(self): return SourceFile('cobs.py', self.expand_template('cobs.py'))
def _generate_data(self): src = self.expand_template('haskell_data.jinja2', { 'messages': self.cs.messages, 'enumerations': self.cs.enums }) return SourceFile('Data.hs', src)
def _retrieve_cobs_files(self): header = SourceFile('cobs.h', self.expand_template('cobs.h')) src = SourceFile('cobs.c', self.expand_template('cobs.c')) return [header, src]