code: def parse_line(self, line):
          
          log.debug('Parsing {}'.format(line))
  
          # Skip blanks
          if line == '':
              return
  
          # Skip comments
          if line[0] == '#':
              return
  
          # Special case / header: parse global parameters into metadata
          if line.lstrip()[:6] == 'global':
              self.global_meta = self.parse_meta(line)
              # global_meta can specify "include=1"; never seen other options
              # used but presumably =0 means false
              self.global_meta['include'] = (False if
                                             self.global_meta.get('include') in
                                             ('0', 'False', False) else True)
              return
  
          # Try to parse the line
          region_type_search = regex_global.search(line)
          if region_type_search:
              include = region_type_search.groups()[0]
              region_type = region_type_search.groups()[1]
          else:
              self._raise_error("No region type found for line '{0}'.".format(line))
              return
  
          if region_type in self.coordinate_systems:
              # Found coord system definition
              self.set_coordsys(region_type)
              return
          if region_type not in DS9RegionParser.language_spec:
              self._raise_error("Region type '{0}' was identified, but it is not one of "
                                "the known region types.".format(region_type))
              return
          else:
              # Found region specification,
              region_end = region_type_search.span()[1]
              self.parse_region(include, region_type, region_end, line)
docs: Parse one line