ScriptReader.h revision 87f34658dec9097d987d254a990ea7f311bfc95f
17b15cb33847e6282ea8352c98894683b796127f3Wei Jia//===- ScriptReader.h -----------------------------------------------------===//
27b15cb33847e6282ea8352c98894683b796127f3Wei Jia//
37b15cb33847e6282ea8352c98894683b796127f3Wei Jia//                     The MCLinker Project
47b15cb33847e6282ea8352c98894683b796127f3Wei Jia//
57b15cb33847e6282ea8352c98894683b796127f3Wei Jia// This file is distributed under the University of Illinois Open Source
67b15cb33847e6282ea8352c98894683b796127f3Wei Jia// License. See LICENSE.TXT for details.
77b15cb33847e6282ea8352c98894683b796127f3Wei Jia//
87b15cb33847e6282ea8352c98894683b796127f3Wei Jia//===----------------------------------------------------------------------===//
97b15cb33847e6282ea8352c98894683b796127f3Wei Jia#ifndef MCLD_SCRIPT_SCRIPTREADER_H
107b15cb33847e6282ea8352c98894683b796127f3Wei Jia#define MCLD_SCRIPT_SCRIPTREADER_H
117b15cb33847e6282ea8352c98894683b796127f3Wei Jia#ifdef ENABLE_UNITTEST
127b15cb33847e6282ea8352c98894683b796127f3Wei Jia#include <gtest.h>
137b15cb33847e6282ea8352c98894683b796127f3Wei Jia#endif
147b15cb33847e6282ea8352c98894683b796127f3Wei Jia
157b15cb33847e6282ea8352c98894683b796127f3Wei Jia#include <mcld/LD/LDReader.h>
167b15cb33847e6282ea8352c98894683b796127f3Wei Jia
177b15cb33847e6282ea8352c98894683b796127f3Wei Jianamespace mcld {
187b15cb33847e6282ea8352c98894683b796127f3Wei Jia
197b15cb33847e6282ea8352c98894683b796127f3Wei Jiaclass Module;
207b15cb33847e6282ea8352c98894683b796127f3Wei Jiaclass ScriptFile;
215833b6aad2c46ba516bdc8262f4fc4667e8018edWei Jiaclass Input;
227b15cb33847e6282ea8352c98894683b796127f3Wei Jiaclass GroupReader;
239816016afb2a13c6a866cd047d57020566a8b9a9Wei Jiaclass LinkerConfig;
247b15cb33847e6282ea8352c98894683b796127f3Wei Jiaclass LinkerScript;
257b15cb33847e6282ea8352c98894683b796127f3Wei Jiaclass TargetLDBackend;
267b15cb33847e6282ea8352c98894683b796127f3Wei Jia
277b15cb33847e6282ea8352c98894683b796127f3Wei Jiaclass ScriptReader : public LDReader
284ecbea3ae1fcefb082dc419cb663909536138ddbWei Jia{
294ecbea3ae1fcefb082dc419cb663909536138ddbWei Jiapublic:
304ecbea3ae1fcefb082dc419cb663909536138ddbWei Jia  ScriptReader(GroupReader& pGroupReader);
314ecbea3ae1fcefb082dc419cb663909536138ddbWei Jia
327b15cb33847e6282ea8352c98894683b796127f3Wei Jia  ~ScriptReader();
337b15cb33847e6282ea8352c98894683b796127f3Wei Jia
347b15cb33847e6282ea8352c98894683b796127f3Wei Jia  /// readScript
357b15cb33847e6282ea8352c98894683b796127f3Wei Jia  bool readScript(const LinkerConfig& pConfig, ScriptFile& pScriptFile);
367b15cb33847e6282ea8352c98894683b796127f3Wei Jia
379816016afb2a13c6a866cd047d57020566a8b9a9Wei Jia  /// isMyFormat
387b15cb33847e6282ea8352c98894683b796127f3Wei Jia  bool isMyFormat(Input& pInput, bool &pContinue) const;
397b15cb33847e6282ea8352c98894683b796127f3Wei Jia
407b15cb33847e6282ea8352c98894683b796127f3Wei Jia  GroupReader& getGroupReader() { return m_GroupReader; }
417b15cb33847e6282ea8352c98894683b796127f3Wei Jia
427b15cb33847e6282ea8352c98894683b796127f3Wei Jiaprivate:
437b15cb33847e6282ea8352c98894683b796127f3Wei Jia  GroupReader& m_GroupReader;
447b15cb33847e6282ea8352c98894683b796127f3Wei Jia};
457b15cb33847e6282ea8352c98894683b796127f3Wei Jia
467b15cb33847e6282ea8352c98894683b796127f3Wei Jia} // namespace of mcld
477b15cb33847e6282ea8352c98894683b796127f3Wei Jia
487b15cb33847e6282ea8352c98894683b796127f3Wei Jia#endif
497b15cb33847e6282ea8352c98894683b796127f3Wei Jia
507b15cb33847e6282ea8352c98894683b796127f3Wei Jia