XACC
staq_compiler.hpp
1 /*******************************************************************************
2  * Copyright (c) 2020 UT-Battelle, LLC.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * and Eclipse Distribution License v1.0 which accompanies this
6  * distribution. The Eclipse Public License is available at
7  * http://www.eclipse.org/legal/epl-v10.html and the Eclipse Distribution
8  * License is available at https://eclipse.org/org/documents/edl-v10.php
9  *
10  * Contributors:
11  * Alexander J. McCaskey - initial API and implementation
12  *******************************************************************************/
13 #ifndef XACC_STAQCOMPILER_HPP
14 #define XACC_STAQCOMPILER_HPP
15 
16 #include "Compiler.hpp"
17 
18 namespace xacc {
19 
20 class StaqCompiler : public xacc::Compiler {
21 
22 public:
23  StaqCompiler();
24 
25  std::shared_ptr<xacc::IR> compile(const std::string &src,
26  std::shared_ptr<Accelerator> acc) override;
27 
28  std::shared_ptr<xacc::IR> compile(const std::string &src) override;
29  bool canParse(const std::string& src) override;
30 
31  const std::string
32  translate(std::shared_ptr<CompositeInstruction> function) override;
33 
34  const std::string translate(std::shared_ptr<CompositeInstruction> program,
35  HeterogeneousMap &options) override;
36 
37  const std::string name() const override { return "staq"; }
38 
39  const std::string description() const override { return ""; }
40 
41  virtual ~StaqCompiler() {}
42 };
43 
44 } // namespace xacc
45 #endif
const std::string description() const override
Definition: staq_compiler.hpp:39
Definition: Accelerator.hpp:25
const std::string name() const override
Definition: staq_compiler.hpp:37
Definition: heterogeneous.hpp:45
Definition: Compiler.hpp:24
Definition: staq_compiler.hpp:20
bool canParse(const std::string &src) override
Definition: staq_compiler.cpp:38