about summary refs log tree commit diff stats
path: root/cpp/022call_ingredient
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2015-04-17 09:56:04 -0700
committerKartik K. Agaram <vc@akkartik.com>2015-04-17 09:56:04 -0700
commit9da1b126cc017e14035b94c4615d211e5bc4bb21 (patch)
treea69baf5f6b75be08e68003a725d33cd478659b56 /cpp/022call_ingredient
parentc8087de8d99a4c3c4264eb89e4d0b35a4fb2c816 (diff)
downloadmu-9da1b126cc017e14035b94c4615d211e5bc4bb21.tar.gz
1072
Diffstat (limited to 'cpp/022call_ingredient')
-rw-r--r--cpp/022call_ingredient44
1 files changed, 0 insertions, 44 deletions
diff --git a/cpp/022call_ingredient b/cpp/022call_ingredient
deleted file mode 100644
index 963c5fe8..00000000
--- a/cpp/022call_ingredient
+++ /dev/null
@@ -1,44 +0,0 @@
-//: Calls can take ingredients just like primitives. To access a recipe's
-//: ingredients, use 'next-ingredient'.
-:(scenario "next_ingredient")
-recipe main [
-  f 2:literal
-]
-recipe f [
-  12:integer <- next-ingredient
-  13:integer <- add 1:literal, 12:integer
-]
-+run: instruction f/1
-+mem: location 12 is 2
-+mem: storing 3 in location 13
-
-:(before "End call Fields")
-vector<vector<int> > ingredient_atoms;
-size_t next_ingredient_to_process;
-:(replace{} "call(recipe_number r)")
-call(recipe_number r) :running_recipe(r), pc(0), next_ingredient_to_process(0) {}
-
-:(replace "rr.calls.push(call(instructions[pc].operation))" following "End Primitive Recipe Implementations")
-call callee(instructions[pc].operation);
-for (vector<reagent>::iterator p = instructions[pc].ingredients.begin(); p != instructions[pc].ingredients.end(); ++p) {
-  callee.ingredient_atoms.push_back(read_memory(*p));
-}
-rr.calls.push(callee);
-
-:(before "End Globals")
-const int NEXT_INGREDIENT = 22;
-:(before "End Primitive Recipe Numbers")
-Recipe_number["next-ingredient"] = NEXT_INGREDIENT;
-assert(Next_recipe_number == NEXT_INGREDIENT);
-Next_recipe_number++;
-:(before "End Primitive Recipe Implementations")
-case NEXT_INGREDIENT: {
-  if (rr.calls.top().next_ingredient_to_process < rr.calls.top().ingredient_atoms.size()) {
-    trace("run") << "product 0 is "
-        << rr.calls.top().ingredient_atoms[rr.calls.top().next_ingredient_to_process][0];
-    write_memory(instructions[pc].products[0],
-        rr.calls.top().ingredient_atoms[rr.calls.top().next_ingredient_to_process]);
-    ++rr.calls.top().next_ingredient_to_process;
-  }
-  break;
-}