diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-05-02 15:52:22 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-05-02 22:56:13 -0700 |
commit | 22b3069272c1a177e814a7c4e769e20858e2b368 (patch) | |
tree | 761199b26823fe5ba11af66108e95ece1bc4f02c /cpp/.traces/interpolate-at-start | |
parent | a316f1e4168a98ba8c1bbe7b091f8a7e7b3f03e6 (diff) | |
download | mu-22b3069272c1a177e814a7c4e769e20858e2b368.tar.gz |
1242 - simpler implementation for 'scenario'
Also now has the side effect that scenarios can have any number of 'run' or check or any future blocks, in any order.
Diffstat (limited to 'cpp/.traces/interpolate-at-start')
-rw-r--r-- | cpp/.traces/interpolate-at-start | 70 |
1 files changed, 63 insertions, 7 deletions
diff --git a/cpp/.traces/interpolate-at-start b/cpp/.traces/interpolate-at-start index 47c1d8c0..fb228fb8 100644 --- a/cpp/.traces/interpolate-at-start +++ b/cpp/.traces/interpolate-at-start @@ -1,3 +1,40 @@ +parse/0: instruction: run +parse/0: ingredient: {name: " + 1:address:array:character/raw <- new [_, hello!] + 2:address:array:character/raw <- new [abc] + 3:address:array:character/raw <- interpolate 1:address:array:character/raw, 2:address:array:character/raw + 4:array:character/raw <- copy 3:address:array:character/raw/deref + ", value: 0, type: 0, properties: [" + 1:address:array:character/raw <- new [_, hello!] + 2:address:array:character/raw <- new [abc] + 3:address:array:character/raw <- interpolate 1:address:array:character/raw, 2:address:array:character/raw + 4:array:character/raw <- copy 3:address:array:character/raw/deref + ": "literal-string"]} +parse/0: instruction: memory-should-contain +parse/0: ingredient: {name: " + 4:string <- [abc, hello!] + 16 <- 0 # out of bounds + ", value: 0, type: 0, properties: [" + 4:string <- [abc, hello!] + 16 <- 0 # out of bounds + ": "literal-string"]} +after-brace/0: recipe interpolate-at-start +after-brace/0: run ... +after-brace/0: memory-should-contain ... +new/0: routine allocated memory from 1000 to 101000 +schedule/0: interpolate-at-start +run/0: instruction interpolate-at-start/0 +run/0: run {name: " + 1:address:array:character/raw <- new [_, hello!] + 2:address:array:character/raw <- new [abc] + 3:address:array:character/raw <- interpolate 1:address:array:character/raw, 2:address:array:character/raw + 4:array:character/raw <- copy 3:address:array:character/raw/deref + ", value: 0, type: 0, properties: [" + 1:address:array:character/raw <- new [_, hello!] + 2:address:array:character/raw <- new [abc] + 3:address:array:character/raw <- interpolate 1:address:array:character/raw, 2:address:array:character/raw + 4:array:character/raw <- copy 3:address:array:character/raw/deref + ": "literal-string"]} parse/0: instruction: new parse/0: ingredient: {name: "_, hello!", value: 0, type: 0, properties: ["_, hello!": "literal-string"]} parse/0: product: {name: "1", value: 0, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} @@ -13,20 +50,18 @@ parse/0: ingredient: {name: "3", value: 0, type: 2-5-4, properties: ["3": "add parse/0: product: {name: "4", value: 0, type: 5-4, properties: ["4": "array":"character", "raw": ]} new/0: _, hello! -> 0 new/0: abc -> 0 -after-brace/0: recipe test-interpolate-at-start +after-brace/0: recipe tmp0 after-brace/0: new ... after-brace/0: new ... after-brace/0: interpolate ... after-brace/0: copy ... -new/0: routine allocated memory from 1000 to 101000 -schedule/0: test-interpolate-at-start -run/0: instruction test-interpolate-at-start/0 +run/0: instruction tmp0/0 run/0: {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} <- new {name: "_, hello!", value: 0, type: 0, properties: ["_, hello!": "literal-string"]} mem/0: storing 1000 in location 1 -run/0: instruction test-interpolate-at-start/1 +run/0: instruction tmp0/1 run/0: {name: "2", value: 2, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} <- new {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} mem/0: storing 1010 in location 2 -run/0: instruction test-interpolate-at-start/2 +run/0: instruction tmp0/2 run/0: {name: "3", value: 3, type: 2-5-4, properties: ["3": "address":"array":"character", "raw": ]} <- interpolate {name: "1", value: 1, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]}, {name: "2", value: 2, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} mem/0: location 1 is 1000 mem/0: location 2 is 1010 @@ -839,7 +874,7 @@ run/0: reply {name: "result", value: 7, type: 2-5-4, properties: ["result": "add mem/0: location 1022 is 1075 run/0: result 0 is 1075 mem/0: storing 1075 in location 3 -run/0: instruction test-interpolate-at-start/3 +run/0: instruction tmp0/3 run/0: {name: "4", value: 4, type: 5-4, properties: ["4": "array":"character", "raw": ]} <- copy {name: "3", value: 3, type: 2-5-4, properties: ["3": "address":"array":"character", "raw": , "deref": ]} run/0: ingredient 0 is 3 mem/0: location 3 is 1075 @@ -867,3 +902,24 @@ mem/0: storing 108 in location 12 mem/0: storing 108 in location 13 mem/0: storing 111 in location 14 mem/0: storing 33 in location 15 +run/0: instruction interpolate-at-start/1 +run/0: memory-should-contain {name: " + 4:string <- [abc, hello!] + 16 <- 0 # out of bounds + ", value: 0, type: 0, properties: [" + 4:string <- [abc, hello!] + 16 <- 0 # out of bounds + ": "literal-string"]} +run/0: checking array length at 4 +run/0: checking location 5 +run/0: checking location 6 +run/0: checking location 7 +run/0: checking location 8 +run/0: checking location 9 +run/0: checking location 10 +run/0: checking location 11 +run/0: checking location 12 +run/0: checking location 13 +run/0: checking location 14 +run/0: checking location 15 +run/0: checking location 16 |