code: def get_point_rules(declarations, dirs):
      
      property_map = {'point-file': 'file', 'point-width': 'width',
                      'point-height': 'height', 'point-type': 'type',
                      'point-allow-overlap': 'allow_overlap',
                      'point-meta-output': 'meta-output', 'point-meta-writer': 'meta-writer'}
      
      property_names = property_map.keys()
      
      # a place to put rules
      rules = []
      
      for (filter, values) in filtered_property_declarations(declarations, property_names):
          point_file, point_type, point_width, point_height \
              = values.has_key('point-file') \
              and post_process_symbolizer_image_file(str(values['point-file'].value), dirs) \
              or (None, None, None, None)
          
          point_width = values.has_key('point-width') and values['point-width'].value or point_width
          point_height = values.has_key('point-height') and values['point-height'].value or point_height
          point_allow_overlap = values.has_key('point-allow-overlap') and values['point-allow-overlap'].value or None
          
          symbolizer = point_file and output.PointSymbolizer(point_file, point_type, point_width, point_height, point_allow_overlap)
  
          if symbolizer:
              rules.append(make_rule(filter, symbolizer))
      
      return rules
docs: Given a list of declarations, return a list of output.Rule objects.
          
          Optionally provide an output directory for local copies of image files.