diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2016-02-06 13:03:10 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2016-02-06 13:03:10 -0800 |
commit | 7153f7eafbfb80c22ebeb3c1967ebc3960daaa20 (patch) | |
tree | 65a3164943f28785996545b0cdc3b4953e7b655f | |
parent | b8ce12120ac310a20441b46d088010db03c3fa89 (diff) | |
download | mu-7153f7eafbfb80c22ebeb3c1967ebc3960daaa20.tar.gz |
2635
-rw-r--r-- | 010vm.cc | 1 | ||||
-rw-r--r-- | 030container.cc | 4 | ||||
-rw-r--r-- | 033exclusive_container.cc | 2 |
3 files changed, 7 insertions, 0 deletions
diff --git a/010vm.cc b/010vm.cc index af3bcc98..6fb897d0 100644 --- a/010vm.cc +++ b/010vm.cc @@ -179,6 +179,7 @@ struct type_info { kind_of_type kind; long long int size; // only if type is not primitive; primitives and addresses have size 1 (except arrays are dynamic) vector<type_tree*> elements; + vector<string_tree*> element_type_names; vector<string> element_names; // End type_info Fields type_info() :kind(PRIMITIVE), size(0) {} diff --git a/030container.cc b/030container.cc index 2164f376..c8b2134f 100644 --- a/030container.cc +++ b/030container.cc @@ -6,8 +6,10 @@ type_ordinal point = put(Type_ordinal, "point", Next_type_ordinal++); get_or_insert(Type, point).size = 2; get(Type, point).kind = CONTAINER; get(Type, point).name = "point"; +get(Type, point).element_type_names.push_back(new string_tree("number")); get(Type, point).elements.push_back(new type_tree(number)); get(Type, point).element_names.push_back("x"); +get(Type, point).element_type_names.push_back(new string_tree("number")); get(Type, point).elements.push_back(new type_tree(number)); get(Type, point).element_names.push_back("y"); @@ -42,8 +44,10 @@ get_or_insert(Type, point_number).size = 2; get(Type, point_number).kind = CONTAINER; get(Type, point_number).name = "point-number"; get(Type, point_number).elements.push_back(new type_tree(point)); +get(Type, point_number).element_type_names.push_back(new string_tree("point")); get(Type, point_number).element_names.push_back("xy"); get(Type, point_number).elements.push_back(new type_tree(number)); +get(Type, point_number).element_type_names.push_back(new string_tree("number")); get(Type, point_number).element_names.push_back("z"); :(scenario copy_handles_nested_container_elements) diff --git a/033exclusive_container.cc b/033exclusive_container.cc index 982330bb..e6da34f0 100644 --- a/033exclusive_container.cc +++ b/033exclusive_container.cc @@ -11,8 +11,10 @@ type_ordinal tmp = put(Type_ordinal, "number-or-point", Next_type_ordinal++); get_or_insert(Type, tmp).size = 2; get(Type, tmp).kind = EXCLUSIVE_CONTAINER; get(Type, tmp).name = "number-or-point"; +get(Type, tmp).element_type_names.push_back(new string_tree("number")); get(Type, tmp).elements.push_back(new type_tree(number)); get(Type, tmp).element_names.push_back("i"); +get(Type, tmp).element_type_names.push_back(new string_tree("point")); get(Type, tmp).elements.push_back(new type_tree(point)); get(Type, tmp).element_names.push_back("p"); } |