--- /dev/null
+import sys
+
+class OutFile:
+ def __init__(self, fn):
+ self.filename = fn
+ if fn==None:
+ self.file = sys.stdout
+ else:
+ self.file = open(fn, "w")
+ self.indent = 0
+
+ def make(self, kwd, *params):
+ pstr = ""
+ for p in params:
+ if type(p)==float:
+ pstr += " %#.6g"%p
+ else:
+ pstr += " %s"%p
+ return "%s%s"%(kwd, pstr)
+
+ def write(self, kwd, *params):
+ self.file.write("%s%s;\n"%('\t'*self.indent, self.make(kwd, *params)))
+
+ def begin(self, kwd, *params):
+ i = '\t'*self.indent
+ self.file.write("%s%s\n%s{\n"%(i, self.make(kwd, *params), i))
+ self.indent += 1
+
+ def end(self):
+ self.indent -= 1
+ self.file.write("%s};\n"%('\t'*self.indent))
+
+
+def open_output(f):
+ if isinstance(f, OutFile):
+ return f
+ return OutFile(f)