#!/usr/bin/python import sys import re myfile = open(sys.argv[1],'r') alltt = 0 linenum = 0 for line in myfile.readlines(): mtch = re.search(r' *?/\*(.*?)\n',line) if mtch == None and linenum == 0: print '\\begin{alltt}' alltt = 1 # do short /// comments line = re.sub(r'(.*?)/// *(.*?)\n',r'\1BEGMBOX\2ENDMBOX\n',line) # do short (one-line) /** */ comments line = re.sub(r'(.*?)/\*\* *?(.*?) *?\*/(.*?)\n',r'\1BEGMBOX\2ENDMBOX\3\n',line) # do begin long comment (drop spaces before "/*") mtch = re.search(r'^ *?/\*\*(.*?)\n',line) if mtch: if alltt == 1: line = re.sub(r'^ *?/\*\*(.*?)\n',r'ENDTT\n\1\n',line) alltt = 0 # do end long comment (drop characters after "*/") mtch = re.search(r'^(.*?)\*/ *?\n',line) if mtch: if alltt == 0: line = re.sub(r'^(.*?)\*/ *?\n',r'\1\nBEGTT',line) alltt = 1 # replace {, }, \ with escaped versions if alltt == 1: line = re.sub(r'\\',r'\\\\',line); line = re.sub(r'{',r'\\{',line); line = re.sub(r'}',r'\\}',line); line = re.sub(r'BEGTT',r'\\begin{alltt}',line) line = re.sub(r'ENDTT',r'\\end{alltt}',line) line = re.sub(r'BEGMBOX',r'\\mbox{\\textsf{',line) line = re.sub(r'ENDMBOX',r'}}',line) print line, linenum = linenum + 1 if alltt == 1: print '\\end{alltt}' myfile.close()