tf_fuzz: refactor directory structure

Move all C++ source and files related to the C++ tfz binary into a
tfz-cpp subdirectory, and create a new Python project for the suite
generator.

Change-Id: I15aa0ba20e83d6713d17d25b6d636f63ac14f229
Signed-off-by: Nik Dewally <Nik.Dewally@arm.com>
diff --git a/.gitignore b/.gitignore
index 0487503..c077ec3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,8 @@
 **/__pycache__
 *.uvguix.*
 *.uvmpw.uvgui.*
+.venv/
+*.egg-info/
 
 # Eclipse
 *.project
@@ -20,6 +22,7 @@
 
 # build files
 build*/
+bin/
 *.o
 
 # bison and flex generated files
@@ -27,7 +30,7 @@
 *.tab.*
 *.output
 
-# binarys
+# binaries
 tfz
 
 # clangd
diff --git a/docs/tf_fuzz/source_structure/asset_dir.rst b/docs/tf_fuzz/source_structure/asset_dir.rst
index 4eb358d..46d34d8 100644
--- a/docs/tf_fuzz/source_structure/asset_dir.rst
+++ b/docs/tf_fuzz/source_structure/asset_dir.rst
@@ -1,6 +1,6 @@
-########################
-'assets'-directory guide
-########################
+################################
+'tfz-cpp/assets'-directory guide
+################################
 
 ************
 Introduction
@@ -11,9 +11,9 @@
 during the Simulate phase, after Parse phase, which parses the test-template
 file, and prior to writing out the generated C code.
 
-***********************************************
-``.../tools/tf_fuzz/assets`` directory contents
-***********************************************
+*********************************************
+``tf_fuzz/tfz-cpp/assets`` directory contents
+*********************************************
 .. code-block:: bash
 
     crypto_asset.cpp  psa_asset.cpp  sst_asset.cpp
diff --git a/docs/tf_fuzz/source_structure/boilerplate_dir.rst b/docs/tf_fuzz/source_structure/boilerplate_dir.rst
index d4aea0e..e21bfb3 100644
--- a/docs/tf_fuzz/source_structure/boilerplate_dir.rst
+++ b/docs/tf_fuzz/source_structure/boilerplate_dir.rst
@@ -1,19 +1,19 @@
-#############################
-'boilerplate'-directory guide
-#############################
+#####################################
+'tfz-cpp/boilerplate'-directory guide
+#####################################
 
 ************
 Introduction
 ************
 
 This directory contains the C++ header and code files to work with the
-customizable, "boilerplate" code snippets in the ``...tools/tf_fuzz/lib``
+customizable, "boilerplate" code snippets in the ``tf_fuzz/lib``
 directory.  Mostly what this code does is read these code snippets into an
 STL ``vector`` of, essentially, named strings.
 
-****************************************************
-``.../tools/tf_fuzz/boilerplate`` directory contents
-****************************************************
+**************************************************
+``tf_fuzz/tfz-cpp/boilerplate`` directory contents
+**************************************************
 .. code-block:: bash
 
     boilerplate.cpp  boilerplate.hpp
diff --git a/docs/tf_fuzz/source_structure/calls_dir.rst b/docs/tf_fuzz/source_structure/calls_dir.rst
index 17c2491..5eb0e63 100644
--- a/docs/tf_fuzz/source_structure/calls_dir.rst
+++ b/docs/tf_fuzz/source_structure/calls_dir.rst
@@ -1,6 +1,6 @@
-#######################
-'calls'-directory guide
-#######################
+###############################
+'tfz-cpp/calls'-directory guide
+###############################
 
 ************
 Introduction
@@ -16,9 +16,9 @@
 Each ``psa_call``-subclass object encapsulates the initial and expected data,
 expected pass/fail results, and other information about the call.
 
-**********************************************
-``.../tools/tf_fuzz/calls`` directory contents
-**********************************************
+********************************************
+``tf_fuzz/tfz-cpp/calls`` directory contents
+********************************************
 .. code-block:: bash
 
     crypto_call.cpp  psa_call.cpp  security_call.cpp  sst_call.cpp
diff --git a/docs/tf_fuzz/source_structure/demo_dir.rst b/docs/tf_fuzz/source_structure/demo_dir.rst
index fb49fe7..e137a87 100644
--- a/docs/tf_fuzz/source_structure/demo_dir.rst
+++ b/docs/tf_fuzz/source_structure/demo_dir.rst
@@ -25,9 +25,9 @@
 that is, TF-Fuzz only provides a very-compact test-specification format.  As
 the test number increases, the TF-Fuzz tool infers for you more about test.
 
-*********************************************
-``.../tools/tf_fuzz/demo`` directory contents
-*********************************************
+***********************************
+``tf_fuzz/demo`` directory contents
+***********************************
 .. code-block:: bash
 
     1  10  11  12  13  14  15  16  17  18  19  2  3  4  5  6  7  8  9  r
diff --git a/docs/tf_fuzz/source_structure/lib_dir.rst b/docs/tf_fuzz/source_structure/lib_dir.rst
index fbc54dd..065ebe3 100644
--- a/docs/tf_fuzz/source_structure/lib_dir.rst
+++ b/docs/tf_fuzz/source_structure/lib_dir.rst
@@ -9,7 +9,7 @@
 This directory contains the customizable "boilerplate" code snippets used to
 write out C source code.  The file in this directory currently, is that for
 TF-M, but other comparable frameworks could be addressed with equivalent files
-taylored for the required syntax of that other framework.
+tailored for the required syntax of that other framework.
 
 Which file to use for this process is selected by setting two environment
 variables pointing to that file:  One for the ``lib`` directory and one for the
@@ -21,9 +21,9 @@
     export TF_FUZZ_BPLATE=tfm_boilerplate.txt
 
 
-********************************************
-``.../tools/tf_fuzz/lib`` directory contents
-********************************************
+**********************************
+``tf_fuzz/lib`` directory contents
+**********************************
 .. code-block:: bash
 
     tfm_boilerplate.txt
diff --git a/docs/tf_fuzz/source_structure/parser_dir.rst b/docs/tf_fuzz/source_structure/parser_dir.rst
index ddbca5a..c3403eb 100644
--- a/docs/tf_fuzz/source_structure/parser_dir.rst
+++ b/docs/tf_fuzz/source_structure/parser_dir.rst
@@ -1,6 +1,6 @@
-########################
-'parser'-directory guide
-########################
+################################
+'tfz-cpp/parser'-directory guide
+################################
 
 ************
 Introduction
@@ -10,9 +10,9 @@
 test-template language easily extensible.  Much of the actual work is done in
 helper functions, but the Lex/YACC grammar manages the process.
 
-***********************************************
-``.../tools/tf_fuzz/parser`` directory contents
-***********************************************
+*********************************************
+``tf_fuzz/tfz-cpp/parser`` directory contents
+*********************************************
 .. code-block:: bash
 
     tf_fuzz_grammar.l  tf_fuzz_grammar.y
diff --git a/docs/tf_fuzz/source_structure/regression_dir.rst b/docs/tf_fuzz/source_structure/regression_dir.rst
index ec4ea6d..cda98fd 100644
--- a/docs/tf_fuzz/source_structure/regression_dir.rst
+++ b/docs/tf_fuzz/source_structure/regression_dir.rst
@@ -1,6 +1,6 @@
-############################
-'regression'-directory guide
-############################
+####################################
+'tfz-cpp/regression'-directory guide
+####################################
 
 ************
 Introduction
@@ -13,9 +13,9 @@
 ``*active`` and ``*deleted``, nor ``shuffle`` and ``2 to 5 of {...}``
 constructs.
 
-***************************************************
-``.../tools/tf_fuzz/regression`` directory contents
-***************************************************
+*************************************************
+``tf_fuzz/tfz-cpp/regression`` directory contents
+*************************************************
 .. code-block:: bash
 
     000001_set_sst_uid_data_expect_pass
diff --git a/docs/tf_fuzz/source_structure/template_dir.rst b/docs/tf_fuzz/source_structure/template_dir.rst
index 86dbbfa..e536098 100644
--- a/docs/tf_fuzz/source_structure/template_dir.rst
+++ b/docs/tf_fuzz/source_structure/template_dir.rst
@@ -1,6 +1,6 @@
-##########################
-'template'-directory guide
-##########################
+##################################
+'tfz-cpp/template'-directory guide
+##################################
 
 ************
 Introduction
@@ -9,9 +9,9 @@
 These classes describe "tracker" objects for parsing test templates, and for
 generating PSA calls from them.
 
-*************************************************
-``.../tools/tf_fuzz/template`` directory contents
-*************************************************
+***********************************************
+``tf_fuzz/tfz-cpp/template`` directory contents
+***********************************************
 .. code-block:: bash
 
     crypto_template_line.cpp  secure_template_line.hpp  template_line.cpp
diff --git a/docs/tf_fuzz/source_structure/tests_dir.rst b/docs/tf_fuzz/source_structure/tests_dir.rst
index 8226451..ea20915 100644
--- a/docs/tf_fuzz/source_structure/tests_dir.rst
+++ b/docs/tf_fuzz/source_structure/tests_dir.rst
@@ -1,6 +1,6 @@
-#######################
-'tests'-directory guide
-#######################
+###############################
+'tfz-cpp/tests'-directory guide
+###############################
 
 ************
 Introduction
@@ -9,9 +9,9 @@
 These are just more examples of test-template-file content.  They're not really
 organized *tests* as such.
 
-**********************************************
-``.../tools/tf_fuzz/tests`` directory contents
-**********************************************
+********************************************
+``tf_fuzz/tfz-cpp/tests`` directory contents
+********************************************
 .. code-block:: bash
 
     example_template  sstReads  sstSets
diff --git a/docs/tf_fuzz/source_structure/utility_dir.rst b/docs/tf_fuzz/source_structure/utility_dir.rst
index 89ad060..2af3d66 100644
--- a/docs/tf_fuzz/source_structure/utility_dir.rst
+++ b/docs/tf_fuzz/source_structure/utility_dir.rst
@@ -1,17 +1,17 @@
-#########################
-'utility'-directory guide
-#########################
+#################################
+'tfz-cpp/utility'-directory guide
+#################################
 
 ************
 Introduction
 ************
 
-As its name implies, this ``.../tf_fuzz/utility`` directory just contains
+As its name implies, this ``tf_fuzz/tfz-cpp/utility`` directory just contains
 various utility-compute code.
 
-************************************************
-``.../tools/tf_fuzz/utility`` directory contents
-************************************************
+**********************************************
+``tf_fuzz/tfz-cpp/utility`` directory contents
+**********************************************
 .. code-block:: bash
 
     compute.cpp      find_or_create_asset.hpp  randomization.cpp  string_ops.hpp
diff --git a/docs/tf_fuzz/source_structure/visualStudio_dir.rst b/docs/tf_fuzz/source_structure/visualStudio_dir.rst
index a70bbf8..be9894e 100644
--- a/docs/tf_fuzz/source_structure/visualStudio_dir.rst
+++ b/docs/tf_fuzz/source_structure/visualStudio_dir.rst
@@ -1,6 +1,6 @@
-##############################
-'visualStudio'-directory guide
-##############################
+######################################
+'tfz-cpp/visualStudio'-directory guide
+######################################
 
 ************
 Introduction
@@ -14,9 +14,9 @@
 up-coming "interactive mode" for interactively creating test templates may
 need an actual working ``isatty()``, but that's not ready yet.
 
-*************************************************
-.../tools/tf_fuzz/visualStudio directory contents
-*************************************************
+***********************************************
+tf_fuzz/tfz-cpp/visualStudio directory contents
+***********************************************
 .. code-block:: bash
 
     unistd.c  unistd.h
