C++程序  |  52行  |  1.23 KB

//===- ScriptReader.h -----------------------------------------------------===//
//
//                     The MCLinker Project
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef MCLD_SCRIPT_SCRIPTREADER_H_
#define MCLD_SCRIPT_SCRIPTREADER_H_

#include "mcld/LD/LDReader.h"

namespace mcld {

class ArchiveReader;
class DynObjReader;
class GroupReader;
class Input;
class LinkerConfig;
class LinkerScript;
class Module;
class ObjectReader;
class ScriptFile;
class TargetLDBackend;

class ScriptReader : public LDReader {
 public:
  ScriptReader(ObjectReader& pObjectReader,
               ArchiveReader& pArchiveReader,
               DynObjReader& pDynObjReader,
               GroupReader& pGroupReader);

  ~ScriptReader();

  /// readScript
  bool readScript(const LinkerConfig& pConfig, ScriptFile& pScriptFile);

  /// isMyFormat
  bool isMyFormat(Input& pInput, bool& pContinue) const;

 private:
  ObjectReader& m_ObjectReader;
  ArchiveReader& m_ArchiveReader;
  DynObjReader& m_DynObjReader;
  GroupReader& m_GroupReader;
};

}  // namespace mcld

#endif  // MCLD_SCRIPT_SCRIPTREADER_H_