diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-03-17 08:42:38 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-03-17 09:06:48 -0700 |
commit | b1bbe92da37dd44df458ffa122e052612bb9eff3 (patch) | |
tree | 976cde85c97d4877eb8c1e5151a919406fdd1049 /cpp/023transform | |
parent | c062697c9ff3c8cb0938f56bed3df2af3d122bd6 (diff) | |
download | mu-b1bbe92da37dd44df458ffa122e052612bb9eff3.tar.gz |
945 - move 'transform' layer to before 'run'
Diffstat (limited to 'cpp/023transform')
-rw-r--r-- | cpp/023transform | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/cpp/023transform b/cpp/023transform deleted file mode 100644 index faada76e..00000000 --- a/cpp/023transform +++ /dev/null @@ -1,36 +0,0 @@ -//: Let's start making mu more ergonomic to use. We'll create a list of tools -//: that each transform a recipe. Anybody can add to the list. -//: -//: The hope is that this framework of transform tools will provide a -//: deconstructed alternative to conventional compilers. - -:(replace{} "void run(string form)") -void run(string form) { - vector<recipe_number> tmp = add_recipes(form); - recipes_added_by_test.insert(recipes_added_by_test.end(), tmp.begin(), tmp.end()); - transform_all(); - run(recipes_added_by_test.front()); -} - -:(before "End Recipe Fields") -size_t transformed_until; - recipe() :transformed_until(-1) {} - -:(before "End Types") -typedef void (*transform_fn)(recipe_number); - -:(before "End Globals") -vector<transform_fn> Transform; - -:(code) -void transform_all() { - for (size_t t = 0; t < Transform.size(); ++t) { - for (unordered_map<recipe_number, recipe>::iterator p = Recipe.begin(); p != Recipe.end(); ++p) { - recipe& r = p->second; - if (r.steps.empty()) continue; - if (r.transformed_until != t-1) continue; - (*Transform[t])(/*recipe_number*/p->first); - r.transformed_until = t; - } - } -} |