| //===- OutputFormatCmd.h --------------------------------------------------===// |
| // |
| // The MCLinker Project |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| #ifndef MCLD_SCRIPT_OUTPUTFORMATCMD_H |
| #define MCLD_SCRIPT_OUTPUTFORMATCMD_H |
| |
| #include <mcld/Script/ScriptCommand.h> |
| #include <string> |
| #include <vector> |
| |
| namespace mcld |
| { |
| |
| class Module; |
| |
| /** \class OutputFormatCmd |
| * \brief This class defines the interfaces to OutputFormat command. |
| */ |
| |
| class OutputFormatCmd : public ScriptCommand |
| { |
| public: |
| typedef std::vector<std::string> FormatList; |
| typedef FormatList::const_iterator const_iterator; |
| typedef FormatList::iterator iterator; |
| |
| public: |
| OutputFormatCmd(const std::string& pFormat); |
| OutputFormatCmd(const std::string& pDefault, |
| const std::string& pBig, |
| const std::string& pLittle); |
| ~OutputFormatCmd(); |
| |
| const_iterator begin() const { return m_FormatList.begin(); } |
| iterator begin() { return m_FormatList.begin(); } |
| const_iterator end() const { return m_FormatList.end(); } |
| iterator end() { return m_FormatList.end(); } |
| |
| void dump() const; |
| |
| static bool classof(const ScriptCommand* pCmd) |
| { |
| return pCmd->getKind() == ScriptCommand::OUTPUT_FORMAT; |
| } |
| |
| void activate(Module& pModule); |
| |
| private: |
| FormatList m_FormatList; |
| }; |
| |
| } // namespace of mcld |
| |
| #endif |
| |