[submodule "modules/build-system"]
path = modules/build-system
url = https://github.com/mikedlowis/build-system.git
+[submodule "modules/atf"]
+ path = modules/atf
+ url = https://github.com/mikedlowis/atf.git
# Define the default compiler environment
base_env = BuildEnv.new do |env|
# Move the object files to the build dir
- env.build_dir('source','build/obj/source')
+ env.build_dir('source', 'build/obj/source')
+ env.build_dir('tests', 'build/obj/tests')
+ env.build_dir('modules', 'build/obj/modules')
+ # Setup include paths
+ env['CPPPATH'] += Dir['source/**/', 'modules/atf/source/']
end
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Test Build Targets
#------------------------------------------------------------------------------
-#if Opts[:profile].include? "test"
-# compiler_libs = ['build/lib/libparse-test.a'] + runtime_libs
-# test_env.Library('build/lib/libparse-test.a', FileList['source/libparse/*.c'])
-# test_env.Program('build/bin/sclpl-test', FileList['source/sclpl/*.c'] + compiler_libs)
-# test_env.Command('RSpec', [], 'CMD' => [
-# 'rspec', '--pattern', 'spec/**{,/*/**}/*_spec.rb', '--format', 'documentation'])
-#end
+if Opts[:profile].include? "test"
+ base_env.Program('build/test_atc.exe',
+ Dir['tests/*.c', 'modules/atf/source/*.c'] + ['build/libatc.a'])
+ base_env.Command('Unit Tests', [], 'CMD' => ['build/test_atc.exe'])
+end
--- /dev/null
+/**
+ @file splaytree.c
+ @brief See header for details
+*/
+#include "splaytree.h"
+#include <stdlib.h>
+
+splaytree_t* splaytree_create(comp_fn_t cfn)
+{
+ (void)cfn;
+ return NULL;
+}
+
+void splaytree_destroy(splaytree_t* tree)
+{
+ (void)tree;
+}
+
+void splaytree_insert(splaytree_t* tree)
+{
+ (void)tree;
+}
+
+uintptr_t splaytree_lookup(splaytree_t* tree, uintptr_t value)
+{
+ (void)tree;
+ (void)value;
+ return 0;
+}
+
+
--- /dev/null
+/**
+ @file splaytree.h
+ @brief TODO: Describe this file
+*/
+#ifndef SPLAYTREE_H
+#define SPLAYTREE_H
+
+#include <stdint.h>
+
+typedef struct node_t {
+ uintptr_t value;
+ struct node_t* parent;
+ struct node_t* left;
+ struct node_t* right;
+} node_t;
+
+typedef int (*comp_fn_t)(uintptr_t a, uintptr_t b);
+
+typedef struct splaytree_t {
+ comp_fn_t compare;
+ node_t* root;
+} splaytree_t;
+
+splaytree_t* splaytree_create(comp_fn_t cfn);
+
+void splaytree_destroy(splaytree_t* tree);
+
+void splaytree_insert(splaytree_t* tree);
+
+uintptr_t splaytree_lookup(splaytree_t* tree, uintptr_t value);
+
+#endif /* SPLAYTREE_H */