예제 #1
0
 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
예제 #2
0
 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))