input: Write a python function to generate a list of file names based on given rules.
  assert generate_file_list(RuleSimpleFile.RuleSimpleFile("example_filename")) == ["example_filename"]
  assert generate_file_list(RuleComplexFile.RuleComplexFile([Section.Section("PE32", "example_filename")])) == ["example_filename"]
  assert generate_file_list(RuleSimpleFile.RuleSimpleFile(None, "ext")) == ["file1.ext", "file2.ext"]  # Assuming Section.Section.GetFileList() returns ["file1.ext", "file2.ext"] for the given extension
output: def generate_file_list(rule):
      if isinstance(rule, RuleSimpleFile.RuleSimpleFile):
          if rule.filename:
              return [rule.filename]
          elif rule.extension:
              return Section.Section.GetFileList(rule.extension)
      elif isinstance(rule, RuleComplexFile.RuleComplexFile):
          return [section.filename for section in rule.sections]
      return []