slang_rs_backend.h revision 3a9ca1f0d6bd8f12c2bb2adea51f95c255996180
1#ifndef _SLANG_COMPILER_RS_BACKEND_H 2#define _SLANG_COMPILER_RENDER_SCRIPT_BACKEND_H 3 4#include "slang_backend.h" 5#include "slang_pragma_recorder.h" 6 7namespace llvm { 8 class NamedMDNode; 9} 10 11namespace clang { 12 class ASTConsumer; 13 class Diagnostic; 14 class TargetOptions; 15 class PragmaList; 16 class CodeGenerator; 17 class ASTContext; 18 class DeclGroupRef; 19} 20 21namespace slang { 22 23class RSContext; 24 25class RSBackend : public Backend { 26 private: 27 RSContext *mContext; 28 29 clang::SourceManager &mSourceMgr; 30 31 bool mAllowRSPrefix; 32 33 llvm::NamedMDNode *mExportVarMetadata; 34 llvm::NamedMDNode *mExportFuncMetadata; 35 llvm::NamedMDNode *mExportTypeMetadata; 36 llvm::NamedMDNode *mExportElementMetadata; 37 38 virtual void HandleTranslationUnitEx(clang::ASTContext &Ctx); 39 40 public: 41 RSBackend(RSContext *Context, 42 clang::Diagnostic &Diags, 43 const clang::CodeGenOptions &CodeGenOpts, 44 const clang::TargetOptions &TargetOpts, 45 const PragmaList &Pragmas, 46 llvm::raw_ostream *OS, 47 Slang::OutputType OT, 48 clang::SourceManager &SourceMgr, 49 bool AllowRSPrefix); 50 51 virtual void HandleTopLevelDecl(clang::DeclGroupRef D); 52 53 virtual ~RSBackend(); 54}; 55} 56 57#endif // _SLANG_COMPILER_BACKEND_H 58