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 
14 namespace mcld {
15 
16 class ArchiveReader;
17 class DynObjReader;
18 class GroupReader;
19 class Input;
20 class LinkerConfig;
21 class LinkerScript;
22 class Module;
23 class ObjectReader;
24 class ScriptFile;
25 class TargetLDBackend;
26 
27 class 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