]> git.tdb.fi Git - libs/gl.git/blob - blender/io_mspgl/datafile.py
Redesign file writing in the Blender exporter
[libs/gl.git] / blender / io_mspgl / datafile.py
1 class Statement:
2         def __init__(self, keyword, *args):
3                 self.keyword = keyword
4                 self.args = list(args)
5                 self.sub = []
6
7         def append(self, v):
8                 self.args.append(v)
9
10         def write_to_file(self, f, indent=0):
11                 s = self.keyword
12                 for a in self.args:
13                         if type(a)==float:
14                                 s += " {:#.6g}".format(a)
15                         elif type(a)==str:
16                                 s += ' "{}"'.format(a)
17                         else:
18                                 s += " {}".format(a)
19
20                 tabs = '\t'*indent
21                 f.write("{}{}".format(tabs, s))
22                 if self.sub:
23                         f.write("\n{}{{\n".format(tabs))
24                         for s in self.sub:
25                                 s.write_to_file(f, indent+1)
26                         f.write("{}}};\n".format(tabs))
27                 else:
28                         f.write(";\n")
29
30 class Token:
31         def __init__(self, text):
32                 self.text = text
33
34         def __str__(self):
35                 return self.text