about summary refs log tree commit diff stats
path: root/032array.cc
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2016-02-17 10:09:48 -0800
committerKartik K. Agaram <vc@akkartik.com>2016-02-17 10:09:48 -0800
commit3adc9e08715fb695b8a7f53d5cfb3db1bd434b05 (patch)
tree2336287ac111e0038fd01391ea9d4c57fe9a3f2b /032array.cc
parent89500176d9ff86eedcc99c2d2d11b1ac96022c97 (diff)
downloadmu-3adc9e08715fb695b8a7f53d5cfb3db1bd434b05.tar.gz
2667 - redo container data structure
I've been gradually Greenspunning reagents. Just go all the way.
Diffstat (limited to '032array.cc')
-rw-r--r--032array.cc19
1 files changed, 11 insertions, 8 deletions
diff --git a/032array.cc b/032array.cc
index aace0a5a..b558d98f 100644
--- a/032array.cc
+++ b/032array.cc
@@ -134,14 +134,17 @@ container foo [
 +error: container 'foo' cannot determine size of element x
 
 :(before "End Load Container Element Definition")
-if (info.element_type_names.back()->value == "array") {
-  if (!info.element_type_names.back()->right) {
-    raise_error << "container '" << name << "' doesn't specify type of array elements for " << info.element_names.back() << '\n' << end();
-    continue;
-  }
-  if (!info.element_type_names.back()->right->right) {  // array has no length
-    raise_error << "container '" << name << "' cannot determine size of element " << info.element_names.back() << '\n' << end();
-    continue;
+{
+  const string_tree* type_name = info.elements.back().properties.at(0).second;
+  if (type_name->value == "array") {
+    if (!type_name->right) {
+      raise_error << "container '" << name << "' doesn't specify type of array elements for " << info.elements.back().name << '\n' << end();
+      continue;
+    }
+    if (!type_name->right->right) {  // array has no length
+      raise_error << "container '" << name << "' cannot determine size of element " << info.elements.back().name << '\n' << end();
+      continue;
+    }
   }
 }