Comments and file header added.
[libfirm] / scripts / gen_ir_io.py
index 2cc4d3e..781ee46 100755 (executable)
@@ -26,9 +26,9 @@ def format_ifnset(string, node, key):
 
 def format_block(node):
        if hasattr(node, "knownBlock"):
-               return ""
+               return "current_ir_graph"
        else:
-               return "get_node(env, preds[0])"
+               return "get_node(env, preds[0])"
 
 env = Environment()
 env.filters['args']   = format_args
@@ -79,6 +79,9 @@ def get_io_type(type, attrname, node):
        elif type == "int":
                importcmd = "int %s = (int) read_long(env);" % attrname
                exportcmd = """fprintf(env->file, "%%d ", %(val)s);"""
+       elif type == "unsigned":
+               importcmd = "unsigned %s = (unsigned) read_long(env);" % attrname
+               exportcmd = """fprintf(env->file, "%%u ", %(val)s);"""
        elif type == "long":
                importcmd = "long %s = read_long(env);" % attrname
                exportcmd = """fprintf(env->file, "%%ld ", %(val)s);"""
@@ -187,9 +190,9 @@ import_attrs_template = env.from_string('''
                {% for attr in node.constructor_args %}{{attr.importcmd}}
                {% endfor %}
                {% for special in node.special_constructors %}if({{special.attrname}} == {{special.value}})
-                       newnode = new_r_{{special.constrname}}(current_ir_graph{{node|block}}{{node.arguments|args}});
+                       newnode = new_r_{{special.constrname}}({{node|block}}{{node.arguments|args}});
                else{% endfor %}
-               newnode = new_r_{{node.name}}(current_ir_graph{{node|block}}{{node.arguments|args}});
+               newnode = new_r_{{node.name}}({{node|block}}{{node.arguments|args}});
                {% for (initarg, initfunc) in node.initargs %}{{initfunc}}(newnode, {{initarg}});
                {% endfor %}
                break;