def _include(self, name): """Include given filename. The Forth code is directly executed.""" # put all data from include in one chapter. remember previous chapter # at restore it at the end self.doctree.push_state() self.doctree.chapter(name) if name not in self.included_files: for prefix in self.include_path: path = os.path.join(prefix, name) if os.path.exists(path): self.logger.info('processing include %s' % (name,)) self.interpret(rpn.words_in_file(name)) self.logger.info('done include %s' % (name,)) self.included_files.append(name) break else: # as fallback, check internal library too try: data = pkgutil.get_data('msp430.asm', 'forth/%s' % (name,)) except IOError: raise ValueError('file not found: %s' % (name,)) else: self.logger.info('processing include %s' % (name,)) self.interpret(rpn.words_in_string(data, name='forth/%s' % (name,), include_newline=True)) self.logger.info('done include %s' % (name,)) self.included_files.append(name) self.doctree.pop_state() # restore previous chapter and section
def _include(self, name): """Include given filename. The Forth code is directly executed.""" # put all data from include in one chapter. remember previous chapter # at restore it at the end self.doctree.push_state() self.doctree.chapter(name) if name not in self.included_files: for prefix in self.include_path: path = os.path.join(prefix, name) if os.path.exists(path): self.logger.info('processing include %s' % (name, )) self.interpret(rpn.words_in_file(name)) self.logger.info('done include %s' % (name, )) self.included_files.append(name) break else: # as fallback, check internal library too try: data = pkgutil.get_data('msp430.asm', 'forth/%s' % (name, )) except IOError: raise ValueError('file not found: %s' % (name, )) else: self.logger.info('processing include %s' % (name, )) self.interpret( rpn.words_in_string(data, name='forth/%s' % (name, ), include_newline=True)) self.logger.info('done include %s' % (name, )) self.included_files.append(name) self.doctree.pop_state() # restore previous chapter and section
def load_internal(name): """\ Load symbols from internal definition given name. """ data = pkgutil.get_data( 'msp430.asm', 'definitions/{}.peripheral'.format(name)).decode('utf-8') return parse_words(rpn.words_in_string(data))
def word_INCLUDE(self, stack): """Include definitions from an other file.""" name = self.next_word() if name not in self.included_files: self.included_files.append(name) #~ print "XXX including %r" % name # XXX currently only internal imports are supported data = pkgutil.get_data('msp430.asm', 'definitions/%s.peripheral' % (name,)) self.interpret(rpn.words_in_string(data, name='definitions/%s.peripheral' % (name,)))
def load_internal(name): """\ Load symbols from internal definition given name. """ data = pkgutil.get_data('msp430.asm', 'definitions/%s.peripheral' % (name,)) return parse_words(rpn.words_in_string(data))