diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-04-03 10:33:17 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-04-03 10:33:17 -0700 |
commit | c027f09219b56aec206c63e981209b6423a5a9a5 (patch) | |
tree | a66fa5ee2ccb0ff212921057e5499ff0c861fde4 | |
parent | 3ae7e543047fe4351a5421519de277052a2bc240 (diff) | |
download | mu-c027f09219b56aec206c63e981209b6423a5a9a5.tar.gz |
1007
-rw-r--r-- | cpp/.traces/convert_names_passes_default_space | 3 | ||||
-rw-r--r-- | cpp/.traces/factorial | 4 | ||||
-rw-r--r-- | cpp/.traces/loop | 4 | ||||
-rw-r--r-- | cpp/.traces/set_default_space | 1 | ||||
-rw-r--r-- | cpp/.traces/surrounding_space | 1 | ||||
-rw-r--r-- | cpp/010vm | 7 | ||||
-rw-r--r-- | cpp/027space | 2 |
7 files changed, 11 insertions, 11 deletions
diff --git a/cpp/.traces/convert_names_passes_default_space b/cpp/.traces/convert_names_passes_default_space index 04a3ce44..d11e038c 100644 --- a/cpp/.traces/convert_names_passes_default_space +++ b/cpp/.traces/convert_names_passes_default_space @@ -1,10 +1,9 @@ parse/0: instruction: 1 parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} -parse/0: product: {name: "default_space", value: 0, type: 1, properties: ["default_space": "integer"]} +parse/0: product: {name: "default-space", value: 0, type: 1, properties: ["default-space": "integer"]} parse/0: product: {name: "x", value: 0, type: 1, properties: ["x": "integer"]} name/0: assign x 1 after-brace/0: recipe main after-brace/0: copy ... run/0: instruction main/0 run/0: ingredient 0 is 0 -mem/0: storing 0 in location 0 diff --git a/cpp/.traces/factorial b/cpp/.traces/factorial index 4b90d290..050b8bbe 100644 --- a/cpp/.traces/factorial +++ b/cpp/.traces/factorial @@ -34,8 +34,8 @@ after-brace/0: jump-if 3, 3:offset after-brace/0: multiply ... after-brace/0: subtract ... after-brace/0: jump -5:offset -after-brace/0: 7: {name: "", value: -5, type: } -after-brace/0: 7: {name: "", value: -5, type: } +after-brace/0: 7: {name: "", value: -5, type: , properties: ["": ]} +after-brace/0: 7: {name: "", value: -5, type: , properties: ["": ]} after-brace/0: copy ... run/0: instruction factorial/0 run/0: ingredient 0 is 5 diff --git a/cpp/.traces/loop b/cpp/.traces/loop index 4191e4df..11685d5d 100644 --- a/cpp/.traces/loop +++ b/cpp/.traces/loop @@ -17,5 +17,5 @@ after-brace/0: copy ... after-brace/0: copy ... after-brace/0: copy ... after-brace/0: jump -2:offset -after-brace/0: 4: {name: "", value: -2, type: } -after-brace/0: 4: {name: "", value: -2, type: } +after-brace/0: 4: {name: "", value: -2, type: , properties: ["": ]} +after-brace/0: 4: {name: "", value: -2, type: , properties: ["": ]} diff --git a/cpp/.traces/set_default_space b/cpp/.traces/set_default_space index 618aeb19..627719aa 100644 --- a/cpp/.traces/set_default_space +++ b/cpp/.traces/set_default_space @@ -7,7 +7,6 @@ parse/0: product: {name: "default-space", value: 0, type: 2-0, properties: ["d parse/0: instruction: 1 parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -name/0: assign default-space 1 after-brace/0: recipe main after-brace/0: copy ... after-brace/0: copy ... diff --git a/cpp/.traces/surrounding_space b/cpp/.traces/surrounding_space index 87391ba7..0f1371d5 100644 --- a/cpp/.traces/surrounding_space +++ b/cpp/.traces/surrounding_space @@ -16,7 +16,6 @@ parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: instruction: 1 parse/0: ingredient: {name: "33", value: 0, type: 0, properties: ["33": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer", "space": "1"]} -name/0: assign default-space 1 after-brace/0: recipe main after-brace/0: copy ... after-brace/0: copy ... diff --git a/cpp/010vm b/cpp/010vm index 39159e40..8363720c 100644 --- a/cpp/010vm +++ b/cpp/010vm @@ -173,7 +173,12 @@ void setup_recipes() { properties[0].second.push_back("literal-string"); } } - reagent::reagent() :value(0), initialized(false) {} + reagent::reagent() :value(0), initialized(false) { + // The first property is special, so ensure we always have it. + // Other properties can be pushed back, but the first must always be + // assigned to. + properties.push_back(pair<string, vector<string> >("", vector<string>())); + } string reagent::to_string() { ostringstream out; out << "{name: \"" << name << "\", value: " << value << ", type: "; diff --git a/cpp/027space b/cpp/027space index 11eb36c5..07ac5aa6 100644 --- a/cpp/027space +++ b/cpp/027space @@ -29,8 +29,6 @@ reagent absolutize(reagent x) { reagent r = x; r.set_value(address(r.value, space(r))); //? cout << "after absolutize: " << r.value << '\n'; //? 1 - if (r.properties.empty()) - r.properties.push_back(pair<string, vector<string> >("", vector<string>())); r.properties.push_back(pair<string, vector<string> >("raw", vector<string>())); assert(is_raw(r)); return r; |