187f34658dec9097d987d254a990ea7f311bfc95fStephen Hines//===- ScriptReader.h -----------------------------------------------------===// 287f34658dec9097d987d254a990ea7f311bfc95fStephen Hines// 387f34658dec9097d987d254a990ea7f311bfc95fStephen Hines// The MCLinker Project 487f34658dec9097d987d254a990ea7f311bfc95fStephen Hines// 587f34658dec9097d987d254a990ea7f311bfc95fStephen Hines// This file is distributed under the University of Illinois Open Source 687f34658dec9097d987d254a990ea7f311bfc95fStephen Hines// License. See LICENSE.TXT for details. 787f34658dec9097d987d254a990ea7f311bfc95fStephen Hines// 887f34658dec9097d987d254a990ea7f311bfc95fStephen Hines//===----------------------------------------------------------------------===// 937b74a387bb3993387029859c2d9d051c41c724eStephen Hines#ifndef MCLD_SCRIPT_SCRIPTREADER_H_ 1037b74a387bb3993387029859c2d9d051c41c724eStephen Hines#define MCLD_SCRIPT_SCRIPTREADER_H_ 1187f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 1237b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LD/LDReader.h" 1387f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 1487f34658dec9097d987d254a990ea7f311bfc95fStephen Hinesnamespace mcld { 1587f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 1637b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass ArchiveReader; 1737b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass DynObjReader; 1887f34658dec9097d987d254a990ea7f311bfc95fStephen Hinesclass GroupReader; 1937b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass Input; 2087f34658dec9097d987d254a990ea7f311bfc95fStephen Hinesclass LinkerConfig; 2187f34658dec9097d987d254a990ea7f311bfc95fStephen Hinesclass LinkerScript; 2237b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass Module; 2337b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass ObjectReader; 2437b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass ScriptFile; 2587f34658dec9097d987d254a990ea7f311bfc95fStephen Hinesclass TargetLDBackend; 2687f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 2737b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass ScriptReader : public LDReader { 2837b74a387bb3993387029859c2d9d051c41c724eStephen Hines public: 2937b74a387bb3993387029859c2d9d051c41c724eStephen Hines ScriptReader(ObjectReader& pObjectReader, 3037b74a387bb3993387029859c2d9d051c41c724eStephen Hines ArchiveReader& pArchiveReader, 3137b74a387bb3993387029859c2d9d051c41c724eStephen Hines DynObjReader& pDynObjReader, 3237b74a387bb3993387029859c2d9d051c41c724eStephen Hines GroupReader& pGroupReader); 3387f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 3487f34658dec9097d987d254a990ea7f311bfc95fStephen Hines ~ScriptReader(); 3587f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 3687f34658dec9097d987d254a990ea7f311bfc95fStephen Hines /// readScript 3787f34658dec9097d987d254a990ea7f311bfc95fStephen Hines bool readScript(const LinkerConfig& pConfig, ScriptFile& pScriptFile); 3887f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 3987f34658dec9097d987d254a990ea7f311bfc95fStephen Hines /// isMyFormat 4037b74a387bb3993387029859c2d9d051c41c724eStephen Hines bool isMyFormat(Input& pInput, bool& pContinue) const; 4187f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 4237b74a387bb3993387029859c2d9d051c41c724eStephen Hines private: 4337b74a387bb3993387029859c2d9d051c41c724eStephen Hines ObjectReader& m_ObjectReader; 4437b74a387bb3993387029859c2d9d051c41c724eStephen Hines ArchiveReader& m_ArchiveReader; 4537b74a387bb3993387029859c2d9d051c41c724eStephen Hines DynObjReader& m_DynObjReader; 4687f34658dec9097d987d254a990ea7f311bfc95fStephen Hines GroupReader& m_GroupReader; 4787f34658dec9097d987d254a990ea7f311bfc95fStephen Hines}; 4887f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 4937b74a387bb3993387029859c2d9d051c41c724eStephen Hines} // namespace mcld 5087f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 5137b74a387bb3993387029859c2d9d051c41c724eStephen Hines#endif // MCLD_SCRIPT_SCRIPTREADER_H_ 52