def cmd_section(self, c):
     filename = str(c.params[0]).lower().replace(' ', '_').replace('/', '_')
     if len(self.cur_module) > 0:
         filename = self.cur_module + "_" + filename
     if not self.chapter_intoc:
         self.chapter_intoc = True
         print >> self.f_chapter
         print >> self.f_chapter, '.. toctree::'
         print >> self.f_chapter, '    :maxdepth: 2'
         print >> self.f_chapter
     self.f_chapter.write("    %s\n" % filename)
     self.f_section = QOpen(os.path.join(self.language, filename + '.rst'),
                            'wt')
     self.f = self.f_section
     self.indent = 0
     title = self.render(c.params[0].str)
     print >> self, title
     print >> self, '=' * len(title)
     print >> self
     print >> self, '.. highlight:: %s' % {
         'c': 'c',
         'cpp': 'cpp',
         'py': 'python'
     }[self.language]
     print >> self
Example #2
0
 def cmd_chapter(self, c):
     filename = str(c.params[0]).lower().replace(' ', '_').replace('/', '_')
     self.f_index.write("    %s\n" % filename)
     self.f_chapter = QOpen(os.path.join(self.language, filename + '.rst'),
                            'wt')
     self.f_section = None
     self.f = self.f_chapter
     self.indent = 0
     title = str(c.params[0])
     print >> self, '*' * len(title)
     print >> self, title
     print >> self, '*' * len(title)
     print >> self
     self.chapter_intoc = False
Example #3
0
    def __init__(self, filename, language, abspath):
        assert language in ['py', 'c', 'cpp']
        self.language = language

        self.abspath = abspath
        os.path.abspath(os.path.dirname(filename))

        self.f_index = QOpen(os.path.join(self.language, filename), 'wt')
        self.f = self.f_index
        self.f_chapter = None
        self.f_section = None
        self.indent = 0
        self.state = None
        self.envstack = []
        self.tags = {}
        self.errors = open('errors.%s' % language, 'wt')
        self.unhandled_commands = set()
        self.freshline = True
        self.function_props = {}
        self.covered = set()  # covered functions, used for error report
        self.description = ""
Example #4
0
def parseBib(filename, language):
    pp.ParserElement.setDefaultWhitespaceChars(" \n\t")
    entry = returnList(
        pp.Word('@', pp.alphanums) + sl('{') + pp.Word(pp.alphanums + "_") +
        sl(',') + CommaList(
            returnTuple(
                pp.Word(pp.alphanums) + sl('=') +
                pp.QuotedString('{', endQuoteChar='}'))) +
        pp.Suppress(pp.Optional(',')) + sl('}'))
    r = (pp.ZeroOrMore(entry)
         | pp.Suppress('#' + pp.ZeroOrMore(pp.CharsNotIn('\n'))) +
         pp.StringEnd()).parseFile(filename)

    bibliography = QOpen(os.path.join(language, "bibliography.rst"), 'wt')
    print >> bibliography, "Bibliography"
    print >> bibliography, "============"
    print >> bibliography

    for _, e in sorted([(str(x[1]), x) for x in r]):
        (etype, tag, attrs) = str(e[0][1:]), str(e[1]), dict([
            (str(a), str(b)) for (a, b) in e[2]
        ])

        representations = {
            'article':
            '$author, "$title". $journal $volume $number, pp $pages ($year)',
            'inproceedings': '$author "$title", $booktitle, $year',
            'misc': '$author "$title", $year',
            'techreport': '$author "$title", $edition, $edition ($year)',
        }
        if etype in representations:
            if 0:
                print >> bibliography, tag
                print >> bibliography, "^" * len(tag)
                print >> bibliography

            print >> bibliography, ".. [%s] %s" % (
                tag, Template(representations[etype]).safe_substitute(attrs))
            print >> bibliography
    bibliography.close()