slang_pragma_recorder.h revision 6315f76e3cc6ff2d012d1183a0b030d4ff0dc808
1#ifndef _SLANG_COMPILER_PRAGMA_HANDLER_H 2#define _SLANG_COMPILER_PRAGMA_HANDLER_H 3 4#include <list> 5#include <string> 6 7#include "clang/Lex/Pragma.h" 8 9namespace clang { 10 class Token; 11 class Preprocessor; 12} 13 14namespace slang { 15 16typedef std::list< std::pair<std::string, std::string> > PragmaList; 17 18class PragmaRecorder : public clang::PragmaHandler { 19 private: 20 PragmaList &mPragmas; 21 22 static bool GetPragmaNameFromToken(const clang::Token &Token, 23 std::string &PragmaName); 24 25 static bool GetPragmaValueFromToken(const clang::Token &Token, 26 std::string &PragmaValue); 27 28 public: 29 explicit PragmaRecorder(PragmaList &Pragmas); 30 31 virtual void HandlePragma(clang::Preprocessor &PP, 32 clang::Token &FirstToken); 33}; 34} 35 36#endif // _SLANG_COMPILER_PRAGMA_HANDLER_H 37