code: def parse_line(self, line):
          
  
          # Skip blanks
          if line == '':
              return
  
          # Skip comments
          if regex_comment.search(line):
              return
  
          # Special case / header: parse global parameters into metadata
          global_parameters = regex_global.search(line)
          if global_parameters:
              self.parse_global_meta(global_parameters.group('parameters'))
              return
  
          # Tries to check the validity of the line.
          crtf_line = regex_line.search(line)
          if crtf_line:
              # Tries to parse the line.
  
              # Finds info about the region.
              region = regex_region.search(crtf_line.group('region'))
              type_ = region.group('type') or 'reg'
              include = region.group('include') or '+'
              region_type = region.group('regiontype').lower()
              if region_type in self.valid_definition:
                  helper = CRTFRegionParser(self.global_meta, include, type_, region_type,
                                            *crtf_line.group('region', 'parameters'))
                  self.shapes.append(helper.shape)
              else:
                  self._raise_error("Not a valid CRTF Region type: '{0}'.".format(region_type))
  
          else:
              self._raise_error("Not a valid CRTF line: '{0}'.".format(line))
              return
docs: Parses a single line.