slang_rs.h revision b81c6a4cbd9c08e0b20ea4fbc615b416ac1bc9ec
1#ifndef _SLANG_COMPILER_SLANG_RS_HPP
2#define _SLANG_COMPILER_SLANG_RS_HPP
3
4#include "slang.h"
5
6namespace slang {
7  class RSContext;
8
9class SlangRS : public Slang {
10 private:
11  // Context for RenderScript
12  RSContext *mRSContext;
13
14  bool mAllowRSPrefix;
15
16 protected:
17  virtual void initDiagnostic();
18  virtual void initPreprocessor();
19  virtual void initASTContext();
20
21  virtual clang::ASTConsumer
22  *createBackend(const clang::CodeGenOptions& CodeGenOpts,
23                 llvm::raw_ostream *OS,
24                 Slang::OutputType OT);
25
26
27 public:
28  static bool IsRSHeaderFile(const char *File);
29
30  SlangRS(const std::string &Triple, const std::string &CPU,
31          const std::vector<std::string> &Features);
32
33  // The package name that's really applied will be filled in RealPackageName.
34  bool reflectToJava(const std::string &OutputPathBase,
35                     const std::string &OutputPackageName,
36                     std::string *RealPackageName);
37
38  virtual void reset();
39
40  inline void allowRSPrefix(bool V = true) { mAllowRSPrefix = V; }
41
42  virtual ~SlangRS();
43};
44}
45
46#endif  // _SLANG_COMPILER_SLANG_RS_HPP
47