QCOR
qcor_syntax_handler.hpp
1 #pragma once
2 
3 #include "clang/Parse/Parser.h"
4 
5 using namespace clang;
6 
7 namespace qcor {
8 extern std::string qpu_name;
9 extern int shots;
10 
11 // Add this for internal development, specifically JIT tests
12 // where I don't want AddPredefines to add qcor.hpp. For example
13 // where I want to compile a simple c++ code with no dependencies,
14 // I don't want to include qcor.hpp bc it makes it much slower.
15 namespace __internal__developer__flags__ { extern bool add_predefines;}
16 
17 class QCORSyntaxHandler : public SyntaxHandler {
18 public:
19  QCORSyntaxHandler() : SyntaxHandler("qcor") {}
20  void GetReplacement(Preprocessor &PP, Declarator &D, CachedTokens &Toks,
21  llvm::raw_string_ostream &OS) override;
22 
23  // For use with qcor jit
24  void GetReplacement(Preprocessor &PP, std::string &kernel_name,
25  std::vector<std::string> program_arg_types,
26  std::vector<std::string> program_parameters,
27  std::vector<std::string> bufferNames, CachedTokens &Toks,
28  llvm::raw_string_ostream &OS, bool add_het_map_ctor = false);
29 
30  void AddToPredefines(llvm::raw_string_ostream &OS) override;
31 };
32 } // namespace qcor
qcor::QCORSyntaxHandler
Definition: qcor_syntax_handler.hpp:17
qcor
Definition: qcor_syntax_handler.cpp:15