diff options
Diffstat (limited to '045closure_name.cc')
-rw-r--r-- | 045closure_name.cc | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/045closure_name.cc b/045closure_name.cc index 682c163f..714d14d1 100644 --- a/045closure_name.cc +++ b/045closure_name.cc @@ -5,22 +5,22 @@ :(scenario closure) recipe main [ - default-space:address:array:location <- new location:type, 30 - 1:address:array:location/names:new-counter <- new-counter - 2:number/raw <- increment-counter 1:address:array:location/names:new-counter - 3:number/raw <- increment-counter 1:address:array:location/names:new-counter + default-space:address:shared:array:location <- new location:type, 30 + 1:address:shared:array:location/names:new-counter <- new-counter + 2:number/raw <- increment-counter 1:address:shared:array:location/names:new-counter + 3:number/raw <- increment-counter 1:address:shared:array:location/names:new-counter ] recipe new-counter [ - default-space:address:array:location <- new location:type, 30 + default-space:address:shared:array:location <- new location:type, 30 x:number <- copy 23 y:number <- copy 3 # variable that will be incremented - reply default-space:address:array:location + reply default-space:address:shared:array:location ] recipe increment-counter [ - default-space:address:array:location <- new location:type, 30 - 0:address:array:location/names:new-counter <- next-ingredient # outer space must be created by 'new-counter' above + default-space:address:shared:array:location <- new location:type, 30 + 0:address:shared:array:location/names:new-counter <- next-ingredient # outer space must be created by 'new-counter' above y:number/space:1 <- add y:number/space:1, 1 # increment y:number <- copy 234 # dummy reply y:number/space:1 @@ -52,11 +52,13 @@ void collect_surrounding_spaces(const recipe_ordinal r) { if (!type || type->value != get(Type_ordinal, "address") || !type->right - || type->right->value != get(Type_ordinal, "array") + || type->right->value != get(Type_ordinal, "shared") || !type->right->right - || type->right->right->value != get(Type_ordinal, "location") - || type->right->right->right) { - raise_error << "slot 0 should always have type address:array:location, but is " << inst.products.at(j).to_string() << '\n' << end(); + || type->right->right->value != get(Type_ordinal, "array") + || !type->right->right->right + || type->right->right->right->value != get(Type_ordinal, "location") + || type->right->right->right->right) { + raise_error << "slot 0 should always have type address:shared:array:location, but is " << inst.products.at(j).to_string() << '\n' << end(); continue; } string_tree* s = property(inst.products.at(j), "names"); |