1f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines//===- DefSymParser.h -----------------------------------------------------===//
2f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines//
3f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines//                     The MCLinker Project
4f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines//
5f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines// This file is distributed under the University of Illinois Open Source
6f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines// License. See LICENSE.TXT for details.
7f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines//
8f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines//===----------------------------------------------------------------------===//
9f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines#ifndef MCLD_DEFSYM_PARSER_H
10f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines#define MCLD_DEFSYM_PARSER_H
11f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines
12f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines#include <mcld/Module.h>
13f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines#include <llvm/ADT/StringRef.h>
14f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines
15f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hinesnamespace mcld {
16f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines
17f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines/** \class DefSymParser
18f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines *  \brief DefSymParser parses --defsym option.
19f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines */
20f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hinesclass DefSymParser
21f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines{
22f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hinespublic:
23f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines  DefSymParser(const Module& pModule);
24f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines
25f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines  // parse a valid expression and set the value in the second parameter
26f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines  bool parse(llvm::StringRef, uint64_t&);
27f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines
28f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hinesprivate:
29f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines  const Module& m_Module;
30f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines};
31f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines
32f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines} // mcld
33f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines
34f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines#endif
35