diff --git a/tf_fuzz/Makefile b/tf_fuzz/Makefile
index 0e98dc6..e8d24ec 100644
--- a/tf_fuzz/Makefile
+++ b/tf_fuzz/Makefile
@@ -1,231 +1,39 @@
-# Copyright (c) 2019-2020, Arm Limited. All rights reserved.
+#  Copyright (c) 2024 Arm Limited. All Rights Reserved.
 #
-# SPDX-License-Identifier: BSD-3-Clause
-#
+#  SPDX-License-Identifier: BSD-3-Clause
 
-.PHONY: default
-default: tfz;
 
-edit:
-	$(EDITOR) template/template_line.hpp \
-	template/sst_template_line.hpp template/crypto_template_line.hpp \
-	template/secure_template_line.hpp calls/psa_call.hpp calls/sst_call.hpp \
-	calls/crypto_call.hpp calls/security_call.hpp assets/psa_asset.hpp \
-	assets/sst_asset.hpp assets/crypto_asset.hpp utility/data_blocks.hpp \
-	utility/variables.hpp utility/gibberish.hpp utility/randomization.hpp \
-	utility/find_or_create_asset.hpp utility/string_ops.hpp \
-	utility/compute.hpp boilerplate/boilerplate.hpp \
-	utility/find_or_create_asset.hpp class_forwards.hpp tf_fuzz.hpp \
-	parser/tf_fuzz_grammar.l parser/tf_fuzz_grammar.y \
-	template/template_line.cpp \
-	template/sst_template_line.cpp template/crypto_template_line.cpp \
-	template/secure_template_line.cpp calls/psa_call.cpp calls/sst_call.cpp \
-	calls/crypto_call.cpp calls/security_call.cpp assets/psa_asset.cpp \
-	assets/sst_asset.cpp assets/crypto_asset.cpp utility/data_blocks.cpp \
-	utility/gibberish.cpp utility/randomization.cpp utility/string_ops.cpp \
-	utility/compute.cpp \
-	boilerplate/boilerplate.cpp tf_fuzz.cpp \
-	tests/example_template tests/sstSets tests/sstReads \
-	lib/tfm_boilerplate.txt boilerplate/boilerplate.hpp \
-	Makefile README assets/README \
-	boilerplate/README calls/README demo/README lib/README parser/README \
-	template/README tests/README regression/README utility/README \
-	visualStudio/README &
+###############################
+#        USER COMMANDS        #
+###############################
 
-edit3:
-	$(EDITOR) template/template_line.hpp \
-	template/sst_template_line.hpp template/crypto_template_line.hpp \
-	template/secure_template_line.hpp calls/psa_call.hpp calls/sst_call.hpp \
-	calls/crypto_call.hpp calls/security_call.hpp assets/psa_asset.hpp \
-	assets/sst_asset.hpp assets/crypto_asset.hpp  utility/data_blocks.hpp \
-	utility/variables.hpp utility/gibberish.hpp utility/randomization.hpp \
-	utility/find_or_create_asset.hpp utility/string_ops.hpp \
-	utility/compute.hpp boilerplate/boilerplate.hpp \
-	utility/find_or_create_asset.hpp class_forwards.hpp tf_fuzz.hpp &
-	$(EDITOR) parser/tf_fuzz_grammar.l parser/tf_fuzz_grammar.y \
-	template/template_line.cpp \
-	template/sst_template_line.cpp template/crypto_template_line.cpp \
-	template/secure_template_line.cpp calls/psa_call.cpp calls/sst_call.cpp \
-	calls/crypto_call.cpp calls/security_call.cpp assets/psa_asset.cpp \
-	assets/sst_asset.cpp assets/crypto_asset.cpp utility/data_blocks.cpp \
-	utility/variables.cpp utility/gibberish.cpp utility/randomization.cpp \
-	utility/string_ops.cpp utility/compute.cpp boilerplate/boilerplate.cpp \
-	tf_fuzz.cpp &
-	$(EDITOR) tests/example_template Makefile tests/sstSets tests/sstReads \
-	lib/tfm_boilerplate.txt boilerplate/boilerplate.hpp &
+## all: build all TF-Fuzz binaries.
+.PHONY: all
+all: tfz
 
-includes = -I . -I ./parser -I ./template -I ./assets -I ./calls -I ./boilerplate -I ./utility
+## tfz: build the tfz binary.
+.PHONY: tfz
+tfz: bin/tfz
 
-parser/tf_fuzz_grammar.tab.hpp:  parser/tf_fuzz_grammar.y class_forwards.hpp \
-boilerplate/boilerplate.hpp utility/gibberish.hpp utility/string_ops.hpp \
-tf_fuzz.hpp utility/data_blocks.hpp utility/variables.hpp \
-utility/find_or_create_asset.hpp assets/psa_asset.hpp \
-assets/sst_asset.hpp assets/crypto_asset.hpp calls/psa_call.hpp \
-template/template_line.hpp Makefile
-	rm -f parser/tf_fuzz_grammar.tab.hpp parser/tf_fuzz_grammar.tab.cpp \
-	parser/tf_fuzz_grammar.tab.o
-	bison --verbose -d parser/tf_fuzz_grammar.y -o \
-	parser/tf_fuzz_grammar.tab.cpp
-
-parser/tf_fuzz_grammar.tab.cpp:  parser/tf_fuzz_grammar.y class_forwards.hpp \
-boilerplate/boilerplate.hpp utility/gibberish.hpp utility/string_ops.hpp \
-tf_fuzz.hpp utility/data_blocks.hpp utility/variables.hpp \
-utility/find_or_create_asset.hpp assets/psa_asset.hpp \
-assets/sst_asset.hpp assets/crypto_asset.hpp calls/psa_call.hpp \
-template/template_line.hpp Makefile
-	rm -f parser/tf_fuzz_grammar.tab.hpp parser/tf_fuzz_grammar.tab.cpp \
-	parser/tf_fuzz_grammar.tab.o
-	bison --verbose -d parser/tf_fuzz_grammar.y -o \
-	parser/tf_fuzz_grammar.tab.cpp
-
-parser/tf_fuzz_grammar.lex.c:  parser/tf_fuzz_grammar.l \
-parser/tf_fuzz_grammar.tab.hpp Makefile
-	lex --outfile=parser/tf_fuzz_grammar.lex.c parser/tf_fuzz_grammar.l
-parser/tf_fuzz_grammar.lex.o:  parser/tf_fuzz_grammar.lex.c Makefile
-	g++ -std=gnu++11 -O0 -g -c -I /usr/include $(includes) -o parser/tf_fuzz_grammar.lex.o \
-	parser/tf_fuzz_grammar.lex.c
-
-parser/tf_fuzz_grammar.tab.o:  parser/tf_fuzz_grammar.lex.o \
-parser/tf_fuzz_grammar.tab.cpp parser/tf_fuzz_grammar.tab.hpp Makefile
-	g++ -Wall -std=c++11 -O0 -g -c -I /usr/include $(includes) -o \
-	parser/tf_fuzz_grammar.tab.o parser/tf_fuzz_grammar.tab.cpp
-
-utility/data_blocks.o:  utility/data_blocks.hpp utility/data_blocks.cpp  Makefile
-	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o utility/data_blocks.o \
-	utility/data_blocks.cpp
-
-utility/variables.o:  utility/find_or_create_asset.hpp \
-utility/variables.hpp utility/variables.cpp  Makefile
-	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o utility/variables.o \
-	utility/variables.cpp
-
-template/template_line.o:  utility/randomization.hpp template/template_line.cpp \
-class_forwards.hpp boilerplate/boilerplate.hpp tf_fuzz.hpp calls/psa_call.hpp \
-assets/psa_asset.hpp utility/data_blocks.hpp template/template_line.hpp \
-assets/sst_asset.hpp assets/crypto_asset.hpp  Makefile
-	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o template/template_line.o \
-	template/template_line.cpp
-
-template/sst_template_line.o:  template/sst_template_line.cpp class_forwards.hpp \
-boilerplate/boilerplate.hpp tf_fuzz.hpp calls/psa_call.hpp assets/psa_asset.hpp \
-utility/data_blocks.hpp template/template_line.hpp template/sst_template_line.hpp \
-assets/sst_asset.hpp assets/crypto_asset.hpp Makefile
-	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o template/sst_template_line.o \
-	template/sst_template_line.cpp
-
-template/crypto_template_line.o:  template/crypto_template_line.cpp \
-class_forwards.hpp boilerplate/boilerplate.hpp tf_fuzz.hpp calls/psa_call.hpp \
-assets/psa_asset.hpp utility/data_blocks.hpp template/template_line.hpp \
-assets/sst_asset.hpp assets/crypto_asset.hpp template/crypto_template_line.hpp Makefile
-	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o template/crypto_template_line.o \
-	template/crypto_template_line.cpp
-
-template/secure_template_line.o:  utility/randomization.hpp class_forwards.hpp \
-boilerplate/boilerplate.hpp tf_fuzz.hpp calls/psa_call.hpp \
-assets/psa_asset.hpp utility/data_blocks.hpp template/secure_template_line.hpp \
-assets/sst_asset.hpp assets/crypto_asset.hpp  Makefile
-	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o template/secure_template_line.o \
-	template/secure_template_line.cpp
-
-assets/psa_asset.o:  assets/psa_asset.cpp class_forwards.hpp \
-boilerplate/boilerplate.hpp tf_fuzz.hpp utility/data_blocks.hpp calls/psa_call.hpp \
-assets/psa_asset.hpp template/template_line.hpp Makefile
-	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o assets/psa_asset.o \
-	assets/psa_asset.cpp
-
-assets/sst_asset.o:  assets/sst_asset.cpp class_forwards.hpp \
-boilerplate/boilerplate.hpp utility/data_blocks.hpp tf_fuzz.hpp calls/psa_call.hpp \
-assets/psa_asset.hpp template/template_line.hpp assets/sst_asset.hpp  Makefile
-	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o assets/sst_asset.o \
-	assets/sst_asset.cpp
-
-assets/crypto_asset.o:  utility/randomization.hpp assets/crypto_asset.cpp \
-class_forwards.hpp boilerplate/boilerplate.hpp tf_fuzz.hpp utility/data_blocks.hpp \
-calls/psa_call.hpp assets/psa_asset.hpp assets/crypto_asset.hpp Makefile
-	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o assets/crypto_asset.o \
-	assets/crypto_asset.cpp
-
-calls/psa_call.o:  calls/psa_call.cpp class_forwards.hpp \
-boilerplate/boilerplate.hpp utility/data_blocks.hpp utility/variables.hpp tf_fuzz.hpp \
-calls/psa_call.hpp Makefile
-	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o calls/psa_call.o calls/psa_call.cpp
-
-calls/sst_call.o:  calls/sst_call.cpp class_forwards.hpp \
-boilerplate/boilerplate.hpp tf_fuzz.hpp calls/psa_call.hpp assets/psa_asset.hpp \
-template/template_line.hpp utility/data_blocks.hpp utility/variables.hpp \
-calls/sst_call.hpp assets/sst_asset.hpp assets/crypto_asset.hpp utility/string_ops.hpp \
-Makefile
-	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o calls/sst_call.o \
-	calls/sst_call.cpp
-
-calls/crypto_call.o:  utility/randomization.hpp calls/crypto_call.cpp \
-class_forwards.hpp boilerplate/boilerplate.hpp utility/string_ops.hpp \
-tf_fuzz.hpp calls/psa_call.hpp utility/data_blocks.hpp utility/variables.hpp \
-assets/psa_asset.hpp template/template_line.hpp \
-calls/crypto_call.hpp assets/sst_asset.hpp assets/crypto_asset.hpp Makefile
-	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o calls/crypto_call.o \
-	calls/crypto_call.cpp
-
-calls/security_call.o:  utility/randomization.hpp calls/security_call.hpp \
-calls/security_call.cpp class_forwards.hpp boilerplate/boilerplate.hpp \
-utility/string_ops.hpp utility/data_blocks.hpp utility/variables.hpp tf_fuzz.hpp \
-calls/psa_call.hpp assets/psa_asset.hpp template/template_line.hpp \
-calls/security_call.hpp assets/sst_asset.hpp \
-Makefile
-	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o calls/security_call.o \
-	calls/security_call.cpp
-
-boilerplate/boilerplate.o:  boilerplate/boilerplate.cpp class_forwards.hpp \
-boilerplate/boilerplate.hpp tf_fuzz.hpp calls/psa_call.hpp assets/psa_asset.hpp \
-template/template_line.hpp Makefile
-	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o boilerplate/boilerplate.o \
-	boilerplate/boilerplate.cpp
-
-utility/gibberish.o:  utility/gibberish.cpp class_forwards.hpp \
-utility/gibberish.hpp Makefile
-	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o utility/gibberish.o \
-	utility/gibberish.cpp
-
-utility/string_ops.o:  utility/string_ops.cpp utility/string_ops.hpp Makefile
-	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o utility/string_ops.o \
-	utility/string_ops.cpp
-
-utility/randomization.o:  utility/randomization.cpp utility/randomization.hpp \
-Makefile
-	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o utility/randomization.o \
-	utility/randomization.cpp
-
-utility/compute.o:  utility/compute.cpp utility/compute.hpp Makefile
-	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o utility/compute.o \
-	utility/compute.cpp
-
-tf_fuzz.o:  tf_fuzz.cpp class_forwards.hpp boilerplate/boilerplate.hpp tf_fuzz.hpp \
-calls/psa_call.hpp assets/psa_asset.hpp utility/data_blocks.hpp utility/variables.hpp \
-template/template_line.hpp parser/tf_fuzz_grammar.tab.hpp Makefile
-	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o tf_fuzz.o tf_fuzz.cpp
-
-tfz:  parser/tf_fuzz_grammar.lex.o parser/tf_fuzz_grammar.tab.o \
-template/secure_template_line.o template/template_line.o \
-template/sst_template_line.o template/crypto_template_line.o utility/data_blocks.o \
-utility/variables.o assets/psa_asset.o assets/sst_asset.o assets/crypto_asset.o \
-utility/gibberish.o utility/string_ops.o calls/psa_call.o calls/sst_call.o \
-calls/crypto_call.o utility/randomization.o utility/compute.o boilerplate/boilerplate.o \
-calls/security_call.o tf_fuzz.o \
-Makefile
-	g++ -Wall -std=c++11 -O0 -g -o tfz parser/tf_fuzz_grammar.lex.o \
-	parser/tf_fuzz_grammar.tab.o template/secure_template_line.o \
-	template/template_line.o template/sst_template_line.o utility/data_blocks.o \
-	utility/variables.o template/crypto_template_line.o assets/psa_asset.o \
-	assets/sst_asset.o assets/crypto_asset.o utility/gibberish.o \
-	utility/string_ops.o utility/randomization.o utility/compute.o \
-	calls/psa_call.o calls/sst_call.o calls/crypto_call.o calls/security_call.o \
-	boilerplate/boilerplate.o tf_fuzz.o
-
+## clean: remove all build files.
+.PHONY: clean
 clean:
