diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-04-17 09:56:04 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-04-17 09:56:04 -0700 |
commit | 9da1b126cc017e14035b94c4615d211e5bc4bb21 (patch) | |
tree | a69baf5f6b75be08e68003a725d33cd478659b56 /cpp/022call_ingredient | |
parent | c8087de8d99a4c3c4264eb89e4d0b35a4fb2c816 (diff) | |
download | mu-9da1b126cc017e14035b94c4615d211e5bc4bb21.tar.gz |
1072
Diffstat (limited to 'cpp/022call_ingredient')
-rw-r--r-- | cpp/022call_ingredient | 44 |
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; -} |