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
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
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 = ""
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()