From dd7ec972f0851454021e73876f093890a689615f Mon Sep 17 00:00:00 2001
From: Alex McCaskey <mccaskeyaj@ornl.gov>
Date: Fri, 20 Jan 2017 17:53:08 +0000
Subject: [PATCH] syncing up

---
 quantum/gate/scaffold/ScaffoldCompiler.cpp    | 30 +++++++++++++++++++
 .../scaffold/tests/ScaffoldCompilerTester.cpp | 21 ++++++-------
 xacc/compiler/GraphIR.hpp                     |  1 +
 3 files changed, 40 insertions(+), 12 deletions(-)

diff --git a/quantum/gate/scaffold/ScaffoldCompiler.cpp b/quantum/gate/scaffold/ScaffoldCompiler.cpp
index 333e39896..e054fffb6 100644
--- a/quantum/gate/scaffold/ScaffoldCompiler.cpp
+++ b/quantum/gate/scaffold/ScaffoldCompiler.cpp
@@ -1,3 +1,33 @@
+/***********************************************************************************
+ * Copyright (c) 2016, UT-Battelle
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *   * Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *   * Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *   * Neither the name of the xacc nor the
+ *     names of its contributors may be used to endorse or promote products
+ *     derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Contributors:
+ *   Initial API and implementation - Alex McCaskey
+ *
+ **********************************************************************************/
 #include "ScaffoldCompiler.hpp"
 #include "GraphIR.hpp"
 #include <regex>
diff --git a/quantum/gate/scaffold/tests/ScaffoldCompilerTester.cpp b/quantum/gate/scaffold/tests/ScaffoldCompilerTester.cpp
index 8ee93c829..1de6f0c0d 100644
--- a/quantum/gate/scaffold/tests/ScaffoldCompilerTester.cpp
+++ b/quantum/gate/scaffold/tests/ScaffoldCompilerTester.cpp
@@ -35,11 +35,8 @@
 #include "AbstractFactory.hpp"
 #include "Compiler.hpp"
 
-BOOST_AUTO_TEST_CASE(checkScaffoldCompiler) {
-	auto compiler = qci::common::AbstractFactory::createAndCast<xacc::ICompiler>("compiler", "scaffold");
-	BOOST_VERIFY(compiler);
-
-	const std::string src("__qpu__ teleport () {\n"
+// Just some dummy quantum code...
+const std::string src("__qpu__ teleport () {\n"
 						"   qbit qs[3];\n"
 						"   cbit cs[2];\n"
 						"   H(qs[1]);\n"
@@ -48,13 +45,13 @@ BOOST_AUTO_TEST_CASE(checkScaffoldCompiler) {
 						"   H(qs[0]);\n"
 						"   cs[0] = MeasZ(qs[0]);\n"
 						"   cs[1] = MeasZ(qs[1]);\n"
-//						"   if(cs[0]) {\n"
-//						"      X(qs[2]);\n"
-//						"   }\n"
-//						"   if(cs[1]) {\n"
-//						"      Z(qs[2]);\n"
-//						"   }\n"
 						"}\n");
 
-	compiler->compile(src);
+BOOST_AUTO_TEST_CASE(checkScaffoldCompiler) {
+	auto compiler = qci::common::AbstractFactory::createAndCast<xacc::ICompiler>("compiler", "scaffold");
+	BOOST_VERIFY(compiler);
+	auto ir = compiler->compile(src);
+	BOOST_VERIFY(ir);
+
+	// Run some tests on the IR
 }
diff --git a/xacc/compiler/GraphIR.hpp b/xacc/compiler/GraphIR.hpp
index 64ab38062..51e2aaee0 100644
--- a/xacc/compiler/GraphIR.hpp
+++ b/xacc/compiler/GraphIR.hpp
@@ -5,6 +5,7 @@
 
 namespace xacc {
 
+template<typename DerivedGraph>
 class GraphIR : public IR {
 
 public:
-- 
GitLab