From 9570363aec35e187e2395b1760a4b94e71580ac9 Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Wed, 29 Jul 2015 15:55:05 -0700 Subject: 1885 --- html/035call_ingredient.cc.html | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) (limited to 'html/035call_ingredient.cc.html') diff --git a/html/035call_ingredient.cc.html b/html/035call_ingredient.cc.html index 357f1178..14c718a6 100644 --- a/html/035call_ingredient.cc.html +++ b/html/035call_ingredient.cc.html @@ -13,14 +13,13 @@ pre { white-space: pre-wrap; font-family: monospace; color: #eeeeee; background-color: #080808; } body { font-family: monospace; color: #eeeeee; background-color: #080808; } * { font-size: 1.05em; } +.traceContains { color: #008000; } .cSpecial { color: #008000; } .Constant { color: #00a0a0; } -.Normal { color: #eeeeee; background-color: #080808; padding-bottom: 1px; } .Comment { color: #9090ff; } .Delimiter { color: #a04060; } .Special { color: #ff6060; } .Identifier { color: #804000; } -.traceContains { color: #008000; } --> @@ -37,11 +36,11 @@ body { font-family: monospace; color: #eeeeee; background-color: #080808; } :(scenario next_ingredient) recipe main [ - f 2:literal + f 2 ] recipe f [ 12:number <- next-ingredient - 13:number <- add 1:literal, 12:number + 13:number <- add 1, 12:number ] +mem: storing 3 in location 13 @@ -55,13 +54,13 @@ recipe f [ +mem: storing 0 in location 12 :(before "End call Fields") -vector<vector<double> > ingredient_atoms; -long long int next_ingredient_to_process; +vector<vector<double> > ingredient_atoms; +long long int next_ingredient_to_process; :(before "End call Constructor") next_ingredient_to_process = 0; :(after "call_housekeeping:") -for (long long int i = 0; i < SIZE(ingredients); ++i) { +for (long long int i = 0; i < SIZE(ingredients); ++i) { Current_routine->calls.front().ingredient_atoms.push_back(ingredients.at(i)); } @@ -70,20 +69,20 @@ NEXT_INGREDIENT, :(before "End Primitive Recipe Numbers") Recipe_ordinal["next-ingredient"] = NEXT_INGREDIENT; :(before "End Primitive Recipe Implementations") -case NEXT_INGREDIENT: { - if (!ingredients.empty()) { +case NEXT_INGREDIENT: { + if (!ingredients.empty()) { raise << current_recipe_name() << ": 'next-ingredient' didn't expect any ingredients in '" << current_instruction().to_string() << "'\n" << end(); break; } assert(!Current_routine->calls.empty()); - if (Current_routine->calls.front().next_ingredient_to_process < SIZE(Current_routine->calls.front().ingredient_atoms)) { + if (Current_routine->calls.front().next_ingredient_to_process < SIZE(Current_routine->calls.front().ingredient_atoms)) { products.push_back( Current_routine->calls.front().ingredient_atoms.at(Current_routine->calls.front().next_ingredient_to_process)); assert(SIZE(products) == 1); products.resize(2); // push a new vector products.at(1).push_back(1); ++Current_routine->calls.front().next_ingredient_to_process; } - else { + else { products.resize(2); products.at(0).push_back(0); // todo: will fail noisily if we try to read a compound value products.at(1).push_back(0); @@ -93,7 +92,7 @@ Recipe_ordinal["next-ingredient"] = NEXT :(scenario rewind_ingredients) recipe main [ - f 2:literal + f 2 ] recipe f [ 12:number <- next-ingredient # consume ingredient @@ -111,17 +110,17 @@ REWIND_INGREDIENTS, :(before "End Primitive Recipe Numbers") Recipe_ordinal["rewind-ingredients"] = REWIND_INGREDIENTS; :(before "End Primitive Recipe Implementations") -case REWIND_INGREDIENTS: { +case REWIND_INGREDIENTS: { Current_routine->calls.front().next_ingredient_to_process = 0; break; } :(scenario ingredient) recipe main [ - f 1:literal, 2:literal + f 1, 2 ] recipe f [ - 12:number <- ingredient 1:literal # consume second ingredient first + 12:number <- ingredient 1 # consume second ingredient first 13:number, 1:boolean <- next-ingredient # next-ingredient tries to scan past that ] +mem: storing 2 in location 12 @@ -132,17 +131,17 @@ INGREDIENT, :(before "End Primitive Recipe Numbers") Recipe_ordinal["ingredient"] = INGREDIENT; :(before "End Primitive Recipe Implementations") -case INGREDIENT: { - if (SIZE(ingredients) != 1) { +case INGREDIENT: { + if (SIZE(ingredients) != 1) { raise << current_recipe_name() << ": 'ingredient' expects exactly one ingredient, but got '" << current_instruction().to_string() << "'\n" << end(); break; } - if (!is_literal(current_instruction().ingredients.at(0))) { + if (!is_literal(current_instruction().ingredients.at(0))) { raise << current_recipe_name() << ": 'ingredient' expects a literal ingredient, but got " << current_instruction().ingredients.at(0).original_string << '\n' << end(); break; } assert(scalar(ingredients.at(0))); - if (static_cast<long long int>(ingredients.at(0).at(0)) < SIZE(Current_routine->calls.front().ingredient_atoms)) { + if (static_cast<long long int>(ingredients.at(0).at(0)) < SIZE(Current_routine->calls.front().ingredient_atoms)) { Current_routine->calls.front().next_ingredient_to_process = ingredients.at(0).at(0); products.push_back( Current_routine->calls.front().ingredient_atoms.at(Current_routine->calls.front().next_ingredient_to_process)); @@ -150,8 +149,8 @@ Recipe_ordinal["ingredient"] = INGREDIEN products.at(1).push_back(1); ++Current_routine->calls.front().next_ingredient_to_process; } - else { - if (SIZE(current_instruction().products) > 1) { + else { + if (SIZE(current_instruction().products) > 1) { products.resize(2); products.at(0).push_back(0); // todo: will fail noisily if we try to read a compound value products.at(1).push_back(0); -- cgit 1.4.1-2-gfad0