code: def base_type(self, type):
          
          while 1:
              if type.arg == "leafref":
                  node = type.i_type_spec.i_target_node
              elif type.i_typedef is None:
                  break
              else:
                  node = type.i_typedef
              type = node.search_one("type")
          if type.arg == "decimal64":
              return [type.arg, int(type.search_one("fraction-digits").arg)]
          elif type.arg == "union":
              return [type.arg, [self.base_type(x) for x in type.i_type_spec.types]]
          else:
              return type.arg
docs: Return the base type of `type`.