slang_rs_export_var.h revision 324c0479ec3edda573de60b2e6476507a99d06f7
1462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao#ifndef _SLANG_COMPILER_RS_EXPORT_VAR_HPP 2462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao# define _SLANG_COMPILER_RS_EXPORT_VAR_HPP 3462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 4462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao#include "llvm/ADT/StringRef.h" /* for class llvm::StringRef */ 5462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 6462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao#include "clang/AST/Decl.h" /* for clang::VarDecl */ 7324c0479ec3edda573de60b2e6476507a99d06f7Shih-wei Liao#include "clang/AST/Expr.h" /* for clang::Expr */ 8462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 9462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao#include <string> 10462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 11324c0479ec3edda573de60b2e6476507a99d06f7Shih-wei Liaonamespace clang { 12324c0479ec3edda573de60b2e6476507a99d06f7Shih-wei Liao class APValue; 13324c0479ec3edda573de60b2e6476507a99d06f7Shih-wei Liao} 14324c0479ec3edda573de60b2e6476507a99d06f7Shih-wei Liao 15462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaonamespace slang { 16462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 17462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaousing namespace clang; 18462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 19462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaoclass RSContext; 20462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaoclass RSExportType; 21462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 22462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaoclass RSExportVar { 23462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao friend class RSContext; 24462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaoprivate: 25462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao RSContext* mContext; 26462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao std::string mName; 27462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao const RSExportType* mET; 28462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 29324c0479ec3edda573de60b2e6476507a99d06f7Shih-wei Liao Expr::EvalResult mInit; 30324c0479ec3edda573de60b2e6476507a99d06f7Shih-wei Liao 31462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao RSExportVar(RSContext* Context, const VarDecl* VD, const RSExportType* ET); 32462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 33462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaopublic: 34462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao inline const std::string& getName() const { return mName; } 35462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao inline const RSExportType* getType() const { return mET; } 36462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao inline RSContext* getRSContext() const { return mContext; } 37462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 38324c0479ec3edda573de60b2e6476507a99d06f7Shih-wei Liao inline const APValue& getInit() const { return mInit.Val; } 39324c0479ec3edda573de60b2e6476507a99d06f7Shih-wei Liao 40462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao}; /* RSExportVar */ 41462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 42462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 43462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao} /* namespace slang */ 44462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 45462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao#endif /* _SLANG_COMPILER_RS_EXPORT_VAR_HPP */ 46