Quellcode durchsuchen

Added the possibility to prepend a name in the bootstrap visitor

Yentl Van Tendeloo vor 8 Jahren
Ursprung
Commit
b054abd40c
1 geänderte Dateien mit 15 neuen und 7 gelöschten Zeilen
  1. 15 7
      interface/HUTN/hutn_compiler/bootstrap_visitor.py

+ 15 - 7
interface/HUTN/hutn_compiler/bootstrap_visitor.py

@@ -5,6 +5,14 @@ class BootstrapVisitor(PrimitivesVisitor):
     def __init__(self, args):
         PrimitivesVisitor.__init__(self, args)
 
+        for f in args:
+            if "--prepend:" in f:
+                self.prepend_name = f.split(":", 1)[1]
+                break
+        else:
+            self.prepend_name = "auto"
+
+
     def dump(self):
         link_id = 0
         call = self.value(Action("call"))
@@ -19,18 +27,18 @@ class BootstrapVisitor(PrimitivesVisitor):
         output = []
         for t, data in self.output:
             if t == "N":
-                output.append("Node auto_%s()\n" % data)
+                output.append("Node %s_%s()\n" % (self.prepend_name, data))
             elif t == "V":
                 name, value = data
                 name = name if self.first != name else "initial_IP"
-                output.append("Node auto_%s(%s)\n" % (name, value))
+                output.append("Node %s_%s(%s)\n" % (self.prepend_name, name, value))
             elif t == "D":
                 source, value, target = data
                 source = source if self.first != source else "auto_initial_IP"
                 target = target if self.first != target else "auto_initial_IP"
 
-                source = "auto_%s" % source if isinstance(source, int) else source
-                target = "auto_%s" % target if isinstance(target, int) else target
+                source = "%s_%s" % (self.prepend_name, source if isinstance(source, int) else source)
+                target = "%s_%s" % (self.prepend_name, target if isinstance(target, int) else target)
                 # output.append("D %s,%s,%s\n" % (source, value, target))
                 linkname = "%s_%s_%s" % (source, link_id, target)
                 link_id += 1
@@ -41,8 +49,8 @@ class BootstrapVisitor(PrimitivesVisitor):
                 name, source, target = data
                 source = source if self.first != source else "auto_initial_IP"
                 target = target if self.first != target else "auto_initial_IP"
-                name = "auto_%s" % name if isinstance(name, int) else name
-                source = "auto_%s" % source if isinstance(source, int) else source
-                target = "auto_%s" % target if isinstance(target, int) else target
+                name = "%s_%s" % (self.prepend_name, name if isinstance(name, int) else name)
+                source = "%s_%s" % (self.prepend_name, source if isinstance(source, int) else source)
+                target = "%s_%s" % (self.prepend_name, target if isinstance(target, int) else target)
                 output.append("Edge _%s(_%s, _%s)\n" % (name, source, target))
         return ''.join(output)