slang_rs.h revision 3a9ca1f0d6bd8f12c2bb2adea51f95c255996180
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  SlangRS(const char *Triple, const char *CPU, const char **Features);
29
30  // The package name that's really applied will be filled in
31  // RealPackageNameBuf. BufSize is the size of buffer RealPackageNameBuf.
32  bool reflectToJava(const char *outputPackageName,
33                     char *RealPackageNameBuf, int BufSize);
34  bool reflectToJavaPath(const char *OutputPathName);
35
36  inline void allowRSPrefix(bool V = true) { mAllowRSPrefix = V; }
37
38  virtual ~SlangRS();
39};
40}
41
42#endif  // _SLANG_COMPILER_SLANG_RS_HPP
43