Skip to content
Snippets Groups Projects

Update cooling with Grackle3

Merged Loic Hausammann requested to merge init into master
3 files
+ 179
16
Compare changes
  • Side-by-side
  • Inline
Files
3
pyswiftsim/dev.py 0 → 100644
+ 69
0
#!/usr/bin/env python3
symbol_table = {
" int ": "i",
" double ": "d",
" char ": "c",
}
def _generateFormatString(filename):
"""
Open a file containing a single struct and generate a format string
from it. (for dev, no guarantee of working).
"""
struct_format = ""
struct_attribute = []
with open(filename, "r") as f:
line = ""
# skip until reaching struct
while ("struct" not in line):
line = f.readline()
count = 0
in_struct = False
while (not in_struct or count != 0):
# count { and }
count += line.count("{")
if (count > 0):
in_struct = True
count -= line.count("}")
line = f.readline()
for k in symbol_table.keys():
if k not in line:
continue
i = line.index(k) + len(k)
if (line[i] == "*"):
struct_format += "p"
i += 1
else:
struct_format += symbol_table[k]
j = line.index(";")
struct_attribute.append(line[i:j])
return struct_format, struct_attribute
if __name__ == "__main__":
filename = "chemistry_data.h"
struct_format, struct_attribute = _generateFormatString(filename)
attr = "[\n"
for i in struct_attribute:
attr += "\t'%s',\n" % i
attr += "]"
txt = """
_format = "{form}"
_name = {attr}
""".format(attr=attr,
form=struct_format)
print(txt)
Loading