1//===- ScriptReader.h -----------------------------------------------------===//
2//
3//                     The MCLinker Project
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9#ifndef MCLD_SCRIPT_SCRIPTREADER_H_
10#define MCLD_SCRIPT_SCRIPTREADER_H_
11
12#include "mcld/LD/LDReader.h"
13
14namespace mcld {
15
16class ArchiveReader;
17class DynObjReader;
18class GroupReader;
19class Input;
20class LinkerConfig;
21class LinkerScript;
22class Module;
23class ObjectReader;
24class ScriptFile;
25class TargetLDBackend;
26
27class ScriptReader : public LDReader {
28 public:
29  ScriptReader(ObjectReader& pObjectReader,
30               ArchiveReader& pArchiveReader,
31               DynObjReader& pDynObjReader,
32               GroupReader& pGroupReader);
33
34  ~ScriptReader();
35
36  /// readScript
37  bool readScript(const LinkerConfig& pConfig, ScriptFile& pScriptFile);
38
39  /// isMyFormat
40  bool isMyFormat(Input& pInput, bool& pContinue) const;
41
42 private:
43  ObjectReader& m_ObjectReader;
44  ArchiveReader& m_ArchiveReader;
45  DynObjReader& m_DynObjReader;
46  GroupReader& m_GroupReader;
47};
48
49}  // namespace mcld
50
51#endif  // MCLD_SCRIPT_SCRIPTREADER_H_
52