about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--cpp/011load11
-rw-r--r--cpp/012run3
2 files changed, 8 insertions, 6 deletions
diff --git a/cpp/011load b/cpp/011load
index ac41ab44..707f9e59 100644
--- a/cpp/011load
+++ b/cpp/011load
@@ -9,14 +9,15 @@ recipe main [
 +parse:   product: {name: "1", type: 1}
 
 :(code)
-int add_recipes(string form) {
+vector<recipe_number> add_recipes(string form) {
   istringstream in(form);
-  int result = add_recipe(in);
-  while (!in.eof()) add_recipe(in);
+  vector<recipe_number> result;
+  while (!in.eof())
+    result.push_back(add_recipe(in));
   return result;
 }
 
-int add_recipe(istream& in) {
+recipe_number add_recipe(istream& in) {
   in >> std::noskipws;
   skip_comments_and_newlines(in);
   string _recipe = next_word(in);
@@ -31,7 +32,7 @@ int add_recipe(istream& in) {
 //?     raise << "empty recipe name in " << in.str() << '\n';
   if (Recipe_number.find(recipe_name) == Recipe_number.end())
     Recipe_number[recipe_name] = Next_recipe_number++;
-  int r = Recipe_number[recipe_name];
+  recipe_number r = Recipe_number[recipe_name];
 //?   cout << recipe_name << ": adding recipe " << r << '\n'; //? 3
 
   if (next_word(in) != "[")
diff --git a/cpp/012run b/cpp/012run
index 558a264d..42b5d477 100644
--- a/cpp/012run
+++ b/cpp/012run
@@ -28,7 +28,8 @@ struct routine {
 
 :(code)
 void run(string form) {
-  run(add_recipes(form));
+  vector<recipe_number> recipes_added = add_recipes(form);
+  run(recipes_added.front());
 }
 
 void run(recipe_number r) {
>157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210