#!/usr/bin/python """Reads in a Matlab/Octave line of the following form: function [out1,out2,...] = function_name(input1,input2,...) And outputs skeleton comments for documentation.""" import fileinput, re, time txt=fileinput.input()[0] mobj=re.match(r'function \[?([^[\]=]*)[^(]*\(([^)]*).*',txt) outstr=mobj.group(1) instr=mobj.group(2) outputs=re.split(',',outstr) inputs=re.split(',',instr) # Format considering maximum length of any input or output argument maxlen=max([max(map(len,l)) for l in outputs, inputs]) outformat = '%%%% %%%ds ?x? ' % maxlen print '%', txt, print '%' print '% Function to...' print '%' print '% Inputs:' for input in inputs: print outformat % input print '%' print '% Outputs:' for output in outputs: print outformat % output print print '% Iain Murray,', time.strftime('%B %Y',time.localtime())