-	rm -f ./*.o parser/*.o assets/*.o calls/*.o template/*.o utility/*.o \
-	boilerplate/*.o utility/gibberish.o tfz tfz.exe \
-	parser/tf_fuzz_grammar.lex.* parser/tf_fuzz_grammar.tab.* \
-	parser/tf_fuzz_grammar.output
-	rm -f `find regression -name "stdout_stderr"`
-	rm -f `find regression -name "test.c"`
-	rm -f demo/tossThis*
+	rm -rf bin
+	$(MAKE) -C tfz-cpp clean
+
+## help: get help.
+.PHONY: help
+help: Makefile
+	@sed -n 's/^## //p' $<
+
+
+#############################
+#        BUILD RULES        #
+#############################
+bin:
+	mkdir -p bin
+
+.PHONY: bin/tfz
+bin/tfz: | bin
+	$(MAKE) -C tfz-cpp
+	cp -f tfz-cpp/tfz bin/tfz
diff --git a/tf_fuzz/tfz-cpp/Makefile b/tf_fuzz/tfz-cpp/Makefile
new file mode 100644
index 0000000..0e98dc6
--- /dev/null
+++ b/tf_fuzz/tfz-cpp/Makefile
@@ -0,0 +1,231 @@
+# Copyright (c) 2019-2020, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+.PHONY: default
+default: tfz;
+
+edit:
+	$(EDITOR) template/template_line.hpp \
+	template/sst_template_line.hpp template/crypto_template_line.hpp \
+	template/secure_template_line.hpp calls/psa_call.hpp calls/sst_call.hpp \
+	calls/crypto_call.hpp calls/security_call.hpp assets/psa_asset.hpp \
+	assets/sst_asset.hpp assets/crypto_asset.hpp utility/data_blocks.hpp \
+	utility/variables.hpp utility/gibberish.hpp utility/randomization.hpp \
+	utility/find_or_create_asset.hpp utility/string_ops.hpp \
+	utility/compute.hpp boilerplate/boilerplate.hpp \
+	utility/find_or_create_asset.hpp class_forwards.hpp tf_fuzz.hpp \
+	parser/tf_fuzz_grammar.l parser/tf_fuzz_grammar.y \
+	template/template_line.cpp \
+	template/sst_template_line.cpp template/crypto_template_line.cpp \
+	template/secure_template_line.cpp calls/psa_call.cpp calls/sst_call.cpp \
+	calls/crypto_call.cpp calls/security_call.cpp assets/psa_asset.cpp \
+	assets/sst_asset.cpp assets/crypto_asset.cpp utility/data_blocks.cpp \
+	utility/gibberish.cpp utility/randomization.cpp utility/string_ops.cpp \
+	utility/compute.cpp \
+	boilerplate/boilerplate.cpp tf_fuzz.cpp \
+	tests/example_template tests/sstSets tests/sstReads \
+	lib/tfm_boilerplate.txt boilerplate/boilerplate.hpp \
+	Makefile README assets/README \
+	boilerplate/README calls/README demo/README lib/README parser/README \
+	template/README tests/README regression/README utility/README \
+	visualStudio/README &
+
+edit3:
+	$(EDITOR) template/template_line.hpp \
+	template/sst_template_line.hpp template/crypto_template_line.hpp \
+	template/secure_template_line.hpp calls/psa_call.hpp calls/sst_call.hpp \
+	calls/crypto_call.hpp calls/security_call.hpp assets/psa_asset.hpp \
+	assets/sst_asset.hpp assets/crypto_asset.hpp  utility/data_blocks.hpp \
+	utility/variables.hpp utility/gibberish.hpp utility/randomization.hpp \
+	utility/find_or_create_asset.hpp utility/string_ops.hpp \
+	utility/compute.hpp boilerplate/boilerplate.hpp \
+	utility/find_or_create_asset.hpp class_forwards.hpp tf_fuzz.hpp &
+	$(EDITOR) parser/tf_fuzz_grammar.l parser/tf_fuzz_grammar.y \
+	template/template_line.cpp \
+	template/sst_template_line.cpp template/crypto_template_line.cpp \
+	template/secure_template_line.cpp calls/psa_call.cpp calls/sst_call.cpp \
+	calls/crypto_call.cpp calls/security_call.cpp assets/psa_asset.cpp \
+	assets/sst_asset.cpp assets/crypto_asset.cpp utility/data_blocks.cpp \
+	utility/variables.cpp utility/gibberish.cpp utility/randomization.cpp \
+	utility/string_ops.cpp utility/compute.cpp boilerplate/boilerplate.cpp \
+	tf_fuzz.cpp &
+	$(EDITOR) tests/example_template Makefile tests/sstSets tests/sstReads \
+	lib/tfm_boilerplate.txt boilerplate/boilerplate.hpp &
+
+includes = -I . -I ./parser -I ./template -I ./assets -I ./calls -I ./boilerplate -I ./utility
+
+parser/tf_fuzz_grammar.tab.hpp:  parser/tf_fuzz_grammar.y class_forwards.hpp \
+boilerplate/boilerplate.hpp utility/gibberish.hpp utility/string_ops.hpp \
+tf_fuzz.hpp utility/data_blocks.hpp utility/variables.hpp \
+utility/find_or_create_asset.hpp assets/psa_asset.hpp \
+assets/sst_asset.hpp assets/crypto_asset.hpp calls/psa_call.hpp \
+template/template_line.hpp Makefile
+	rm -f parser/tf_fuzz_grammar.tab.hpp parser/tf_fuzz_grammar.tab.cpp \
+	parser/tf_fuzz_grammar.tab.o
+	bison --verbose -d parser/tf_fuzz_grammar.y -o \
+	parser/tf_fuzz_grammar.tab.cpp
+
+parser/tf_fuzz_grammar.tab.cpp:  parser/tf_fuzz_grammar.y class_forwards.hpp \
+boilerplate/boilerplate.hpp utility/gibberish.hpp utility/string_ops.hpp \
+tf_fuzz.hpp utility/data_blocks.hpp utility/variables.hpp \
+utility/find_or_create_asset.hpp assets/psa_asset.hpp \
+assets/sst_asset.hpp assets/crypto_asset.hpp calls/psa_call.hpp \
+template/template_line.hpp Makefile
+	rm -f parser/tf_fuzz_grammar.tab.hpp parser/tf_fuzz_grammar.tab.cpp \
+	parser/tf_fuzz_grammar.tab.o
+	bison --verbose -d parser/tf_fuzz_grammar.y -o \
+	parser/tf_fuzz_grammar.tab.cpp
+
+parser/tf_fuzz_grammar.lex.c:  parser/tf_fuzz_grammar.l \
+parser/tf_fuzz_grammar.tab.hpp Makefile
+	lex --outfile=parser/tf_fuzz_grammar.lex.c parser/tf_fuzz_grammar.l
+parser/tf_fuzz_grammar.lex.o:  parser/tf_fuzz_grammar.lex.c Makefile
+	g++ -std=gnu++11 -O0 -g -c -I /usr/include $(includes) -o parser/tf_fuzz_grammar.lex.o \
+	parser/tf_fuzz_grammar.lex.c
+
+parser/tf_fuzz_grammar.tab.o:  parser/tf_fuzz_grammar.lex.o \
+parser/tf_fuzz_grammar.tab.cpp parser/tf_fuzz_grammar.tab.hpp Makefile
+	g++ -Wall -std=c++11 -O0 -g -c -I /usr/include $(includes) -o \
+	parser/tf_fuzz_grammar.tab.o parser/tf_fuzz_grammar.tab.cpp
+
+utility/data_blocks.o:  utility/data_blocks.hpp utility/data_blocks.cpp  Makefile
+	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o utility/data_blocks.o \
+	utility/data_blocks.cpp
+
+utility/variables.o:  utility/find_or_create_asset.hpp \
+utility/variables.hpp utility/variables.cpp  Makefile
+	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o utility/variables.o \
+	utility/variables.cpp
+
+template/template_line.o:  utility/randomization.hpp template/template_line.cpp \
+class_forwards.hpp boilerplate/boilerplate.hpp tf_fuzz.hpp calls/psa_call.hpp \
+assets/psa_asset.hpp utility/data_blocks.hpp template/template_line.hpp \
+assets/sst_asset.hpp assets/crypto_asset.hpp  Makefile
+	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o template/template_line.o \
+	template/template_line.cpp
+
+template/sst_template_line.o:  template/sst_template_line.cpp class_forwards.hpp \
+boilerplate/boilerplate.hpp tf_fuzz.hpp calls/psa_call.hpp assets/psa_asset.hpp \
+utility/data_blocks.hpp template/template_line.hpp template/sst_template_line.hpp \
+assets/sst_asset.hpp assets/crypto_asset.hpp Makefile
+	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o template/sst_template_line.o \
+	template/sst_template_line.cpp
+
+template/crypto_template_line.o:  template/crypto_template_line.cpp \
+class_forwards.hpp boilerplate/boilerplate.hpp tf_fuzz.hpp calls/psa_call.hpp \
+assets/psa_asset.hpp utility/data_blocks.hpp template/template_line.hpp \
+assets/sst_asset.hpp assets/crypto_asset.hpp template/crypto_template_line.hpp Makefile
+	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o template/crypto_template_line.o \
+	template/crypto_template_line.cpp
+
+template/secure_template_line.o:  utility/randomization.hpp class_forwards.hpp \
+boilerplate/boilerplate.hpp tf_fuzz.hpp calls/psa_call.hpp \
+assets/psa_asset.hpp utility/data_blocks.hpp template/secure_template_line.hpp \
+assets/sst_asset.hpp assets/crypto_asset.hpp  Makefile
+	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o template/secure_template_line.o \
+	template/secure_template_line.cpp
+
+assets/psa_asset.o:  assets/psa_asset.cpp class_forwards.hpp \
+boilerplate/boilerplate.hpp tf_fuzz.hpp utility/data_blocks.hpp calls/psa_call.hpp \
+assets/psa_asset.hpp template/template_line.hpp Makefile
+	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o assets/psa_asset.o \
+	assets/psa_asset.cpp
+
+assets/sst_asset.o:  assets/sst_asset.cpp class_forwards.hpp \
+boilerplate/boilerplate.hpp utility/data_blocks.hpp tf_fuzz.hpp calls/psa_call.hpp \
+assets/psa_asset.hpp template/template_line.hpp assets/sst_asset.hpp  Makefile
+	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o assets/sst_asset.o \
+	assets/sst_asset.cpp
+
+assets/crypto_asset.o:  utility/randomization.hpp assets/crypto_asset.cpp \
+class_forwards.hpp boilerplate/boilerplate.hpp tf_fuzz.hpp utility/data_blocks.hpp \
+calls/psa_call.hpp assets/psa_asset.hpp assets/crypto_asset.hpp Makefile
+	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o assets/crypto_asset.o \
+	assets/crypto_asset.cpp
+
+calls/psa_call.o:  calls/psa_call.cpp class_forwards.hpp \
+boilerplate/boilerplate.hpp utility/data_blocks.hpp utility/variables.hpp tf_fuzz.hpp \
+calls/psa_call.hpp Makefile
+	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o calls/psa_call.o calls/psa_call.cpp
+
+calls/sst_call.o:  calls/sst_call.cpp class_forwards.hpp \
+boilerplate/boilerplate.hpp tf_fuzz.hpp calls/psa_call.hpp assets/psa_asset.hpp \
+template/template_line.hpp utility/data_blocks.hpp utility/variables.hpp \
+calls/sst_call.hpp assets/sst_asset.hpp assets/crypto_asset.hpp utility/string_ops.hpp \
+Makefile
+	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o calls/sst_call.o \
+	calls/sst_call.cpp
+
+calls/crypto_call.o:  utility/randomization.hpp calls/crypto_call.cpp \
+class_forwards.hpp boilerplate/boilerplate.hpp utility/string_ops.hpp \
+tf_fuzz.hpp calls/psa_call.hpp utility/data_blocks.hpp utility/variables.hpp \
+assets/psa_asset.hpp template/template_line.hpp \
+calls/crypto_call.hpp assets/sst_asset.hpp assets/crypto_asset.hpp Makefile
+	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o calls/crypto_call.o \
+	calls/crypto_call.cpp
+
+calls/security_call.o:  utility/randomization.hpp calls/security_call.hpp \
+calls/security_call.cpp class_forwards.hpp boilerplate/boilerplate.hpp \
+utility/string_ops.hpp utility/data_blocks.hpp utility/variables.hpp tf_fuzz.hpp \
+calls/psa_call.hpp assets/psa_asset.hpp template/template_line.hpp \
+calls/security_call.hpp assets/sst_asset.hpp \
+Makefile
+	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o calls/security_call.o \
+	calls/security_call.cpp
+
+boilerplate/boilerplate.o:  boilerplate/boilerplate.cpp class_forwards.hpp \
+boilerplate/boilerplate.hpp tf_fuzz.hpp calls/psa_call.hpp assets/psa_asset.hpp \
+template/template_line.hpp Makefile
+	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o boilerplate/boilerplate.o \
+	boilerplate/boilerplate.cpp
+
+utility/gibberish.o:  utility/gibberish.cpp class_forwards.hpp \
+utility/gibberish.hpp Makefile
+	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o utility/gibberish.o \
+	utility/gibberish.cpp
+
+utility/string_ops.o:  utility/string_ops.cpp utility/string_ops.hpp Makefile
+	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o utility/string_ops.o \
+	utility/string_ops.cpp
+
+utility/randomization.o:  utility/randomization.cpp utility/randomization.hpp \
+Makefile
+	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o utility/randomization.o \
+	utility/randomization.cpp
+
+utility/compute.o:  utility/compute.cpp utility/compute.hpp Makefile
+	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o utility/compute.o \
+	utility/compute.cpp
+
+tf_fuzz.o:  tf_fuzz.cpp class_forwards.hpp boilerplate/boilerplate.hpp tf_fuzz.hpp \
+calls/psa_call.hpp assets/psa_asset.hpp utility/data_blocks.hpp utility/variables.hpp \
+template/template_line.hpp parser/tf_fuzz_grammar.tab.hpp Makefile
+	g++ -Wall -std=c++11 -O0 -g -c $(includes) -o tf_fuzz.o tf_fuzz.cpp
+
+tfz:  parser/tf_fuzz_grammar.lex.o parser/tf_fuzz_grammar.tab.o \
+template/secure_template_line.o template/template_line.o \
+template/sst_template_line.o template/crypto_template_line.o utility/data_blocks.o \
+utility/variables.o assets/psa_asset.o assets/sst_asset.o assets/crypto_asset.o \
+utility/gibberish.o utility/string_ops.o calls/psa_call.o calls/sst_call.o \
+calls/crypto_call.o utility/randomization.o utility/compute.o boilerplate/boilerplate.o \
+calls/security_call.o tf_fuzz.o \
+Makefile
+	g++ -Wall -std=c++11 -O0 -g -o tfz parser/tf_fuzz_grammar.lex.o \
+	parser/tf_fuzz_grammar.tab.o template/secure_template_line.o \
+	template/template_line.o template/sst_template_line.o utility/data_blocks.o \
+	utility/variables.o template/crypto_template_line.o assets/psa_asset.o \
+	assets/sst_asset.o assets/crypto_asset.o utility/gibberish.o \
+	utility/string_ops.o utility/randomization.o utility/compute.o \
+	calls/psa_call.o calls/sst_call.o calls/crypto_call.o calls/security_call.o \
+	boilerplate/boilerplate.o tf_fuzz.o
+
+clean:
+	rm -f ./*.o parser/*.o assets/*.o calls/*.o template/*.o utility/*.o \
+	boilerplate/*.o utility/gibberish.o tfz tfz.exe \
+	parser/tf_fuzz_grammar.lex.* parser/tf_fuzz_grammar.tab.* \
+	parser/tf_fuzz_grammar.output
+	rm -f `find regression -name "stdout_stderr"`
+	rm -f `find regression -name "test.c"`
+	rm -f demo/tossThis*
diff --git a/tf_fuzz/assets/README b/tf_fuzz/tfz-cpp/assets/README
similarity index 100%
rename from tf_fuzz/assets/README
rename to tf_fuzz/tfz-cpp/assets/README
diff --git a/tf_fuzz/assets/crypto_asset.cpp b/tf_fuzz/tfz-cpp/assets/crypto_asset.cpp
similarity index 100%
rename from tf_fuzz/assets/crypto_asset.cpp
rename to tf_fuzz/tfz-cpp/assets/crypto_asset.cpp
diff --git a/tf_fuzz/assets/crypto_asset.hpp b/tf_fuzz/tfz-cpp/assets/crypto_asset.hpp
similarity index 100%
rename from tf_fuzz/assets/crypto_asset.hpp
rename to tf_fuzz/tfz-cpp/assets/crypto_asset.hpp
diff --git a/tf_fuzz/assets/psa_asset.cpp b/tf_fuzz/tfz-cpp/assets/psa_asset.cpp
similarity index 100%
rename from tf_fuzz/assets/psa_asset.cpp
rename to tf_fuzz/tfz-cpp/assets/psa_asset.cpp
diff --git a/tf_fuzz/assets/psa_asset.hpp b/tf_fuzz/tfz-cpp/assets/psa_asset.hpp
similarity index 100%
rename from tf_fuzz/assets/psa_asset.hpp
rename to tf_fuzz/tfz-cpp/assets/psa_asset.hpp
diff --git a/tf_fuzz/assets/sst_asset.cpp b/tf_fuzz/tfz-cpp/assets/sst_asset.cpp
similarity index 100%
rename from tf_fuzz/assets/sst_asset.cpp
rename to tf_fuzz/tfz-cpp/assets/sst_asset.cpp
diff --git a/tf_fuzz/assets/sst_asset.hpp b/tf_fuzz/tfz-cpp/assets/sst_asset.hpp
similarity index 100%
rename from tf_fuzz/assets/sst_asset.hpp
rename to tf_fuzz/tfz-cpp/assets/sst_asset.hpp
diff --git a/tf_fuzz/boilerplate/README b/tf_fuzz/tfz-cpp/boilerplate/README
similarity index 100%
rename from tf_fuzz/boilerplate/README
rename to tf_fuzz/tfz-cpp/boilerplate/README
diff --git a/tf_fuzz/boilerplate/boilerplate.cpp b/tf_fuzz/tfz-cpp/boilerplate/boilerplate.cpp
similarity index 100%
rename from tf_fuzz/boilerplate/boilerplate.cpp
rename to tf_fuzz/tfz-cpp/boilerplate/boilerplate.cpp
diff --git a/tf_fuzz/boilerplate/boilerplate.hpp b/tf_fuzz/tfz-cpp/boilerplate/boilerplate.hpp
similarity index 100%
rename from tf_fuzz/boilerplate/boilerplate.hpp
rename to tf_fuzz/tfz-cpp/boilerplate/boilerplate.hpp
diff --git a/tf_fuzz/calls/README b/tf_fuzz/tfz-cpp/calls/README
similarity index 100%
rename from tf_fuzz/calls/README
rename to tf_fuzz/tfz-cpp/calls/README
diff --git a/tf_fuzz/calls/crypto_call.cpp b/tf_fuzz/tfz-cpp/calls/crypto_call.cpp
similarity index 100%
rename from tf_fuzz/calls/crypto_call.cpp
rename to tf_fuzz/tfz-cpp/calls/crypto_call.cpp
diff --git a/tf_fuzz/calls/crypto_call.hpp b/tf_fuzz/tfz-cpp/calls/crypto_call.hpp
similarity index 100%
rename from tf_fuzz/calls/crypto_call.hpp
rename to tf_fuzz/tfz-cpp/calls/crypto_call.hpp
diff --git a/tf_fuzz/calls/psa_call.cpp b/tf_fuzz/tfz-cpp/calls/psa_call.cpp
similarity index 100%
rename from tf_fuzz/calls/psa_call.cpp
rename to tf_fuzz/tfz-cpp/calls/psa_call.cpp
diff --git a/tf_fuzz/calls/psa_call.hpp b/tf_fuzz/tfz-cpp/calls/psa_call.hpp
similarity index 100%
rename from tf_fuzz/calls/psa_call.hpp
rename to tf_fuzz/tfz-cpp/calls/psa_call.hpp
diff --git a/tf_fuzz/calls/security_call.cpp b/tf_fuzz/tfz-cpp/calls/security_call.cpp
similarity index 100%
rename from tf_fuzz/calls/security_call.cpp
rename to tf_fuzz/tfz-cpp/calls/security_call.cpp
diff --git a/tf_fuzz/calls/security_call.hpp b/tf_fuzz/tfz-cpp/calls/security_call.hpp
similarity index 100%
rename from tf_fuzz/calls/security_call.hpp
rename to tf_fuzz/tfz-cpp/calls/security_call.hpp
diff --git a/tf_fuzz/calls/sst_call.cpp b/tf_fuzz/tfz-cpp/calls/sst_call.cpp
similarity index 100%
rename from tf_fuzz/calls/sst_call.cpp
rename to tf_fuzz/tfz-cpp/calls/sst_call.cpp
diff --git a/tf_fuzz/calls/sst_call.hpp b/tf_fuzz/tfz-cpp/calls/sst_call.hpp
similarity index 100%
rename from tf_fuzz/calls/sst_call.hpp
rename to tf_fuzz/tfz-cpp/calls/sst_call.hpp
diff --git a/tf_fuzz/class_forwards.hpp b/tf_fuzz/tfz-cpp/class_forwards.hpp
similarity index 100%
rename from tf_fuzz/class_forwards.hpp
rename to tf_fuzz/tfz-cpp/class_forwards.hpp
diff --git a/tf_fuzz/parser/README b/tf_fuzz/tfz-cpp/parser/README
similarity index 100%
rename from tf_fuzz/parser/README
rename to tf_fuzz/tfz-cpp/parser/README
diff --git a/tf_fuzz/parser/tf_fuzz_grammar.l b/tf_fuzz/tfz-cpp/parser/tf_fuzz_grammar.l
similarity index 100%
rename from tf_fuzz/parser/tf_fuzz_grammar.l
rename to tf_fuzz/tfz-cpp/parser/tf_fuzz_grammar.l
diff --git a/tf_fuzz/parser/tf_fuzz_grammar.y b/tf_fuzz/tfz-cpp/parser/tf_fuzz_grammar.y
similarity index 100%
rename from tf_fuzz/parser/tf_fuzz_grammar.y
rename to tf_fuzz/tfz-cpp/parser/tf_fuzz_grammar.y
diff --git a/tf_fuzz/regression/000001_set_sst_uid_data_expect_pass/check.py b/tf_fuzz/tfz-cpp/regression/000001_set_sst_uid_data_expect_pass/check.py
similarity index 100%
rename from tf_fuzz/regression/000001_set_sst_uid_data_expect_pass/check.py
rename to tf_fuzz/tfz-cpp/regression/000001_set_sst_uid_data_expect_pass/check.py
diff --git a/tf_fuzz/regression/000001_set_sst_uid_data_expect_pass/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000001_set_sst_uid_data_expect_pass/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000001_set_sst_uid_data_expect_pass/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000001_set_sst_uid_data_expect_pass/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000001_set_sst_uid_data_expect_pass/exp_test.c b/tf_fuzz/tfz-cpp/regression/000001_set_sst_uid_data_expect_pass/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000001_set_sst_uid_data_expect_pass/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000001_set_sst_uid_data_expect_pass/exp_test.c
diff --git a/tf_fuzz/regression/000001_set_sst_uid_data_expect_pass/template b/tf_fuzz/tfz-cpp/regression/000001_set_sst_uid_data_expect_pass/template
similarity index 100%
rename from tf_fuzz/regression/000001_set_sst_uid_data_expect_pass/template
rename to tf_fuzz/tfz-cpp/regression/000001_set_sst_uid_data_expect_pass/template
diff --git a/tf_fuzz/regression/000002_set_sst_name_data_expect_nothing/check.py b/tf_fuzz/tfz-cpp/regression/000002_set_sst_name_data_expect_nothing/check.py
similarity index 100%
rename from tf_fuzz/regression/000002_set_sst_name_data_expect_nothing/check.py
rename to tf_fuzz/tfz-cpp/regression/000002_set_sst_name_data_expect_nothing/check.py
diff --git a/tf_fuzz/regression/000002_set_sst_name_data_expect_nothing/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000002_set_sst_name_data_expect_nothing/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000002_set_sst_name_data_expect_nothing/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000002_set_sst_name_data_expect_nothing/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000002_set_sst_name_data_expect_nothing/exp_test.c b/tf_fuzz/tfz-cpp/regression/000002_set_sst_name_data_expect_nothing/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000002_set_sst_name_data_expect_nothing/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000002_set_sst_name_data_expect_nothing/exp_test.c
diff --git a/tf_fuzz/regression/000002_set_sst_name_data_expect_nothing/template b/tf_fuzz/tfz-cpp/regression/000002_set_sst_name_data_expect_nothing/template
similarity index 100%
rename from tf_fuzz/regression/000002_set_sst_name_data_expect_nothing/template
rename to tf_fuzz/tfz-cpp/regression/000002_set_sst_name_data_expect_nothing/template
diff --git a/tf_fuzz/regression/000003_set_sst_name_data/check.py b/tf_fuzz/tfz-cpp/regression/000003_set_sst_name_data/check.py
similarity index 100%
rename from tf_fuzz/regression/000003_set_sst_name_data/check.py
rename to tf_fuzz/tfz-cpp/regression/000003_set_sst_name_data/check.py
diff --git a/tf_fuzz/regression/000003_set_sst_name_data/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000003_set_sst_name_data/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000003_set_sst_name_data/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000003_set_sst_name_data/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000003_set_sst_name_data/exp_test.c b/tf_fuzz/tfz-cpp/regression/000003_set_sst_name_data/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000003_set_sst_name_data/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000003_set_sst_name_data/exp_test.c
diff --git a/tf_fuzz/regression/000003_set_sst_name_data/template b/tf_fuzz/tfz-cpp/regression/000003_set_sst_name_data/template
similarity index 100%
rename from tf_fuzz/regression/000003_set_sst_name_data/template
rename to tf_fuzz/tfz-cpp/regression/000003_set_sst_name_data/template
diff --git a/tf_fuzz/regression/000004_set_sst_name_rand_data/check.py b/tf_fuzz/tfz-cpp/regression/000004_set_sst_name_rand_data/check.py
similarity index 100%
rename from tf_fuzz/regression/000004_set_sst_name_rand_data/check.py
rename to tf_fuzz/tfz-cpp/regression/000004_set_sst_name_rand_data/check.py
diff --git a/tf_fuzz/regression/000004_set_sst_name_rand_data/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000004_set_sst_name_rand_data/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000004_set_sst_name_rand_data/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000004_set_sst_name_rand_data/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000004_set_sst_name_rand_data/exp_test.c b/tf_fuzz/tfz-cpp/regression/000004_set_sst_name_rand_data/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000004_set_sst_name_rand_data/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000004_set_sst_name_rand_data/exp_test.c
diff --git a/tf_fuzz/regression/000004_set_sst_name_rand_data/template b/tf_fuzz/tfz-cpp/regression/000004_set_sst_name_rand_data/template
similarity index 100%
rename from tf_fuzz/regression/000004_set_sst_name_rand_data/template
rename to tf_fuzz/tfz-cpp/regression/000004_set_sst_name_rand_data/template
diff --git a/tf_fuzz/regression/000005_set_sst_rand_name_rand_data/check.py b/tf_fuzz/tfz-cpp/regression/000005_set_sst_rand_name_rand_data/check.py
similarity index 100%
rename from tf_fuzz/regression/000005_set_sst_rand_name_rand_data/check.py
rename to tf_fuzz/tfz-cpp/regression/000005_set_sst_rand_name_rand_data/check.py
diff --git a/tf_fuzz/regression/000005_set_sst_rand_name_rand_data/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000005_set_sst_rand_name_rand_data/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000005_set_sst_rand_name_rand_data/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000005_set_sst_rand_name_rand_data/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000005_set_sst_rand_name_rand_data/exp_test.c b/tf_fuzz/tfz-cpp/regression/000005_set_sst_rand_name_rand_data/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000005_set_sst_rand_name_rand_data/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000005_set_sst_rand_name_rand_data/exp_test.c
diff --git a/tf_fuzz/regression/000005_set_sst_rand_name_rand_data/template b/tf_fuzz/tfz-cpp/regression/000005_set_sst_rand_name_rand_data/template
similarity index 100%
rename from tf_fuzz/regression/000005_set_sst_rand_name_rand_data/template
rename to tf_fuzz/tfz-cpp/regression/000005_set_sst_rand_name_rand_data/template
diff --git a/tf_fuzz/regression/000006_set_sst_multi_name_rand_data/check.py b/tf_fuzz/tfz-cpp/regression/000006_set_sst_multi_name_rand_data/check.py
similarity index 100%
rename from tf_fuzz/regression/000006_set_sst_multi_name_rand_data/check.py
rename to tf_fuzz/tfz-cpp/regression/000006_set_sst_multi_name_rand_data/check.py
diff --git a/tf_fuzz/regression/000006_set_sst_multi_name_rand_data/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000006_set_sst_multi_name_rand_data/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000006_set_sst_multi_name_rand_data/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000006_set_sst_multi_name_rand_data/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000006_set_sst_multi_name_rand_data/exp_test.c b/tf_fuzz/tfz-cpp/regression/000006_set_sst_multi_name_rand_data/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000006_set_sst_multi_name_rand_data/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000006_set_sst_multi_name_rand_data/exp_test.c
diff --git a/tf_fuzz/regression/000006_set_sst_multi_name_rand_data/template b/tf_fuzz/tfz-cpp/regression/000006_set_sst_multi_name_rand_data/template
similarity index 100%
rename from tf_fuzz/regression/000006_set_sst_multi_name_rand_data/template
rename to tf_fuzz/tfz-cpp/regression/000006_set_sst_multi_name_rand_data/template
diff --git a/tf_fuzz/regression/000007_set_sst_multi_uid_rand_data/check.py b/tf_fuzz/tfz-cpp/regression/000007_set_sst_multi_uid_rand_data/check.py
similarity index 100%
rename from tf_fuzz/regression/000007_set_sst_multi_uid_rand_data/check.py
rename to tf_fuzz/tfz-cpp/regression/000007_set_sst_multi_uid_rand_data/check.py
diff --git a/tf_fuzz/regression/000007_set_sst_multi_uid_rand_data/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000007_set_sst_multi_uid_rand_data/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000007_set_sst_multi_uid_rand_data/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000007_set_sst_multi_uid_rand_data/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000007_set_sst_multi_uid_rand_data/exp_test.c b/tf_fuzz/tfz-cpp/regression/000007_set_sst_multi_uid_rand_data/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000007_set_sst_multi_uid_rand_data/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000007_set_sst_multi_uid_rand_data/exp_test.c
diff --git a/tf_fuzz/regression/000007_set_sst_multi_uid_rand_data/template b/tf_fuzz/tfz-cpp/regression/000007_set_sst_multi_uid_rand_data/template
similarity index 100%
rename from tf_fuzz/regression/000007_set_sst_multi_uid_rand_data/template
rename to tf_fuzz/tfz-cpp/regression/000007_set_sst_multi_uid_rand_data/template
diff --git a/tf_fuzz/regression/000008_set_sst_name_rand_data_read_check_wrong/check.py b/tf_fuzz/tfz-cpp/regression/000008_set_sst_name_rand_data_read_check_wrong/check.py
similarity index 100%
rename from tf_fuzz/regression/000008_set_sst_name_rand_data_read_check_wrong/check.py
rename to tf_fuzz/tfz-cpp/regression/000008_set_sst_name_rand_data_read_check_wrong/check.py
diff --git a/tf_fuzz/regression/000008_set_sst_name_rand_data_read_check_wrong/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000008_set_sst_name_rand_data_read_check_wrong/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000008_set_sst_name_rand_data_read_check_wrong/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000008_set_sst_name_rand_data_read_check_wrong/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000008_set_sst_name_rand_data_read_check_wrong/exp_test.c b/tf_fuzz/tfz-cpp/regression/000008_set_sst_name_rand_data_read_check_wrong/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000008_set_sst_name_rand_data_read_check_wrong/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000008_set_sst_name_rand_data_read_check_wrong/exp_test.c
diff --git a/tf_fuzz/regression/000008_set_sst_name_rand_data_read_check_wrong/template b/tf_fuzz/tfz-cpp/regression/000008_set_sst_name_rand_data_read_check_wrong/template
similarity index 100%
rename from tf_fuzz/regression/000008_set_sst_name_rand_data_read_check_wrong/template
rename to tf_fuzz/tfz-cpp/regression/000008_set_sst_name_rand_data_read_check_wrong/template
diff --git a/tf_fuzz/regression/000009_set_sst_name_rand_data_read_check_var_read_print/check.py b/tf_fuzz/tfz-cpp/regression/000009_set_sst_name_rand_data_read_check_var_read_print/check.py
similarity index 100%
rename from tf_fuzz/regression/000009_set_sst_name_rand_data_read_check_var_read_print/check.py
rename to tf_fuzz/tfz-cpp/regression/000009_set_sst_name_rand_data_read_check_var_read_print/check.py
diff --git a/tf_fuzz/regression/000009_set_sst_name_rand_data_read_check_var_read_print/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000009_set_sst_name_rand_data_read_check_var_read_print/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000009_set_sst_name_rand_data_read_check_var_read_print/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000009_set_sst_name_rand_data_read_check_var_read_print/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000009_set_sst_name_rand_data_read_check_var_read_print/exp_test.c b/tf_fuzz/tfz-cpp/regression/000009_set_sst_name_rand_data_read_check_var_read_print/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000009_set_sst_name_rand_data_read_check_var_read_print/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000009_set_sst_name_rand_data_read_check_var_read_print/exp_test.c
diff --git a/tf_fuzz/regression/000009_set_sst_name_rand_data_read_check_var_read_print/template b/tf_fuzz/tfz-cpp/regression/000009_set_sst_name_rand_data_read_check_var_read_print/template
similarity index 100%
rename from tf_fuzz/regression/000009_set_sst_name_rand_data_read_check_var_read_print/template
rename to tf_fuzz/tfz-cpp/regression/000009_set_sst_name_rand_data_read_check_var_read_print/template
diff --git a/tf_fuzz/regression/000010_read_nonexistent_sst_check_string/check.py b/tf_fuzz/tfz-cpp/regression/000010_read_nonexistent_sst_check_string/check.py
similarity index 100%
rename from tf_fuzz/regression/000010_read_nonexistent_sst_check_string/check.py
rename to tf_fuzz/tfz-cpp/regression/000010_read_nonexistent_sst_check_string/check.py
diff --git a/tf_fuzz/regression/000010_read_nonexistent_sst_check_string/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000010_read_nonexistent_sst_check_string/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000010_read_nonexistent_sst_check_string/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000010_read_nonexistent_sst_check_string/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000010_read_nonexistent_sst_check_string/exp_test.c b/tf_fuzz/tfz-cpp/regression/000010_read_nonexistent_sst_check_string/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000010_read_nonexistent_sst_check_string/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000010_read_nonexistent_sst_check_string/exp_test.c
diff --git a/tf_fuzz/regression/000010_read_nonexistent_sst_check_string/template b/tf_fuzz/tfz-cpp/regression/000010_read_nonexistent_sst_check_string/template
similarity index 100%
rename from tf_fuzz/regression/000010_read_nonexistent_sst_check_string/template
rename to tf_fuzz/tfz-cpp/regression/000010_read_nonexistent_sst_check_string/template
diff --git a/tf_fuzz/regression/000011_read_nonexistent_sst_check_string_expect_pass/check.py b/tf_fuzz/tfz-cpp/regression/000011_read_nonexistent_sst_check_string_expect_pass/check.py
similarity index 100%
rename from tf_fuzz/regression/000011_read_nonexistent_sst_check_string_expect_pass/check.py
rename to tf_fuzz/tfz-cpp/regression/000011_read_nonexistent_sst_check_string_expect_pass/check.py
diff --git a/tf_fuzz/regression/000011_read_nonexistent_sst_check_string_expect_pass/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000011_read_nonexistent_sst_check_string_expect_pass/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000011_read_nonexistent_sst_check_string_expect_pass/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000011_read_nonexistent_sst_check_string_expect_pass/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000011_read_nonexistent_sst_check_string_expect_pass/exp_test.c b/tf_fuzz/tfz-cpp/regression/000011_read_nonexistent_sst_check_string_expect_pass/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000011_read_nonexistent_sst_check_string_expect_pass/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000011_read_nonexistent_sst_check_string_expect_pass/exp_test.c
diff --git a/tf_fuzz/regression/000011_read_nonexistent_sst_check_string_expect_pass/template b/tf_fuzz/tfz-cpp/regression/000011_read_nonexistent_sst_check_string_expect_pass/template
similarity index 100%
rename from tf_fuzz/regression/000011_read_nonexistent_sst_check_string_expect_pass/template
rename to tf_fuzz/tfz-cpp/regression/000011_read_nonexistent_sst_check_string_expect_pass/template
diff --git a/tf_fuzz/regression/000012_read_nonexistent_sst_check_string_expect_other/check.py b/tf_fuzz/tfz-cpp/regression/000012_read_nonexistent_sst_check_string_expect_other/check.py
similarity index 100%
rename from tf_fuzz/regression/000012_read_nonexistent_sst_check_string_expect_other/check.py
rename to tf_fuzz/tfz-cpp/regression/000012_read_nonexistent_sst_check_string_expect_other/check.py
diff --git a/tf_fuzz/regression/000012_read_nonexistent_sst_check_string_expect_other/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000012_read_nonexistent_sst_check_string_expect_other/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000012_read_nonexistent_sst_check_string_expect_other/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000012_read_nonexistent_sst_check_string_expect_other/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000012_read_nonexistent_sst_check_string_expect_other/exp_test.c b/tf_fuzz/tfz-cpp/regression/000012_read_nonexistent_sst_check_string_expect_other/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000012_read_nonexistent_sst_check_string_expect_other/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000012_read_nonexistent_sst_check_string_expect_other/exp_test.c
diff --git a/tf_fuzz/regression/000012_read_nonexistent_sst_check_string_expect_other/template b/tf_fuzz/tfz-cpp/regression/000012_read_nonexistent_sst_check_string_expect_other/template
similarity index 100%
rename from tf_fuzz/regression/000012_read_nonexistent_sst_check_string_expect_other/template
rename to tf_fuzz/tfz-cpp/regression/000012_read_nonexistent_sst_check_string_expect_other/template
diff --git a/tf_fuzz/regression/000013_set_sst_name_rand_data_remove_twice/check.py b/tf_fuzz/tfz-cpp/regression/000013_set_sst_name_rand_data_remove_twice/check.py
similarity index 100%
rename from tf_fuzz/regression/000013_set_sst_name_rand_data_remove_twice/check.py
rename to tf_fuzz/tfz-cpp/regression/000013_set_sst_name_rand_data_remove_twice/check.py
diff --git a/tf_fuzz/regression/000013_set_sst_name_rand_data_remove_twice/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000013_set_sst_name_rand_data_remove_twice/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000013_set_sst_name_rand_data_remove_twice/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000013_set_sst_name_rand_data_remove_twice/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000013_set_sst_name_rand_data_remove_twice/exp_test.c b/tf_fuzz/tfz-cpp/regression/000013_set_sst_name_rand_data_remove_twice/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000013_set_sst_name_rand_data_remove_twice/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000013_set_sst_name_rand_data_remove_twice/exp_test.c
diff --git a/tf_fuzz/regression/000013_set_sst_name_rand_data_remove_twice/template b/tf_fuzz/tfz-cpp/regression/000013_set_sst_name_rand_data_remove_twice/template
similarity index 100%
rename from tf_fuzz/regression/000013_set_sst_name_rand_data_remove_twice/template
rename to tf_fuzz/tfz-cpp/regression/000013_set_sst_name_rand_data_remove_twice/template
diff --git a/tf_fuzz/regression/000014_set_sst_name_rand_data_remove_other/check.py b/tf_fuzz/tfz-cpp/regression/000014_set_sst_name_rand_data_remove_other/check.py
similarity index 100%
rename from tf_fuzz/regression/000014_set_sst_name_rand_data_remove_other/check.py
rename to tf_fuzz/tfz-cpp/regression/000014_set_sst_name_rand_data_remove_other/check.py
diff --git a/tf_fuzz/regression/000014_set_sst_name_rand_data_remove_other/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000014_set_sst_name_rand_data_remove_other/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000014_set_sst_name_rand_data_remove_other/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000014_set_sst_name_rand_data_remove_other/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000014_set_sst_name_rand_data_remove_other/exp_test.c b/tf_fuzz/tfz-cpp/regression/000014_set_sst_name_rand_data_remove_other/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000014_set_sst_name_rand_data_remove_other/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000014_set_sst_name_rand_data_remove_other/exp_test.c
diff --git a/tf_fuzz/regression/000014_set_sst_name_rand_data_remove_other/template b/tf_fuzz/tfz-cpp/regression/000014_set_sst_name_rand_data_remove_other/template
similarity index 100%
rename from tf_fuzz/regression/000014_set_sst_name_rand_data_remove_other/template
rename to tf_fuzz/tfz-cpp/regression/000014_set_sst_name_rand_data_remove_other/template
diff --git a/tf_fuzz/regression/000015_set_sst_name_only/check.py b/tf_fuzz/tfz-cpp/regression/000015_set_sst_name_only/check.py
similarity index 100%
rename from tf_fuzz/regression/000015_set_sst_name_only/check.py
rename to tf_fuzz/tfz-cpp/regression/000015_set_sst_name_only/check.py
diff --git a/tf_fuzz/regression/000015_set_sst_name_only/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000015_set_sst_name_only/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000015_set_sst_name_only/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000015_set_sst_name_only/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000015_set_sst_name_only/exp_test.c b/tf_fuzz/tfz-cpp/regression/000015_set_sst_name_only/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000015_set_sst_name_only/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000015_set_sst_name_only/exp_test.c
diff --git a/tf_fuzz/regression/000015_set_sst_name_only/template b/tf_fuzz/tfz-cpp/regression/000015_set_sst_name_only/template
similarity index 100%
rename from tf_fuzz/regression/000015_set_sst_name_only/template
rename to tf_fuzz/tfz-cpp/regression/000015_set_sst_name_only/template
diff --git a/tf_fuzz/regression/000016_set_sst_single_asset_set_multiple_times/check.py b/tf_fuzz/tfz-cpp/regression/000016_set_sst_single_asset_set_multiple_times/check.py
similarity index 100%
rename from tf_fuzz/regression/000016_set_sst_single_asset_set_multiple_times/check.py
rename to tf_fuzz/tfz-cpp/regression/000016_set_sst_single_asset_set_multiple_times/check.py
diff --git a/tf_fuzz/regression/000016_set_sst_single_asset_set_multiple_times/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000016_set_sst_single_asset_set_multiple_times/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000016_set_sst_single_asset_set_multiple_times/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000016_set_sst_single_asset_set_multiple_times/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000016_set_sst_single_asset_set_multiple_times/exp_test.c b/tf_fuzz/tfz-cpp/regression/000016_set_sst_single_asset_set_multiple_times/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000016_set_sst_single_asset_set_multiple_times/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000016_set_sst_single_asset_set_multiple_times/exp_test.c
diff --git a/tf_fuzz/regression/000016_set_sst_single_asset_set_multiple_times/template b/tf_fuzz/tfz-cpp/regression/000016_set_sst_single_asset_set_multiple_times/template
similarity index 100%
rename from tf_fuzz/regression/000016_set_sst_single_asset_set_multiple_times/template
rename to tf_fuzz/tfz-cpp/regression/000016_set_sst_single_asset_set_multiple_times/template
diff --git a/tf_fuzz/regression/000017_read_sst_check_single_asset_multiple_times/check.py b/tf_fuzz/tfz-cpp/regression/000017_read_sst_check_single_asset_multiple_times/check.py
similarity index 100%
rename from tf_fuzz/regression/000017_read_sst_check_single_asset_multiple_times/check.py
rename to tf_fuzz/tfz-cpp/regression/000017_read_sst_check_single_asset_multiple_times/check.py
diff --git a/tf_fuzz/regression/000017_read_sst_check_single_asset_multiple_times/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000017_read_sst_check_single_asset_multiple_times/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000017_read_sst_check_single_asset_multiple_times/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000017_read_sst_check_single_asset_multiple_times/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000017_read_sst_check_single_asset_multiple_times/exp_test.c b/tf_fuzz/tfz-cpp/regression/000017_read_sst_check_single_asset_multiple_times/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000017_read_sst_check_single_asset_multiple_times/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000017_read_sst_check_single_asset_multiple_times/exp_test.c
diff --git a/tf_fuzz/regression/000017_read_sst_check_single_asset_multiple_times/template b/tf_fuzz/tfz-cpp/regression/000017_read_sst_check_single_asset_multiple_times/template
similarity index 100%
rename from tf_fuzz/regression/000017_read_sst_check_single_asset_multiple_times/template
rename to tf_fuzz/tfz-cpp/regression/000017_read_sst_check_single_asset_multiple_times/template
diff --git a/tf_fuzz/regression/000018_000016_and_000017/check.py b/tf_fuzz/tfz-cpp/regression/000018_000016_and_000017/check.py
similarity index 100%
rename from tf_fuzz/regression/000018_000016_and_000017/check.py
rename to tf_fuzz/tfz-cpp/regression/000018_000016_and_000017/check.py
diff --git a/tf_fuzz/regression/000018_000016_and_000017/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000018_000016_and_000017/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000018_000016_and_000017/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000018_000016_and_000017/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000018_000016_and_000017/exp_test.c b/tf_fuzz/tfz-cpp/regression/000018_000016_and_000017/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000018_000016_and_000017/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000018_000016_and_000017/exp_test.c
diff --git a/tf_fuzz/regression/000018_000016_and_000017/template b/tf_fuzz/tfz-cpp/regression/000018_000016_and_000017/template
similarity index 100%
rename from tf_fuzz/regression/000018_000016_and_000017/template
rename to tf_fuzz/tfz-cpp/regression/000018_000016_and_000017/template
diff --git a/tf_fuzz/regression/000019_read_asset_to_variable_set_other_asset/check.py b/tf_fuzz/tfz-cpp/regression/000019_read_asset_to_variable_set_other_asset/check.py
similarity index 100%
rename from tf_fuzz/regression/000019_read_asset_to_variable_set_other_asset/check.py
rename to tf_fuzz/tfz-cpp/regression/000019_read_asset_to_variable_set_other_asset/check.py
diff --git a/tf_fuzz/regression/000019_read_asset_to_variable_set_other_asset/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000019_read_asset_to_variable_set_other_asset/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000019_read_asset_to_variable_set_other_asset/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000019_read_asset_to_variable_set_other_asset/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000019_read_asset_to_variable_set_other_asset/exp_test.c b/tf_fuzz/tfz-cpp/regression/000019_read_asset_to_variable_set_other_asset/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000019_read_asset_to_variable_set_other_asset/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000019_read_asset_to_variable_set_other_asset/exp_test.c
diff --git a/tf_fuzz/regression/000019_read_asset_to_variable_set_other_asset/template b/tf_fuzz/tfz-cpp/regression/000019_read_asset_to_variable_set_other_asset/template
similarity index 100%
rename from tf_fuzz/regression/000019_read_asset_to_variable_set_other_asset/template
rename to tf_fuzz/tfz-cpp/regression/000019_read_asset_to_variable_set_other_asset/template
diff --git a/tf_fuzz/regression/000020_no_purpose/check.py b/tf_fuzz/tfz-cpp/regression/000020_no_purpose/check.py
similarity index 100%
rename from tf_fuzz/regression/000020_no_purpose/check.py
rename to tf_fuzz/tfz-cpp/regression/000020_no_purpose/check.py
diff --git a/tf_fuzz/regression/000020_no_purpose/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000020_no_purpose/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000020_no_purpose/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000020_no_purpose/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000020_no_purpose/exp_test.c b/tf_fuzz/tfz-cpp/regression/000020_no_purpose/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000020_no_purpose/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000020_no_purpose/exp_test.c
diff --git a/tf_fuzz/regression/000020_no_purpose/template b/tf_fuzz/tfz-cpp/regression/000020_no_purpose/template
similarity index 100%
rename from tf_fuzz/regression/000020_no_purpose/template
rename to tf_fuzz/tfz-cpp/regression/000020_no_purpose/template
diff --git a/tf_fuzz/regression/000021_abbreviated_result_codes/check.py b/tf_fuzz/tfz-cpp/regression/000021_abbreviated_result_codes/check.py
similarity index 100%
rename from tf_fuzz/regression/000021_abbreviated_result_codes/check.py
rename to tf_fuzz/tfz-cpp/regression/000021_abbreviated_result_codes/check.py
diff --git a/tf_fuzz/regression/000021_abbreviated_result_codes/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000021_abbreviated_result_codes/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000021_abbreviated_result_codes/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000021_abbreviated_result_codes/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000021_abbreviated_result_codes/exp_test.c b/tf_fuzz/tfz-cpp/regression/000021_abbreviated_result_codes/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000021_abbreviated_result_codes/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000021_abbreviated_result_codes/exp_test.c
diff --git a/tf_fuzz/regression/000021_abbreviated_result_codes/template b/tf_fuzz/tfz-cpp/regression/000021_abbreviated_result_codes/template
similarity index 100%
rename from tf_fuzz/regression/000021_abbreviated_result_codes/template
rename to tf_fuzz/tfz-cpp/regression/000021_abbreviated_result_codes/template
diff --git a/tf_fuzz/regression/000022_SST_offset/check.py b/tf_fuzz/tfz-cpp/regression/000022_SST_offset/check.py
similarity index 100%
rename from tf_fuzz/regression/000022_SST_offset/check.py
rename to tf_fuzz/tfz-cpp/regression/000022_SST_offset/check.py
diff --git a/tf_fuzz/regression/000022_SST_offset/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000022_SST_offset/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000022_SST_offset/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000022_SST_offset/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000022_SST_offset/exp_test.c b/tf_fuzz/tfz-cpp/regression/000022_SST_offset/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000022_SST_offset/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000022_SST_offset/exp_test.c
diff --git a/tf_fuzz/regression/000022_SST_offset/template b/tf_fuzz/tfz-cpp/regression/000022_SST_offset/template
similarity index 100%
rename from tf_fuzz/regression/000022_SST_offset/template
rename to tf_fuzz/tfz-cpp/regression/000022_SST_offset/template
diff --git a/tf_fuzz/regression/000023_SST_creation_flags/check.py b/tf_fuzz/tfz-cpp/regression/000023_SST_creation_flags/check.py
similarity index 100%
rename from tf_fuzz/regression/000023_SST_creation_flags/check.py
rename to tf_fuzz/tfz-cpp/regression/000023_SST_creation_flags/check.py
diff --git a/tf_fuzz/regression/000023_SST_creation_flags/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000023_SST_creation_flags/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000023_SST_creation_flags/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000023_SST_creation_flags/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000023_SST_creation_flags/exp_test.c b/tf_fuzz/tfz-cpp/regression/000023_SST_creation_flags/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000023_SST_creation_flags/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000023_SST_creation_flags/exp_test.c
diff --git a/tf_fuzz/regression/000023_SST_creation_flags/template b/tf_fuzz/tfz-cpp/regression/000023_SST_creation_flags/template
similarity index 100%
rename from tf_fuzz/regression/000023_SST_creation_flags/template
rename to tf_fuzz/tfz-cpp/regression/000023_SST_creation_flags/template
diff --git a/tf_fuzz/regression/000024_SST_write_once/check.py b/tf_fuzz/tfz-cpp/regression/000024_SST_write_once/check.py
similarity index 100%
rename from tf_fuzz/regression/000024_SST_write_once/check.py
rename to tf_fuzz/tfz-cpp/regression/000024_SST_write_once/check.py
diff --git a/tf_fuzz/regression/000024_SST_write_once/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/000024_SST_write_once/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/000024_SST_write_once/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/000024_SST_write_once/exp_stdout_stderr
diff --git a/tf_fuzz/regression/000024_SST_write_once/exp_test.c b/tf_fuzz/tfz-cpp/regression/000024_SST_write_once/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/000024_SST_write_once/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/000024_SST_write_once/exp_test.c
diff --git a/tf_fuzz/regression/000024_SST_write_once/template b/tf_fuzz/tfz-cpp/regression/000024_SST_write_once/template
similarity index 100%
rename from tf_fuzz/regression/000024_SST_write_once/template
rename to tf_fuzz/tfz-cpp/regression/000024_SST_write_once/template
diff --git a/tf_fuzz/regression/README b/tf_fuzz/tfz-cpp/regression/README
similarity index 100%
rename from tf_fuzz/regression/README
rename to tf_fuzz/tfz-cpp/regression/README
diff --git a/tf_fuzz/regression/add_these_tests/000015_set_sst_multi_name_remove_rand_active/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/add_these_tests/000015_set_sst_multi_name_remove_rand_active/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/add_these_tests/000015_set_sst_multi_name_remove_rand_active/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/add_these_tests/000015_set_sst_multi_name_remove_rand_active/exp_stdout_stderr
diff --git a/tf_fuzz/regression/add_these_tests/000015_set_sst_multi_name_remove_rand_active/exp_test.c b/tf_fuzz/tfz-cpp/regression/add_these_tests/000015_set_sst_multi_name_remove_rand_active/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/add_these_tests/000015_set_sst_multi_name_remove_rand_active/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/add_these_tests/000015_set_sst_multi_name_remove_rand_active/exp_test.c
diff --git a/tf_fuzz/regression/add_these_tests/000015_set_sst_multi_name_remove_rand_active/template b/tf_fuzz/tfz-cpp/regression/add_these_tests/000015_set_sst_multi_name_remove_rand_active/template
similarity index 100%
rename from tf_fuzz/regression/add_these_tests/000015_set_sst_multi_name_remove_rand_active/template
rename to tf_fuzz/tfz-cpp/regression/add_these_tests/000015_set_sst_multi_name_remove_rand_active/template
diff --git a/tf_fuzz/regression/add_these_tests/000016_set_sst_multi_name_remove_multi_rand_active_remove_rand_deleted/exp_stdout_stderr b/tf_fuzz/tfz-cpp/regression/add_these_tests/000016_set_sst_multi_name_remove_multi_rand_active_remove_rand_deleted/exp_stdout_stderr
similarity index 100%
rename from tf_fuzz/regression/add_these_tests/000016_set_sst_multi_name_remove_multi_rand_active_remove_rand_deleted/exp_stdout_stderr
rename to tf_fuzz/tfz-cpp/regression/add_these_tests/000016_set_sst_multi_name_remove_multi_rand_active_remove_rand_deleted/exp_stdout_stderr
diff --git a/tf_fuzz/regression/add_these_tests/000016_set_sst_multi_name_remove_multi_rand_active_remove_rand_deleted/exp_test.c b/tf_fuzz/tfz-cpp/regression/add_these_tests/000016_set_sst_multi_name_remove_multi_rand_active_remove_rand_deleted/exp_test.c
similarity index 100%
rename from tf_fuzz/regression/add_these_tests/000016_set_sst_multi_name_remove_multi_rand_active_remove_rand_deleted/exp_test.c
rename to tf_fuzz/tfz-cpp/regression/add_these_tests/000016_set_sst_multi_name_remove_multi_rand_active_remove_rand_deleted/exp_test.c
diff --git a/tf_fuzz/regression/add_these_tests/000016_set_sst_multi_name_remove_multi_rand_active_remove_rand_deleted/template b/tf_fuzz/tfz-cpp/regression/add_these_tests/000016_set_sst_multi_name_remove_multi_rand_active_remove_rand_deleted/template
similarity index 100%
rename from tf_fuzz/regression/add_these_tests/000016_set_sst_multi_name_remove_multi_rand_active_remove_rand_deleted/template
rename to tf_fuzz/tfz-cpp/regression/add_these_tests/000016_set_sst_multi_name_remove_multi_rand_active_remove_rand_deleted/template
diff --git a/tf_fuzz/regression/regress b/tf_fuzz/tfz-cpp/regression/regress
similarity index 100%
rename from tf_fuzz/regression/regress
rename to tf_fuzz/tfz-cpp/regression/regress
diff --git a/tf_fuzz/regression/regress_lib/line_by_line.py b/tf_fuzz/tfz-cpp/regression/regress_lib/line_by_line.py
similarity index 100%
rename from tf_fuzz/regression/regress_lib/line_by_line.py
rename to tf_fuzz/tfz-cpp/regression/regress_lib/line_by_line.py
diff --git a/tf_fuzz/template/README b/tf_fuzz/tfz-cpp/template/README
similarity index 100%
rename from tf_fuzz/template/README
rename to tf_fuzz/tfz-cpp/template/README
diff --git a/tf_fuzz/template/crypto_template_line.cpp b/tf_fuzz/tfz-cpp/template/crypto_template_line.cpp
similarity index 100%
rename from tf_fuzz/template/crypto_template_line.cpp
rename to tf_fuzz/tfz-cpp/template/crypto_template_line.cpp
diff --git a/tf_fuzz/template/crypto_template_line.hpp b/tf_fuzz/tfz-cpp/template/crypto_template_line.hpp
similarity index 100%
rename from tf_fuzz/template/crypto_template_line.hpp
rename to tf_fuzz/tfz-cpp/template/crypto_template_line.hpp
diff --git a/tf_fuzz/template/secure_template_line.cpp b/tf_fuzz/tfz-cpp/template/secure_template_line.cpp
similarity index 100%
rename from tf_fuzz/template/secure_template_line.cpp
rename to tf_fuzz/tfz-cpp/template/secure_template_line.cpp
diff --git a/tf_fuzz/template/secure_template_line.hpp b/tf_fuzz/tfz-cpp/template/secure_template_line.hpp
similarity index 100%
rename from tf_fuzz/template/secure_template_line.hpp
rename to tf_fuzz/tfz-cpp/template/secure_template_line.hpp
diff --git a/tf_fuzz/template/sst_template_line.cpp b/tf_fuzz/tfz-cpp/template/sst_template_line.cpp
similarity index 100%
rename from tf_fuzz/template/sst_template_line.cpp
rename to tf_fuzz/tfz-cpp/template/sst_template_line.cpp
diff --git a/tf_fuzz/template/sst_template_line.hpp b/tf_fuzz/tfz-cpp/template/sst_template_line.hpp
similarity index 100%
rename from tf_fuzz/template/sst_template_line.hpp
rename to tf_fuzz/tfz-cpp/template/sst_template_line.hpp
diff --git a/tf_fuzz/template/template_line.cpp b/tf_fuzz/tfz-cpp/template/template_line.cpp
similarity index 100%
rename from tf_fuzz/template/template_line.cpp
rename to tf_fuzz/tfz-cpp/template/template_line.cpp
diff --git a/tf_fuzz/template/template_line.hpp b/tf_fuzz/tfz-cpp/template/template_line.hpp
similarity index 100%
rename from tf_fuzz/template/template_line.hpp
rename to tf_fuzz/tfz-cpp/template/template_line.hpp
diff --git a/tf_fuzz/tests/example_template b/tf_fuzz/tfz-cpp/tests/example_template
similarity index 100%
rename from tf_fuzz/tests/example_template
rename to tf_fuzz/tfz-cpp/tests/example_template
diff --git a/tf_fuzz/tests/sstReads b/tf_fuzz/tfz-cpp/tests/sstReads
similarity index 100%
rename from tf_fuzz/tests/sstReads
rename to tf_fuzz/tfz-cpp/tests/sstReads
diff --git a/tf_fuzz/tests/sstSets b/tf_fuzz/tfz-cpp/tests/sstSets
similarity index 100%
rename from tf_fuzz/tests/sstSets
rename to tf_fuzz/tfz-cpp/tests/sstSets
diff --git a/tf_fuzz/tf_fuzz.cpp b/tf_fuzz/tfz-cpp/tf_fuzz.cpp
similarity index 100%
rename from tf_fuzz/tf_fuzz.cpp
rename to tf_fuzz/tfz-cpp/tf_fuzz.cpp
diff --git a/tf_fuzz/tf_fuzz.hpp b/tf_fuzz/tfz-cpp/tf_fuzz.hpp
similarity index 100%
rename from tf_fuzz/tf_fuzz.hpp
rename to tf_fuzz/tfz-cpp/tf_fuzz.hpp
diff --git a/tf_fuzz/utility/README b/tf_fuzz/tfz-cpp/utility/README
similarity index 100%
rename from tf_fuzz/utility/README
rename to tf_fuzz/tfz-cpp/utility/README
diff --git a/tf_fuzz/utility/compute.cpp b/tf_fuzz/tfz-cpp/utility/compute.cpp
similarity index 100%
rename from tf_fuzz/utility/compute.cpp
rename to tf_fuzz/tfz-cpp/utility/compute.cpp
diff --git a/tf_fuzz/utility/compute.hpp b/tf_fuzz/tfz-cpp/utility/compute.hpp
similarity index 100%
rename from tf_fuzz/utility/compute.hpp
rename to tf_fuzz/tfz-cpp/utility/compute.hpp
diff --git a/tf_fuzz/utility/data_blocks.cpp b/tf_fuzz/tfz-cpp/utility/data_blocks.cpp
similarity index 100%
rename from tf_fuzz/utility/data_blocks.cpp
rename to tf_fuzz/tfz-cpp/utility/data_blocks.cpp
diff --git a/tf_fuzz/utility/data_blocks.hpp b/tf_fuzz/tfz-cpp/utility/data_blocks.hpp
similarity index 100%
rename from tf_fuzz/utility/data_blocks.hpp
rename to tf_fuzz/tfz-cpp/utility/data_blocks.hpp
diff --git a/tf_fuzz/utility/find_or_create_asset.hpp b/tf_fuzz/tfz-cpp/utility/find_or_create_asset.hpp
similarity index 100%
rename from tf_fuzz/utility/find_or_create_asset.hpp
rename to tf_fuzz/tfz-cpp/utility/find_or_create_asset.hpp
diff --git a/tf_fuzz/utility/gibberish.cpp b/tf_fuzz/tfz-cpp/utility/gibberish.cpp
similarity index 100%
rename from tf_fuzz/utility/gibberish.cpp
rename to tf_fuzz/tfz-cpp/utility/gibberish.cpp
diff --git a/tf_fuzz/utility/gibberish.hpp b/tf_fuzz/tfz-cpp/utility/gibberish.hpp
similarity index 100%
rename from tf_fuzz/utility/gibberish.hpp
rename to tf_fuzz/tfz-cpp/utility/gibberish.hpp
diff --git a/tf_fuzz/utility/randomization.cpp b/tf_fuzz/tfz-cpp/utility/randomization.cpp
similarity index 100%
rename from tf_fuzz/utility/randomization.cpp
rename to tf_fuzz/tfz-cpp/utility/randomization.cpp
diff --git a/tf_fuzz/utility/randomization.hpp b/tf_fuzz/tfz-cpp/utility/randomization.hpp
similarity index 100%
rename from tf_fuzz/utility/randomization.hpp
rename to tf_fuzz/tfz-cpp/utility/randomization.hpp
diff --git a/tf_fuzz/utility/string_ops.cpp b/tf_fuzz/tfz-cpp/utility/string_ops.cpp
similarity index 100%
rename from tf_fuzz/utility/string_ops.cpp
rename to tf_fuzz/tfz-cpp/utility/string_ops.cpp
diff --git a/tf_fuzz/utility/string_ops.hpp b/tf_fuzz/tfz-cpp/utility/string_ops.hpp
similarity index 100%
rename from tf_fuzz/utility/string_ops.hpp
rename to tf_fuzz/tfz-cpp/utility/string_ops.hpp
diff --git a/tf_fuzz/utility/variables.cpp b/tf_fuzz/tfz-cpp/utility/variables.cpp
similarity index 100%
rename from tf_fuzz/utility/variables.cpp
rename to tf_fuzz/tfz-cpp/utility/variables.cpp
diff --git a/tf_fuzz/utility/variables.hpp b/tf_fuzz/tfz-cpp/utility/variables.hpp
similarity index 100%
rename from tf_fuzz/utility/variables.hpp
rename to tf_fuzz/tfz-cpp/utility/variables.hpp
diff --git a/tf_fuzz/visualStudio/README b/tf_fuzz/tfz-cpp/visualStudio/README
similarity index 100%
rename from tf_fuzz/visualStudio/README
rename to tf_fuzz/tfz-cpp/visualStudio/README
diff --git a/tf_fuzz/visualStudio/unistd.c b/tf_fuzz/tfz-cpp/visualStudio/unistd.c
similarity index 100%
rename from tf_fuzz/visualStudio/unistd.c
rename to tf_fuzz/tfz-cpp/visualStudio/unistd.c
diff --git a/tf_fuzz/visualStudio/unistd.h b/tf_fuzz/tfz-cpp/visualStudio/unistd.h
similarity index 100%
rename from tf_fuzz/visualStudio/unistd.h
rename to tf_fuzz/tfz-cpp/visualStudio/unistd.h
diff --git a/tf_fuzz/tfz-suitegen/pyproject.toml b/tf_fuzz/tfz-suitegen/pyproject.toml
new file mode 100644
index 0000000..0a872d5
--- /dev/null
+++ b/tf_fuzz/tfz-suitegen/pyproject.toml
@@ -0,0 +1,13 @@
+#  Copyright (c) 2024 Arm Limited. All Rights Reserved.
+#
+#  SPDX-License-Identifier: BSD-3-Clause
+
+[build-system]
+requires = ["setuptools>=61.0"]
+build-backend = "setuptools.build_meta"
+[project]
+name = "tfz-suitegen"
+version = "0.0.1"
+description = "Suite generator for the TF-Fuzz tool"
+requires-python = ">=3.8"
+dependencies = ["jinja2>=3.1"]
diff --git a/tf_fuzz/tfz-suitegen/src/tfz-suitegen/__init__.py b/tf_fuzz/tfz-suitegen/src/tfz-suitegen/__init__.py
new file mode 100644
index 0000000..3511107
--- /dev/null
+++ b/tf_fuzz/tfz-suitegen/src/tfz-suitegen/__init__.py
@@ -0,0 +1,3 @@
+#  Copyright (c) 2024 Arm Limited. All Rights Reserved.
+#
+#  SPDX-License-Identifier: BSD-3-Clause
diff --git a/tf_fuzz/tfz-suitegen/src/tfz-suitegen/__main__.py b/tf_fuzz/tfz-suitegen/src/tfz-suitegen/__main__.py
new file mode 100644
index 0000000..3511107
--- /dev/null
+++ b/tf_fuzz/tfz-suitegen/src/tfz-suitegen/__main__.py
@@ -0,0 +1,3 @@
+#  Copyright (c) 2024 Arm Limited. All Rights Reserved.
+#
+#  SPDX-License-Identifier: BSD-3-Clause