parameters: (self, first, second, orientation=0)
docstring: Add edge from first to second. Also add edge from second to first if orientation
          is null.
docstring_summary: Add edge from first to second. Also add edge from second to first if orientation
          is null.
docstring_tokens: Add edge from first to second . Also add edge from second to first if orientation is null .
function: def add_edge(self, first, second, orientation=0):
          '''
          Add edge from first to second. Also add edge from second to first if orientation
          is null.
          '''
          assert(first in self.children and second in self.children)
          if orientation >= 0:
              self.children[first].append(second)
          if orientation <= 0:
              self.children[second].append(first)
function_tokens: def add_edge ( self , first , second , orientation = 0 ) : assert ( first in self . children and second in self . children ) if orientation >= 0 : self . children [ first ] . append ( second ) if orientation <= 0 : self . children [ second ] . append ( first )