Beispiel #1
0
 def to_dot(self, external_name = None, hierarchical = False, subgraph = False):
   if not external_name:
     external_name = "trivial"
   
   def header():
     return "digraph " + external_name + "{\n  rankdir=LR;\n"
       
   def ender():
     return "}"
   
   pattern = """  %s [shape=Mrecord, label="%s"];\n"""
   inputs = " | ".join(ports_dot(self.inputs))
   outputs = " | ".join(ports_dot(self.outputs))
   ports_l = " | ".join((["{%s}" % inputs] if inputs else []) + (["{%s}" % outputs] if outputs else [])) 
   label = "%s | {%s}" % (external_name, ports_l)
   if subgraph:
     return pattern % (external_name, label)
   else:
     return header() + pattern % (external_name, label) + ender()
Beispiel #2
0
 def to_dot(self, external_name, hierarchical = False, subgraph = False):
   pattern = """  {rank = %s; %s [shape=Mrecord, label="%s"];}\n"""
   label = "|".join(ports_dot(self._inputs))
   return pattern % ("sink", external_name, label)