diff options
Diffstat (limited to 'cpp')
149 files changed, 476 insertions, 477 deletions
diff --git a/cpp/.traces/add b/cpp/.traces/add index 2c5b25d7..7af4bafe 100644 --- a/cpp/.traces/add +++ b/cpp/.traces/add @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 2 +parse/0: instruction: add parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/add_literal b/cpp/.traces/add_literal index 514fb805..3b55e4c0 100644 --- a/cpp/.traces/add_literal +++ b/cpp/.traces/add_literal @@ -1,4 +1,4 @@ -parse/0: instruction: 2 +parse/0: instruction: add parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} diff --git a/cpp/.traces/and b/cpp/.traces/and index 58acd4d5..37454d4a 100644 --- a/cpp/.traces/and +++ b/cpp/.traces/and @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 7 +parse/0: instruction: and parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/array-from-args b/cpp/.traces/array-from-args index d2b9380f..9dd11874 100644 --- a/cpp/.traces/array-from-args +++ b/cpp/.traces/array-from-args @@ -1,9 +1,9 @@ -parse/0: instruction: 114 +parse/0: instruction: init-array parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: product: {name: "1", value: 0, type: 2-5-1, properties: ["1": "address":"array":"location"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 2-5-1, properties: ["1": "address":"array":"location", "deref": ]} parse/0: product: {name: "2", value: 0, type: 5-1, properties: ["2": "array":"location"]} after-brace/0: recipe test-array-from-args diff --git a/cpp/.traces/array_length b/cpp/.traces/array_length index c42d8aa0..937d5d5c 100644 --- a/cpp/.traces/array_length +++ b/cpp/.traces/array_length @@ -1,16 +1,16 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "14", value: 0, type: 0, properties: ["14": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "15", value: 0, type: 0, properties: ["15": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "16", value: 0, type: 0, properties: ["16": "literal"]} parse/0: product: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} -parse/0: instruction: 24 +parse/0: instruction: length parse/0: ingredient: {name: "1", value: 0, type: 5-1, properties: ["1": "array":"integer"]} parse/0: product: {name: "5", value: 0, type: 1, properties: ["5": "integer"]} after-brace/0: recipe main diff --git a/cpp/.traces/assert b/cpp/.traces/assert index 78fcb823..ae903831 100644 --- a/cpp/.traces/assert +++ b/cpp/.traces/assert @@ -1,4 +1,4 @@ -parse/0: instruction: 19 +parse/0: instruction: assert parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: ingredient: {name: "this is an assert in mu", value: 0, type: 0, properties: ["this is an assert in mu": "literal-string"]} after-brace/0: recipe main diff --git a/cpp/.traces/brace_conversion b/cpp/.traces/brace_conversion index 639751a8..99c3b723 100644 --- a/cpp/.traces/brace_conversion +++ b/cpp/.traces/brace_conversion @@ -1,6 +1,6 @@ parse/0: label: { -parse/0: instruction: 32 -parse/0: instruction: 1 +parse/0: instruction: break +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: label: } diff --git a/cpp/.traces/brace_conversion_and_run b/cpp/.traces/brace_conversion_and_run index 65b150b9..72792c3e 100644 --- a/cpp/.traces/brace_conversion_and_run +++ b/cpp/.traces/brace_conversion_and_run @@ -1,27 +1,27 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "5", value: 0, type: 0, properties: ["5": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: label: { -parse/0: instruction: 13 +parse/0: instruction: equal parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "3", value: 0, type: 3, properties: ["3": "boolean"]} -parse/0: instruction: 33 +parse/0: instruction: break-if parse/0: ingredient: {name: "3", value: 0, type: 3, properties: ["3": "boolean"]} -parse/0: instruction: 4 +parse/0: instruction: multiply parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 3 +parse/0: instruction: subtract parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 35 +parse/0: instruction: loop parse/0: label: } -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} brace/0: 1000: push (open, 2) diff --git a/cpp/.traces/break_cascading b/cpp/.traces/break_cascading index 7cabc61b..c9c2dedd 100644 --- a/cpp/.traces/break_cascading +++ b/cpp/.traces/break_cascading @@ -1,11 +1,11 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: label: { -parse/0: instruction: 32 +parse/0: instruction: break parse/0: label: } parse/0: label: { -parse/0: instruction: 32 +parse/0: instruction: break parse/0: label: } brace/0: 1000: push (open, 1) brace/0: push (close, 3) diff --git a/cpp/.traces/break_cascading2 b/cpp/.traces/break_cascading2 index 76005d1c..636bf3d4 100644 --- a/cpp/.traces/break_cascading2 +++ b/cpp/.traces/break_cascading2 @@ -1,17 +1,17 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: label: { -parse/0: instruction: 32 -parse/0: instruction: 1 +parse/0: instruction: break +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} parse/0: label: } parse/0: label: { -parse/0: instruction: 32 +parse/0: instruction: break parse/0: label: } brace/0: 1000: push (open, 2) brace/0: push (close, 5) diff --git a/cpp/.traces/break_empty_block b/cpp/.traces/break_empty_block index 1b752c4d..f31738bb 100644 --- a/cpp/.traces/break_empty_block +++ b/cpp/.traces/break_empty_block @@ -1,8 +1,8 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: label: { -parse/0: instruction: 32 +parse/0: instruction: break parse/0: label: } brace/0: 1000: push (open, 1) brace/0: push (close, 3) diff --git a/cpp/.traces/break_if b/cpp/.traces/break_if index ad96ee07..109f95f4 100644 --- a/cpp/.traces/break_if +++ b/cpp/.traces/break_if @@ -1,18 +1,18 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: label: { -parse/0: instruction: 33 +parse/0: instruction: break-if parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} parse/0: label: } parse/0: label: { -parse/0: instruction: 32 +parse/0: instruction: break parse/0: label: } brace/0: 1000: push (open, 2) brace/0: push (close, 5) diff --git a/cpp/.traces/break_label b/cpp/.traces/break_label index 54cbc9a4..5dc39132 100644 --- a/cpp/.traces/break_label +++ b/cpp/.traces/break_label @@ -1,8 +1,8 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: label: { -parse/0: instruction: 32 +parse/0: instruction: break parse/0: ingredient: {name: "+foo", value: 0, type: 0, properties: ["+foo": "offset"]} parse/0: label: } brace/0: 1000: push (open, 1) diff --git a/cpp/.traces/break_nested b/cpp/.traces/break_nested index 189b357e..088b4742 100644 --- a/cpp/.traces/break_nested +++ b/cpp/.traces/break_nested @@ -1,17 +1,17 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: label: { -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 32 +parse/0: instruction: break parse/0: label: { -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} parse/0: label: } -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} parse/0: label: } diff --git a/cpp/.traces/break_nested_degenerate b/cpp/.traces/break_nested_degenerate index 5dbbdacb..649afcdb 100644 --- a/cpp/.traces/break_nested_degenerate +++ b/cpp/.traces/break_nested_degenerate @@ -1,14 +1,14 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: label: { -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 32 +parse/0: instruction: break parse/0: label: { parse/0: label: } -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} parse/0: label: } diff --git a/cpp/.traces/break_nested_degenerate2 b/cpp/.traces/break_nested_degenerate2 index 63c761c4..46a5d360 100644 --- a/cpp/.traces/break_nested_degenerate2 +++ b/cpp/.traces/break_nested_degenerate2 @@ -1,11 +1,11 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: label: { -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 32 +parse/0: instruction: break parse/0: label: { parse/0: label: } parse/0: label: } diff --git a/cpp/.traces/break_unless b/cpp/.traces/break_unless index ece4a491..059b99ca 100644 --- a/cpp/.traces/break_unless +++ b/cpp/.traces/break_unless @@ -1,13 +1,13 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: label: { -parse/0: instruction: 34 +parse/0: instruction: break-unless parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} parse/0: label: } diff --git a/cpp/.traces/buffer-append-works b/cpp/.traces/buffer-append-works index b7e64ecd..c4b4b221 100644 --- a/cpp/.traces/buffer-append-works +++ b/cpp/.traces/buffer-append-works @@ -1,55 +1,55 @@ -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "location", value: 0, type: 0, properties: ["location": "type"]} parse/0: ingredient: {name: "30", value: 0, type: 0, properties: ["30": "literal"]} parse/0: product: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} -parse/0: instruction: 101 +parse/0: instruction: init-buffer parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal"]} parse/0: product: {name: "x", value: 0, type: 2-9, properties: ["x": "address":"buffer"]} -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "x", value: 0, type: 2-9, properties: ["x": "address":"buffer", "deref": ]} parse/0: ingredient: {name: "data", value: 0, type: 0, properties: ["data": "offset"]} parse/0: product: {name: "s1", value: 0, type: 2-5-4, properties: ["s1": "address":"array":"character"]} -parse/0: instruction: 104 +parse/0: instruction: buffer-append parse/0: ingredient: {name: "x", value: 0, type: 2-9, properties: ["x": "address":"buffer"]} parse/0: ingredient: {name: "97", value: 0, type: 0, properties: ["97": "literal"]} parse/0: product: {name: "x", value: 0, type: 2-9, properties: ["x": "address":"buffer"]} -parse/0: instruction: 104 +parse/0: instruction: buffer-append parse/0: ingredient: {name: "x", value: 0, type: 2-9, properties: ["x": "address":"buffer"]} parse/0: ingredient: {name: "98", value: 0, type: 0, properties: ["98": "literal"]} parse/0: product: {name: "x", value: 0, type: 2-9, properties: ["x": "address":"buffer"]} -parse/0: instruction: 104 +parse/0: instruction: buffer-append parse/0: ingredient: {name: "x", value: 0, type: 2-9, properties: ["x": "address":"buffer"]} parse/0: ingredient: {name: "99", value: 0, type: 0, properties: ["99": "literal"]} parse/0: product: {name: "x", value: 0, type: 2-9, properties: ["x": "address":"buffer"]} -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "x", value: 0, type: 2-9, properties: ["x": "address":"buffer", "deref": ]} parse/0: ingredient: {name: "data", value: 0, type: 0, properties: ["data": "offset"]} parse/0: product: {name: "s2", value: 0, type: 2-5-4, properties: ["s2": "address":"array":"character"]} -parse/0: instruction: 13 +parse/0: instruction: equal parse/0: ingredient: {name: "s1", value: 0, type: 2-5-4, properties: ["s1": "address":"array":"character"]} parse/0: ingredient: {name: "s2", value: 0, type: 2-5-4, properties: ["s2": "address":"array":"character"]} parse/0: product: {name: "1", value: 0, type: 3, properties: ["1": "boolean", "raw": ]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "s2", value: 0, type: 2-5-4, properties: ["s2": "address":"array":"character", "deref": ]} parse/0: product: {name: "2", value: 0, type: 5-4, properties: ["2": "array":"character", "raw": ]} parse/0: label: +buffer-filled -parse/0: instruction: 104 +parse/0: instruction: buffer-append parse/0: ingredient: {name: "x", value: 0, type: 2-9, properties: ["x": "address":"buffer"]} parse/0: ingredient: {name: "100", value: 0, type: 0, properties: ["100": "literal"]} parse/0: product: {name: "x", value: 0, type: 2-9, properties: ["x": "address":"buffer"]} -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "x", value: 0, type: 2-9, properties: ["x": "address":"buffer", "deref": ]} parse/0: ingredient: {name: "data", value: 0, type: 0, properties: ["data": "offset"]} parse/0: product: {name: "s3", value: 0, type: 2-5-4, properties: ["s3": "address":"array":"character"]} -parse/0: instruction: 13 +parse/0: instruction: equal parse/0: ingredient: {name: "s1", value: 0, type: 2-5-4, properties: ["s1": "address":"array":"character"]} parse/0: ingredient: {name: "s3", value: 0, type: 2-5-4, properties: ["s3": "address":"array":"character"]} parse/0: product: {name: "10", value: 0, type: 3, properties: ["10": "boolean", "raw": ]} -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "x", value: 0, type: 2-9, properties: ["x": "address":"buffer", "deref": ]} parse/0: ingredient: {name: "length", value: 0, type: 0, properties: ["length": "offset"]} parse/0: product: {name: "11", value: 0, type: 1, properties: ["11": "integer", "raw": ]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "s3", value: 0, type: 2-5-4, properties: ["s3": "address":"array":"character", "deref": ]} parse/0: product: {name: "12", value: 0, type: 5-4, properties: ["12": "array":"character", "raw": ]} new/0: location -> 1 diff --git a/cpp/.traces/calling_recipe b/cpp/.traces/calling_recipe index 8e00e3fd..c2d96247 100644 --- a/cpp/.traces/calling_recipe +++ b/cpp/.traces/calling_recipe @@ -1,5 +1,5 @@ -parse/0: instruction: 1001 -parse/0: instruction: 2 +parse/0: instruction: f +parse/0: instruction: add parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/channel b/cpp/.traces/channel index 4a3b4c1c..39e30c03 100644 --- a/cpp/.traces/channel +++ b/cpp/.traces/channel @@ -1,11 +1,11 @@ -parse/0: instruction: 108 +parse/0: instruction: init-channel parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal", "capacity": ]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 109 +parse/0: instruction: write parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 111 +parse/0: instruction: read parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} diff --git a/cpp/.traces/channel-initialization b/cpp/.traces/channel-initialization index 7b89ea19..6ae08803 100644 --- a/cpp/.traces/channel-initialization +++ b/cpp/.traces/channel-initialization @@ -1,11 +1,11 @@ -parse/0: instruction: 108 +parse/0: instruction: init-channel parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal", "capacity": ]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel", "deref": ]} parse/0: ingredient: {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel", "deref": ]} parse/0: ingredient: {name: "first-free", value: 0, type: 0, properties: ["first-free": "offset"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/channel-new-empty-not-full b/cpp/.traces/channel-new-empty-not-full index 94914ebe..d28c1a7a 100644 --- a/cpp/.traces/channel-new-empty-not-full +++ b/cpp/.traces/channel-new-empty-not-full @@ -1,10 +1,10 @@ -parse/0: instruction: 108 +parse/0: instruction: init-channel parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal", "capacity": ]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 112 +parse/0: instruction: channel-empty? parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 110 +parse/0: instruction: channel-full? parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} after-brace/0: recipe test-channel-new-empty-not-full diff --git a/cpp/.traces/channel-read-increments-full b/cpp/.traces/channel-read-increments-full index 0dd58952..6346dc7f 100644 --- a/cpp/.traces/channel-read-increments-full +++ b/cpp/.traces/channel-read-increments-full @@ -1,19 +1,19 @@ -parse/0: instruction: 108 +parse/0: instruction: init-channel parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal", "capacity": ]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 109 +parse/0: instruction: write parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 111 +parse/0: instruction: read parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: product: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel", "deref": ]} parse/0: ingredient: {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel", "deref": ]} parse/0: ingredient: {name: "first-free", value: 0, type: 0, properties: ["first-free": "offset"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/channel-read-not-full b/cpp/.traces/channel-read-not-full index 8f754bad..9cacc02b 100644 --- a/cpp/.traces/channel-read-not-full +++ b/cpp/.traces/channel-read-not-full @@ -1,18 +1,18 @@ -parse/0: instruction: 108 +parse/0: instruction: init-channel parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal", "capacity": ]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 109 +parse/0: instruction: write parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 111 +parse/0: instruction: read parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: product: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 112 +parse/0: instruction: channel-empty? parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 110 +parse/0: instruction: channel-full? parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} after-brace/0: recipe test-channel-read-not-full diff --git a/cpp/.traces/channel-wrap b/cpp/.traces/channel-wrap index 8b55b85b..53e74673 100644 --- a/cpp/.traces/channel-wrap +++ b/cpp/.traces/channel-wrap @@ -1,35 +1,35 @@ -parse/0: instruction: 108 +parse/0: instruction: init-channel parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal", "capacity": ]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 109 +parse/0: instruction: write parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 111 +parse/0: instruction: read parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: product: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel", "deref": ]} parse/0: ingredient: {name: "first-free", value: 0, type: 0, properties: ["first-free": "offset"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel", "deref": ]} parse/0: ingredient: {name: "first-free", value: 0, type: 0, properties: ["first-free": "offset"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} -parse/0: instruction: 109 +parse/0: instruction: write parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel", "deref": ]} parse/0: ingredient: {name: "first-free", value: 0, type: 0, properties: ["first-free": "offset"]} parse/0: product: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} -parse/0: instruction: 111 +parse/0: instruction: read parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: product: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel", "deref": ]} parse/0: ingredient: {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} parse/0: product: {name: "5", value: 0, type: 1, properties: ["5": "integer"]} diff --git a/cpp/.traces/channel-write-full b/cpp/.traces/channel-write-full index 8385986c..857b4756 100644 --- a/cpp/.traces/channel-write-full +++ b/cpp/.traces/channel-write-full @@ -1,14 +1,14 @@ -parse/0: instruction: 108 +parse/0: instruction: init-channel parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal", "capacity": ]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 109 +parse/0: instruction: write parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 112 +parse/0: instruction: channel-empty? parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 110 +parse/0: instruction: channel-full? parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} after-brace/0: recipe test-channel-write-full diff --git a/cpp/.traces/channel-write-increments-free b/cpp/.traces/channel-write-increments-free index 1f5b701b..753221a1 100644 --- a/cpp/.traces/channel-write-increments-free +++ b/cpp/.traces/channel-write-increments-free @@ -1,15 +1,15 @@ -parse/0: instruction: 108 +parse/0: instruction: init-channel parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal", "capacity": ]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 109 +parse/0: instruction: write parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel", "deref": ]} parse/0: ingredient: {name: "first-full", value: 0, type: 0, properties: ["first-full": "offset"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel", "deref": ]} parse/0: ingredient: {name: "first-free", value: 0, type: 0, properties: ["first-free": "offset"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/channel-write-not-empty b/cpp/.traces/channel-write-not-empty index 8b361b26..42d19d26 100644 --- a/cpp/.traces/channel-write-not-empty +++ b/cpp/.traces/channel-write-not-empty @@ -1,14 +1,14 @@ -parse/0: instruction: 108 +parse/0: instruction: init-channel parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal", "capacity": ]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 109 +parse/0: instruction: write parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} -parse/0: instruction: 112 +parse/0: instruction: channel-empty? parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 110 +parse/0: instruction: channel-full? parse/0: ingredient: {name: "1", value: 0, type: 2-10, properties: ["1": "address":"channel"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} after-brace/0: recipe test-channel-write-not-empty diff --git a/cpp/.traces/check_string_in_memory b/cpp/.traces/check_string_in_memory index 69b0852b..3830dc47 100644 --- a/cpp/.traces/check_string_in_memory +++ b/cpp/.traces/check_string_in_memory @@ -1,13 +1,13 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "97", value: 0, type: 0, properties: ["97": "literal"]} parse/0: product: {name: "2", value: 0, type: 4, properties: ["2": "character"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "98", value: 0, type: 0, properties: ["98": "literal"]} parse/0: product: {name: "3", value: 0, type: 4, properties: ["3": "character"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "99", value: 0, type: 0, properties: ["99": "literal"]} parse/0: product: {name: "4", value: 0, type: 4, properties: ["4": "character"]} after-brace/0: recipe test-check_string_in_memory diff --git a/cpp/.traces/closure b/cpp/.traces/closure index d9fff00a..047b3a7d 100644 --- a/cpp/.traces/closure +++ b/cpp/.traces/closure @@ -1,41 +1,41 @@ -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "location", value: 0, type: 0, properties: ["location": "type"]} parse/0: ingredient: {name: "30", value: 0, type: 0, properties: ["30": "literal"]} parse/0: product: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} -parse/0: instruction: 1001 +parse/0: instruction: init-counter parse/0: product: {name: "1", value: 0, type: 2-5-1, properties: ["1": "address":"array":"location", "names": "init-counter"]} -parse/0: instruction: 1002 +parse/0: instruction: increment-counter parse/0: ingredient: {name: "1", value: 0, type: 2-5-1, properties: ["1": "address":"array":"location", "names": "init-counter"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer", "raw": ]} -parse/0: instruction: 1002 +parse/0: instruction: increment-counter parse/0: ingredient: {name: "1", value: 0, type: 2-5-1, properties: ["1": "address":"array":"location", "names": "init-counter"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer", "raw": ]} -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "location", value: 0, type: 0, properties: ["location": "type"]} parse/0: ingredient: {name: "30", value: 0, type: 0, properties: ["30": "literal"]} parse/0: product: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} parse/0: product: {name: "x", value: 0, type: 1, properties: ["x": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal"]} parse/0: product: {name: "y", value: 0, type: 1, properties: ["y": "integer"]} -parse/0: instruction: 29 +parse/0: instruction: reply parse/0: ingredient: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "space", value: 0, type: 0, properties: ["space": "literal"]} parse/0: ingredient: {name: "30", value: 0, type: 0, properties: ["30": "literal"]} parse/0: product: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} -parse/0: instruction: 26 +parse/0: instruction: next-ingredient parse/0: product: {name: "0", value: 0, type: 2-5-1, properties: ["0": "address":"array":"location", "names": "init-counter"]} -parse/0: instruction: 2 +parse/0: instruction: add parse/0: ingredient: {name: "y", value: 0, type: 1, properties: ["y": "integer", "space": "1"]} parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "y", value: 0, type: 1, properties: ["y": "integer", "space": "1"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "234", value: 0, type: 0, properties: ["234": "literal"]} parse/0: product: {name: "y", value: 0, type: 1, properties: ["y": "integer"]} -parse/0: instruction: 29 +parse/0: instruction: reply parse/0: ingredient: {name: "y", value: 0, type: 1, properties: ["y": "integer", "space": "1"]} name/0: recipe increment-counter is surrounded by init-counter new/0: location -> 1 diff --git a/cpp/.traces/convert_names b/cpp/.traces/convert_names index d4586867..4d8a676b 100644 --- a/cpp/.traces/convert_names +++ b/cpp/.traces/convert_names @@ -1,4 +1,4 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "x", value: 0, type: 1, properties: ["x": "integer"]} name/0: assign x 1 diff --git a/cpp/.traces/convert_names_handles_containers b/cpp/.traces/convert_names_handles_containers index 0073519a..1b50d2fb 100644 --- a/cpp/.traces/convert_names_handles_containers +++ b/cpp/.traces/convert_names_handles_containers @@ -1,7 +1,7 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "a", value: 0, type: 6, properties: ["a": "point"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "b", value: 0, type: 1, properties: ["b": "integer"]} name/0: assign a 1 diff --git a/cpp/.traces/convert_names_passes_default_space b/cpp/.traces/convert_names_passes_default_space index fc78640e..c3a163bc 100644 --- a/cpp/.traces/convert_names_passes_default_space +++ b/cpp/.traces/convert_names_passes_default_space @@ -1,4 +1,4 @@ -parse/0: instruction: 1 +parse/0: instruction: copy 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: "x", value: 0, type: 1, properties: ["x": "integer"]} diff --git a/cpp/.traces/convert_names_passes_dummy b/cpp/.traces/convert_names_passes_dummy index 9ec0fca9..83d5c510 100644 --- a/cpp/.traces/convert_names_passes_dummy +++ b/cpp/.traces/convert_names_passes_dummy @@ -1,4 +1,4 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]} parse/0: product: {name: "x", value: 0, type: 1, properties: ["x": "integer"]} diff --git a/cpp/.traces/convert_names_passes_raw b/cpp/.traces/convert_names_passes_raw index a012d363..e1d35cb7 100644 --- a/cpp/.traces/convert_names_passes_raw +++ b/cpp/.traces/convert_names_passes_raw @@ -1,4 +1,4 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "x", value: 0, type: 1, properties: ["x": "integer", "raw": ]} after-brace/0: recipe main diff --git a/cpp/.traces/convert_names_transforms_container_elements b/cpp/.traces/convert_names_transforms_container_elements index 3dbd14a4..64200f1e 100644 --- a/cpp/.traces/convert_names_transforms_container_elements +++ b/cpp/.traces/convert_names_transforms_container_elements @@ -1,8 +1,8 @@ -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "0", value: 0, type: 6, properties: ["0": "point"]} parse/0: ingredient: {name: "y", value: 0, type: 0, properties: ["y": "offset"]} parse/0: product: {name: "a", value: 0, type: 1, properties: ["a": "integer"]} -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "0", value: 0, type: 6, properties: ["0": "point"]} parse/0: ingredient: {name: "x", value: 0, type: 0, properties: ["x": "offset"]} parse/0: product: {name: "b", value: 0, type: 1, properties: ["b": "integer"]} diff --git a/cpp/.traces/convert_names_warns b/cpp/.traces/convert_names_warns index 93676ca2..3a4204dc 100644 --- a/cpp/.traces/convert_names_warns +++ b/cpp/.traces/convert_names_warns @@ -1,4 +1,4 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "y", value: 0, type: 1, properties: ["y": "integer"]} parse/0: product: {name: "x", value: 0, type: 1, properties: ["x": "integer"]} warn/0: use before set: y in main diff --git a/cpp/.traces/copy b/cpp/.traces/copy index 70927741..17a10725 100644 --- a/cpp/.traces/copy +++ b/cpp/.traces/copy @@ -1,7 +1,7 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} after-brace/0: recipe main diff --git a/cpp/.traces/copy_array b/cpp/.traces/copy_array index 67d33ad7..693d0c56 100644 --- a/cpp/.traces/copy_array +++ b/cpp/.traces/copy_array @@ -1,16 +1,16 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "14", value: 0, type: 0, properties: ["14": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "15", value: 0, type: 0, properties: ["15": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "16", value: 0, type: 0, properties: ["16": "literal"]} parse/0: product: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 5-1, properties: ["1": "array":"integer"]} parse/0: product: {name: "5", value: 0, type: 5-1, properties: ["5": "array":"integer"]} after-brace/0: recipe main diff --git a/cpp/.traces/copy_array_indirect b/cpp/.traces/copy_array_indirect index 663c4068..e09614f9 100644 --- a/cpp/.traces/copy_array_indirect +++ b/cpp/.traces/copy_array_indirect @@ -1,19 +1,19 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "14", value: 0, type: 0, properties: ["14": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "15", value: 0, type: 0, properties: ["15": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "16", value: 0, type: 0, properties: ["16": "literal"]} parse/0: product: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "5", value: 0, type: 2-5-1, properties: ["5": "address":"array":"integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "5", value: 0, type: 2-5-1, properties: ["5": "address":"array":"integer", "deref": ]} parse/0: product: {name: "6", value: 0, type: 5-1, properties: ["6": "array":"integer"]} after-brace/0: recipe main diff --git a/cpp/.traces/copy_exclusive_container b/cpp/.traces/copy_exclusive_container index 3b6ce08c..e6add356 100644 --- a/cpp/.traces/copy_exclusive_container +++ b/cpp/.traces/copy_exclusive_container @@ -1,13 +1,13 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "35", value: 0, type: 0, properties: ["35": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 8, properties: ["1": "integer-or-point"]} parse/0: product: {name: "4", value: 0, type: 8, properties: ["4": "integer-or-point"]} after-brace/0: recipe main diff --git a/cpp/.traces/copy_handles_nested_container_elements b/cpp/.traces/copy_handles_nested_container_elements index 85c31ba6..f220c077 100644 --- a/cpp/.traces/copy_handles_nested_container_elements +++ b/cpp/.traces/copy_handles_nested_container_elements @@ -1,13 +1,13 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "35", value: 0, type: 0, properties: ["35": "literal"]} parse/0: product: {name: "13", value: 0, type: 1, properties: ["13": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "36", value: 0, type: 0, properties: ["36": "literal"]} parse/0: product: {name: "14", value: 0, type: 1, properties: ["14": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "12", value: 0, type: 7, properties: ["12": "point-integer"]} parse/0: product: {name: "15", value: 0, type: 7, properties: ["15": "point-integer"]} after-brace/0: recipe main diff --git a/cpp/.traces/copy_indirect b/cpp/.traces/copy_indirect index 033c5364..72f4fe80 100644 --- a/cpp/.traces/copy_indirect +++ b/cpp/.traces/copy_indirect @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: product: {name: "1", value: 0, type: 2-1, properties: ["1": "address":"integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 2-1, properties: ["1": "address":"integer", "deref": ]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} after-brace/0: recipe main diff --git a/cpp/.traces/copy_literal b/cpp/.traces/copy_literal index 6b553106..6c3d0d7a 100644 --- a/cpp/.traces/copy_literal +++ b/cpp/.traces/copy_literal @@ -1,4 +1,4 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} after-brace/0: recipe main diff --git a/cpp/.traces/copy_multiple_locations b/cpp/.traces/copy_multiple_locations index 8e574786..815d4ea9 100644 --- a/cpp/.traces/copy_multiple_locations +++ b/cpp/.traces/copy_multiple_locations @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "35", value: 0, type: 0, properties: ["35": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 6, properties: ["1": "point"]} parse/0: product: {name: "3", value: 0, type: 6, properties: ["3": "point"]} after-brace/0: recipe main diff --git a/cpp/.traces/deref_sidesteps_default_space b/cpp/.traces/deref_sidesteps_default_space index dc42c84e..4d406fc7 100644 --- a/cpp/.traces/deref_sidesteps_default_space +++ b/cpp/.traces/deref_sidesteps_default_space @@ -1,16 +1,16 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "5", value: 0, type: 0, properties: ["5": "literal"]} parse/0: product: {name: "1000", value: 0, type: 1, properties: ["1000": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1000", value: 0, type: 0, properties: ["1000": "literal"]} parse/0: product: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal"]} parse/0: product: {name: "1", value: 0, type: 2-1, properties: ["1": "address":"integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 2-1, properties: ["1": "address":"integer", "deref": ]} parse/0: product: {name: "8", value: 0, type: 1, properties: ["8": "integer", "raw": ]} after-brace/0: recipe main diff --git a/cpp/.traces/deref_sidesteps_default_space_in_get b/cpp/.traces/deref_sidesteps_default_space_in_get index 8f82f134..0bc10c1e 100644 --- a/cpp/.traces/deref_sidesteps_default_space_in_get +++ b/cpp/.traces/deref_sidesteps_default_space_in_get @@ -1,19 +1,19 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "35", value: 0, type: 0, properties: ["35": "literal"]} parse/0: product: {name: "13", value: 0, type: 1, properties: ["13": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "5", value: 0, type: 0, properties: ["5": "literal"]} parse/0: product: {name: "1000", value: 0, type: 1, properties: ["1000": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1000", value: 0, type: 0, properties: ["1000": "literal"]} parse/0: product: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "12", value: 0, type: 0, properties: ["12": "literal"]} parse/0: product: {name: "1", value: 0, type: 2-6, properties: ["1": "address":"point"]} -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "1", value: 0, type: 2-6, properties: ["1": "address":"point", "deref": ]} parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "offset"]} parse/0: product: {name: "9", value: 0, type: 1, properties: ["9": "integer", "raw": ]} diff --git a/cpp/.traces/deref_sidesteps_default_space_in_index b/cpp/.traces/deref_sidesteps_default_space_in_index index 0c273faa..97d3e806 100644 --- a/cpp/.traces/deref_sidesteps_default_space_in_index +++ b/cpp/.traces/deref_sidesteps_default_space_in_index @@ -1,22 +1,22 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "13", value: 0, type: 1, properties: ["13": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "35", value: 0, type: 0, properties: ["35": "literal"]} parse/0: product: {name: "14", value: 0, type: 1, properties: ["14": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "5", value: 0, type: 0, properties: ["5": "literal"]} parse/0: product: {name: "1000", value: 0, type: 1, properties: ["1000": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1000", value: 0, type: 0, properties: ["1000": "literal"]} parse/0: product: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "12", value: 0, type: 0, properties: ["12": "literal"]} parse/0: product: {name: "1", value: 0, type: 2-5-1, properties: ["1": "address":"array":"integer"]} -parse/0: instruction: 22 +parse/0: instruction: index parse/0: ingredient: {name: "1", value: 0, type: 2-5-1, properties: ["1": "address":"array":"integer", "deref": ]} parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "9", value: 0, type: 1, properties: ["9": "integer", "raw": ]} diff --git a/cpp/.traces/divide b/cpp/.traces/divide index 514c94e0..87c827d6 100644 --- a/cpp/.traces/divide +++ b/cpp/.traces/divide @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "27", value: 0, type: 0, properties: ["27": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 5 +parse/0: instruction: divide parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/divide_literal b/cpp/.traces/divide_literal index e42b09a6..9b3c8934 100644 --- a/cpp/.traces/divide_literal +++ b/cpp/.traces/divide_literal @@ -1,4 +1,4 @@ -parse/0: instruction: 5 +parse/0: instruction: divide parse/0: ingredient: {name: "8", value: 0, type: 0, properties: ["8": "literal"]} parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} diff --git a/cpp/.traces/divide_with_remainder b/cpp/.traces/divide_with_remainder index 97549ee6..3f680232 100644 --- a/cpp/.traces/divide_with_remainder +++ b/cpp/.traces/divide_with_remainder @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "27", value: 0, type: 0, properties: ["27": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "11", value: 0, type: 0, properties: ["11": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 6 +parse/0: instruction: divide-with-remainder parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/divide_with_remainder_literal b/cpp/.traces/divide_with_remainder_literal index bd76621f..01e4abb0 100644 --- a/cpp/.traces/divide_with_remainder_literal +++ b/cpp/.traces/divide_with_remainder_literal @@ -1,4 +1,4 @@ -parse/0: instruction: 6 +parse/0: instruction: divide-with-remainder parse/0: ingredient: {name: "9", value: 0, type: 0, properties: ["9": "literal"]} parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} diff --git a/cpp/.traces/equal b/cpp/.traces/equal index 6f561c1f..7c5a280a 100644 --- a/cpp/.traces/equal +++ b/cpp/.traces/equal @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "33", value: 0, type: 0, properties: ["33": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 13 +parse/0: instruction: equal parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/equal2 b/cpp/.traces/equal2 index 2ca201bd..e76a9aff 100644 --- a/cpp/.traces/equal2 +++ b/cpp/.traces/equal2 @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 13 +parse/0: instruction: equal parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/first_recipe b/cpp/.traces/first_recipe index 5fc3dbfd..5cfc15c8 100644 --- a/cpp/.traces/first_recipe +++ b/cpp/.traces/first_recipe @@ -1,3 +1,3 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} diff --git a/cpp/.traces/first_scenario_checking_trace b/cpp/.traces/first_scenario_checking_trace index b7922463..0d7566ff 100644 --- a/cpp/.traces/first_scenario_checking_trace +++ b/cpp/.traces/first_scenario_checking_trace @@ -1,4 +1,4 @@ -parse/0: instruction: 2 +parse/0: instruction: add parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} diff --git a/cpp/.traces/first_scenario_checking_trace_negative b/cpp/.traces/first_scenario_checking_trace_negative index 90c36f6f..d84f4e82 100644 --- a/cpp/.traces/first_scenario_checking_trace_negative +++ b/cpp/.traces/first_scenario_checking_trace_negative @@ -1,4 +1,4 @@ -parse/0: instruction: 2 +parse/0: instruction: add parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} diff --git a/cpp/.traces/first_scenario_in_mu b/cpp/.traces/first_scenario_in_mu index 1473e211..6b664104 100644 --- a/cpp/.traces/first_scenario_in_mu +++ b/cpp/.traces/first_scenario_in_mu @@ -1,4 +1,4 @@ -parse/0: instruction: 2 +parse/0: instruction: add parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} diff --git a/cpp/.traces/get b/cpp/.traces/get index 5cb3bffa..22a263e7 100644 --- a/cpp/.traces/get +++ b/cpp/.traces/get @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "35", value: 0, type: 0, properties: ["35": "literal"]} parse/0: product: {name: "13", value: 0, type: 1, properties: ["13": "integer"]} -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "12", value: 0, type: 6, properties: ["12": "point"]} parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "offset"]} parse/0: product: {name: "15", value: 0, type: 1, properties: ["15": "integer"]} diff --git a/cpp/.traces/get_address b/cpp/.traces/get_address index 1cf720e0..a08a0ba4 100644 --- a/cpp/.traces/get_address +++ b/cpp/.traces/get_address @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "35", value: 0, type: 0, properties: ["35": "literal"]} parse/0: product: {name: "13", value: 0, type: 1, properties: ["13": "integer"]} -parse/0: instruction: 21 +parse/0: instruction: get-address parse/0: ingredient: {name: "12", value: 0, type: 6, properties: ["12": "point"]} parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "offset"]} parse/0: product: {name: "15", value: 0, type: 2-1, properties: ["15": "address":"integer"]} diff --git a/cpp/.traces/get_address_indirect b/cpp/.traces/get_address_indirect index 45b0664b..e933a536 100644 --- a/cpp/.traces/get_address_indirect +++ b/cpp/.traces/get_address_indirect @@ -1,13 +1,13 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "35", value: 0, type: 0, properties: ["35": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} -parse/0: instruction: 21 +parse/0: instruction: get-address parse/0: ingredient: {name: "1", value: 0, type: 2-6, properties: ["1": "address":"point", "deref": ]} parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "offset"]} parse/0: product: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} diff --git a/cpp/.traces/get_default_space b/cpp/.traces/get_default_space index 3b5a9cd2..c24a357c 100644 --- a/cpp/.traces/get_default_space +++ b/cpp/.traces/get_default_space @@ -1,7 +1,7 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "10", value: 0, type: 0, properties: ["10": "literal"]} parse/0: product: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer", "raw": ]} after-brace/0: recipe main diff --git a/cpp/.traces/get_handles_nested_container_elements b/cpp/.traces/get_handles_nested_container_elements index 797b8e80..15563354 100644 --- a/cpp/.traces/get_handles_nested_container_elements +++ b/cpp/.traces/get_handles_nested_container_elements @@ -1,13 +1,13 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "35", value: 0, type: 0, properties: ["35": "literal"]} parse/0: product: {name: "13", value: 0, type: 1, properties: ["13": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "36", value: 0, type: 0, properties: ["36": "literal"]} parse/0: product: {name: "14", value: 0, type: 1, properties: ["14": "integer"]} -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "12", value: 0, type: 7, properties: ["12": "point-integer"]} parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "offset"]} parse/0: product: {name: "15", value: 0, type: 1, properties: ["15": "integer"]} diff --git a/cpp/.traces/get_indirect b/cpp/.traces/get_indirect index a084d7cf..abf734c2 100644 --- a/cpp/.traces/get_indirect +++ b/cpp/.traces/get_indirect @@ -1,13 +1,13 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "35", value: 0, type: 0, properties: ["35": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "1", value: 0, type: 2-6, properties: ["1": "address":"point", "deref": ]} parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "offset"]} parse/0: product: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} diff --git a/cpp/.traces/greater_or_equal b/cpp/.traces/greater_or_equal index 3b581053..8f20b947 100644 --- a/cpp/.traces/greater_or_equal +++ b/cpp/.traces/greater_or_equal @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "33", value: 0, type: 0, properties: ["33": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 16 +parse/0: instruction: greater-or-equal parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/greater_or_equal2 b/cpp/.traces/greater_or_equal2 index 8e514bb9..dc98460f 100644 --- a/cpp/.traces/greater_or_equal2 +++ b/cpp/.traces/greater_or_equal2 @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 16 +parse/0: instruction: greater-or-equal parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/greater_or_equal3 b/cpp/.traces/greater_or_equal3 index 8a65d26b..53bf6b3b 100644 --- a/cpp/.traces/greater_or_equal3 +++ b/cpp/.traces/greater_or_equal3 @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "35", value: 0, type: 0, properties: ["35": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 16 +parse/0: instruction: greater-or-equal parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/greater_than b/cpp/.traces/greater_than index fce3579a..648d5e5a 100644 --- a/cpp/.traces/greater_than +++ b/cpp/.traces/greater_than @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "33", value: 0, type: 0, properties: ["33": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 14 +parse/0: instruction: greater-than parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/greater_than2 b/cpp/.traces/greater_than2 index bcf94b01..50a39727 100644 --- a/cpp/.traces/greater_than2 +++ b/cpp/.traces/greater_than2 @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 14 +parse/0: instruction: greater-than parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/include_nonderef_properties b/cpp/.traces/include_nonderef_properties index 1af02dd2..184127b8 100644 --- a/cpp/.traces/include_nonderef_properties +++ b/cpp/.traces/include_nonderef_properties @@ -1,13 +1,13 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "35", value: 0, type: 0, properties: ["35": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} -parse/0: instruction: 20 +parse/0: instruction: get parse/0: ingredient: {name: "1", value: 0, type: 2-6, properties: ["1": "address":"point", "deref": , "foo": ]} parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "offset"]} parse/0: product: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} diff --git a/cpp/.traces/index b/cpp/.traces/index index 006eb847..2ff0d46a 100644 --- a/cpp/.traces/index +++ b/cpp/.traces/index @@ -1,16 +1,16 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "14", value: 0, type: 0, properties: ["14": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "15", value: 0, type: 0, properties: ["15": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "16", value: 0, type: 0, properties: ["16": "literal"]} parse/0: product: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} -parse/0: instruction: 22 +parse/0: instruction: index parse/0: ingredient: {name: "1", value: 0, type: 5-1, properties: ["1": "array":"integer"]} parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "5", value: 0, type: 1, properties: ["5": "integer"]} diff --git a/cpp/.traces/index_address b/cpp/.traces/index_address index 59ab5e2c..57e6b672 100644 --- a/cpp/.traces/index_address +++ b/cpp/.traces/index_address @@ -1,16 +1,16 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "14", value: 0, type: 0, properties: ["14": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "15", value: 0, type: 0, properties: ["15": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "16", value: 0, type: 0, properties: ["16": "literal"]} parse/0: product: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} -parse/0: instruction: 23 +parse/0: instruction: index-address parse/0: ingredient: {name: "1", value: 0, type: 5-1, properties: ["1": "array":"integer"]} parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "5", value: 0, type: 1, properties: ["5": "integer"]} diff --git a/cpp/.traces/index_direct_offset b/cpp/.traces/index_direct_offset index 6437422e..4b15fa3b 100644 --- a/cpp/.traces/index_direct_offset +++ b/cpp/.traces/index_direct_offset @@ -1,19 +1,19 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "14", value: 0, type: 0, properties: ["14": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "15", value: 0, type: 0, properties: ["15": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "16", value: 0, type: 0, properties: ["16": "literal"]} parse/0: product: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "5", value: 0, type: 1, properties: ["5": "integer"]} -parse/0: instruction: 22 +parse/0: instruction: index parse/0: ingredient: {name: "1", value: 0, type: 5-1, properties: ["1": "array":"integer"]} parse/0: ingredient: {name: "5", value: 0, type: 1, properties: ["5": "integer"]} parse/0: product: {name: "6", value: 0, type: 1, properties: ["6": "integer"]} diff --git a/cpp/.traces/index_indirect b/cpp/.traces/index_indirect index 0f2ccc49..d2963e34 100644 --- a/cpp/.traces/index_indirect +++ b/cpp/.traces/index_indirect @@ -1,19 +1,19 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "14", value: 0, type: 0, properties: ["14": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "15", value: 0, type: 0, properties: ["15": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "16", value: 0, type: 0, properties: ["16": "literal"]} parse/0: product: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "5", value: 0, type: 2-5-1, properties: ["5": "address":"array":"integer"]} -parse/0: instruction: 22 +parse/0: instruction: index parse/0: ingredient: {name: "5", value: 0, type: 2-5-1, properties: ["5": "address":"array":"integer", "deref": ]} parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "6", value: 0, type: 1, properties: ["6": "integer"]} diff --git a/cpp/.traces/ingredient b/cpp/.traces/ingredient index 0abe066b..ae8b90f3 100644 --- a/cpp/.traces/ingredient +++ b/cpp/.traces/ingredient @@ -1,10 +1,10 @@ -parse/0: instruction: 1001 +parse/0: instruction: f parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} -parse/0: instruction: 28 +parse/0: instruction: ingredient parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} -parse/0: instruction: 26 +parse/0: instruction: next-ingredient parse/0: product: {name: "13", value: 0, type: 1, properties: ["13": "integer"]} parse/0: product: {name: "1", value: 0, type: 3, properties: ["1": "boolean"]} after-brace/0: recipe main diff --git a/cpp/.traces/integer-to-decimal-digit-negative b/cpp/.traces/integer-to-decimal-digit-negative index c7976d26..05521c72 100644 --- a/cpp/.traces/integer-to-decimal-digit-negative +++ b/cpp/.traces/integer-to-decimal-digit-negative @@ -1,7 +1,7 @@ -parse/0: instruction: 105 +parse/0: instruction: integer-to-decimal-string parse/0: ingredient: {name: "-1", value: 0, type: 0, properties: ["-1": "literal"]} parse/0: product: {name: "1", value: 0, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 2-5-4, properties: ["1": "address":"array":"character", "deref": , "raw": ]} parse/0: product: {name: "2", value: 0, type: 5-4, properties: ["2": "array":"character", "raw": ]} after-brace/0: recipe test-integer-to-decimal-digit-negative diff --git a/cpp/.traces/integer-to-decimal-digit-positive b/cpp/.traces/integer-to-decimal-digit-positive index 76a65c1e..eaa0ee3b 100644 --- a/cpp/.traces/integer-to-decimal-digit-positive +++ b/cpp/.traces/integer-to-decimal-digit-positive @@ -1,7 +1,7 @@ -parse/0: instruction: 105 +parse/0: instruction: integer-to-decimal-string parse/0: ingredient: {name: "234", value: 0, type: 0, properties: ["234": "literal"]} parse/0: product: {name: "1", value: 0, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 2-5-4, properties: ["1": "address":"array":"character", "deref": , "raw": ]} parse/0: product: {name: "2", value: 0, type: 5-4, properties: ["2": "array":"character", "raw": ]} after-brace/0: recipe test-integer-to-decimal-digit-positive diff --git a/cpp/.traces/integer-to-decimal-digit-zero b/cpp/.traces/integer-to-decimal-digit-zero index 0a5c53da..9d5fb6e3 100644 --- a/cpp/.traces/integer-to-decimal-digit-zero +++ b/cpp/.traces/integer-to-decimal-digit-zero @@ -1,7 +1,7 @@ -parse/0: instruction: 105 +parse/0: instruction: integer-to-decimal-string parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "1", value: 0, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 2-5-4, properties: ["1": "address":"array":"character", "deref": , "raw": ]} parse/0: product: {name: "2", value: 0, type: 5-4, properties: ["2": "array":"character", "raw": ]} after-brace/0: recipe test-integer-to-decimal-digit-zero diff --git a/cpp/.traces/interpolate-at-end b/cpp/.traces/interpolate-at-end index 02ec2bfc..b2085a50 100644 --- a/cpp/.traces/interpolate-at-end +++ b/cpp/.traces/interpolate-at-end @@ -1,14 +1,14 @@ -parse/0: instruction: 38 +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": ]} -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} parse/0: product: {name: "2", value: 0, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} -parse/0: instruction: 107 +parse/0: instruction: interpolate parse/0: ingredient: {name: "1", value: 0, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} parse/0: ingredient: {name: "2", value: 0, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} parse/0: product: {name: "3", value: 0, type: 2-5-4, properties: ["3": "address":"array":"character", "raw": ]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "3", value: 0, type: 2-5-4, properties: ["3": "address":"array":"character", "raw": , "deref": ]} parse/0: product: {name: "4", value: 0, type: 5-4, properties: ["4": "array":"character", "raw": ]} new/0: hello, _ -> 0 diff --git a/cpp/.traces/interpolate-at-start b/cpp/.traces/interpolate-at-start index 51a4c657..f30ef81f 100644 --- a/cpp/.traces/interpolate-at-start +++ b/cpp/.traces/interpolate-at-start @@ -1,14 +1,14 @@ -parse/0: instruction: 38 +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": ]} -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} parse/0: product: {name: "2", value: 0, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} -parse/0: instruction: 107 +parse/0: instruction: interpolate parse/0: ingredient: {name: "1", value: 0, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} parse/0: ingredient: {name: "2", value: 0, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} parse/0: product: {name: "3", value: 0, type: 2-5-4, properties: ["3": "address":"array":"character", "raw": ]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "3", value: 0, type: 2-5-4, properties: ["3": "address":"array":"character", "raw": , "deref": ]} parse/0: product: {name: "4", value: 0, type: 5-4, properties: ["4": "array":"character", "raw": ]} new/0: _, hello! -> 0 diff --git a/cpp/.traces/interpolate-works b/cpp/.traces/interpolate-works index ef70cc9f..c7dc2ee9 100644 --- a/cpp/.traces/interpolate-works +++ b/cpp/.traces/interpolate-works @@ -1,14 +1,14 @@ -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "abc _", value: 0, type: 0, properties: ["abc _": "literal-string"]} parse/0: product: {name: "1", value: 0, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "def", value: 0, type: 0, properties: ["def": "literal-string"]} parse/0: product: {name: "2", value: 0, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} -parse/0: instruction: 107 +parse/0: instruction: interpolate parse/0: ingredient: {name: "1", value: 0, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} parse/0: ingredient: {name: "2", value: 0, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} parse/0: product: {name: "3", value: 0, type: 2-5-4, properties: ["3": "address":"array":"character", "raw": ]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "3", value: 0, type: 2-5-4, properties: ["3": "address":"array":"character", "raw": , "deref": ]} parse/0: product: {name: "4", value: 0, type: 5-4, properties: ["4": "array":"character", "raw": ]} new/0: abc _ -> 0 diff --git a/cpp/.traces/jump_backward b/cpp/.traces/jump_backward index 529d4f50..524894a7 100644 --- a/cpp/.traces/jump_backward +++ b/cpp/.traces/jump_backward @@ -1,8 +1,8 @@ -parse/0: instruction: 10 +parse/0: instruction: jump parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "offset"]} -parse/0: instruction: 10 +parse/0: instruction: jump parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "offset"]} -parse/0: instruction: 10 +parse/0: instruction: jump parse/0: ingredient: {name: "-2", value: 0, type: 0, properties: ["-2": "offset"]} after-brace/0: recipe main after-brace/0: jump ... diff --git a/cpp/.traces/jump_can_skip_instructions b/cpp/.traces/jump_can_skip_instructions index ecc70839..ced4b32e 100644 --- a/cpp/.traces/jump_can_skip_instructions +++ b/cpp/.traces/jump_can_skip_instructions @@ -1,6 +1,6 @@ -parse/0: instruction: 10 +parse/0: instruction: jump parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "offset"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} after-brace/0: recipe main diff --git a/cpp/.traces/jump_if b/cpp/.traces/jump_if index bcb3f09e..9e63fab6 100644 --- a/cpp/.traces/jump_if +++ b/cpp/.traces/jump_if @@ -1,7 +1,7 @@ -parse/0: instruction: 11 +parse/0: instruction: jump-if parse/0: ingredient: {name: "999", value: 0, type: 0, properties: ["999": "literal"]} parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "offset"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} after-brace/0: recipe main diff --git a/cpp/.traces/jump_if_fallthrough b/cpp/.traces/jump_if_fallthrough index f638d21c..a3b5e347 100644 --- a/cpp/.traces/jump_if_fallthrough +++ b/cpp/.traces/jump_if_fallthrough @@ -1,7 +1,7 @@ -parse/0: instruction: 11 +parse/0: instruction: jump-if parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "offset"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "123", value: 0, type: 1, properties: ["123": "integer"]} after-brace/0: recipe main diff --git a/cpp/.traces/jump_unless b/cpp/.traces/jump_unless index 0bfd970a..31055471 100644 --- a/cpp/.traces/jump_unless +++ b/cpp/.traces/jump_unless @@ -1,7 +1,7 @@ -parse/0: instruction: 12 +parse/0: instruction: jump-unless parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "offset"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} after-brace/0: recipe main diff --git a/cpp/.traces/jump_unless_fallthrough b/cpp/.traces/jump_unless_fallthrough index 2714a51b..0785e2d0 100644 --- a/cpp/.traces/jump_unless_fallthrough +++ b/cpp/.traces/jump_unless_fallthrough @@ -1,7 +1,7 @@ -parse/0: instruction: 12 +parse/0: instruction: jump-unless parse/0: ingredient: {name: "999", value: 0, type: 0, properties: ["999": "literal"]} parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "offset"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "123", value: 0, type: 1, properties: ["123": "integer"]} after-brace/0: recipe main diff --git a/cpp/.traces/lesser_or_equal b/cpp/.traces/lesser_or_equal index 62e3dbe4..803ee048 100644 --- a/cpp/.traces/lesser_or_equal +++ b/cpp/.traces/lesser_or_equal @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "32", value: 0, type: 0, properties: ["32": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "33", value: 0, type: 0, properties: ["33": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 17 +parse/0: instruction: lesser-or-equal parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/lesser_or_equal2 b/cpp/.traces/lesser_or_equal2 index 17f80df3..306bb53f 100644 --- a/cpp/.traces/lesser_or_equal2 +++ b/cpp/.traces/lesser_or_equal2 @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "33", value: 0, type: 0, properties: ["33": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "33", value: 0, type: 0, properties: ["33": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 17 +parse/0: instruction: lesser-or-equal parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/lesser_or_equal3 b/cpp/.traces/lesser_or_equal3 index e9a79334..73148c77 100644 --- a/cpp/.traces/lesser_or_equal3 +++ b/cpp/.traces/lesser_or_equal3 @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "33", value: 0, type: 0, properties: ["33": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 17 +parse/0: instruction: lesser-or-equal parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/lesser_than b/cpp/.traces/lesser_than index 470f121e..9295dc29 100644 --- a/cpp/.traces/lesser_than +++ b/cpp/.traces/lesser_than @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "32", value: 0, type: 0, properties: ["32": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "33", value: 0, type: 0, properties: ["33": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 15 +parse/0: instruction: lesser-than parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/lesser_than2 b/cpp/.traces/lesser_than2 index 2f8fc6b3..cb26c302 100644 --- a/cpp/.traces/lesser_than2 +++ b/cpp/.traces/lesser_than2 @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "33", value: 0, type: 0, properties: ["33": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 15 +parse/0: instruction: lesser-than parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/loop b/cpp/.traces/loop index 3516306a..b3a25323 100644 --- a/cpp/.traces/loop +++ b/cpp/.traces/loop @@ -1,14 +1,14 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: label: { -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} -parse/0: instruction: 35 +parse/0: instruction: loop parse/0: label: } brace/0: 1000: push (open, 2) brace/0: push (close, 5) diff --git a/cpp/.traces/loop_label b/cpp/.traces/loop_label index b0c4c2a8..3d3f36f3 100644 --- a/cpp/.traces/loop_label +++ b/cpp/.traces/loop_label @@ -1,8 +1,8 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: label: +foo -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} after-brace/0: recipe main diff --git a/cpp/.traces/loop_nested b/cpp/.traces/loop_nested index b33794cb..ef21f26b 100644 --- a/cpp/.traces/loop_nested +++ b/cpp/.traces/loop_nested @@ -1,18 +1,18 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: label: { -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: label: { -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} parse/0: label: } -parse/0: instruction: 36 +parse/0: instruction: loop-if parse/0: ingredient: {name: "4", value: 0, type: 3, properties: ["4": "boolean"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "5", value: 0, type: 1, properties: ["5": "integer"]} parse/0: label: } diff --git a/cpp/.traces/loop_unless b/cpp/.traces/loop_unless index 06003c98..d29f272f 100644 --- a/cpp/.traces/loop_unless +++ b/cpp/.traces/loop_unless @@ -1,13 +1,13 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: label: { -parse/0: instruction: 37 +parse/0: instruction: loop-unless parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} parse/0: label: } diff --git a/cpp/.traces/maybe_convert b/cpp/.traces/maybe_convert index 144051ce..3baed6d3 100644 --- a/cpp/.traces/maybe_convert +++ b/cpp/.traces/maybe_convert @@ -1,13 +1,13 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "35", value: 0, type: 0, properties: ["35": "literal"]} parse/0: product: {name: "13", value: 0, type: 1, properties: ["13": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "36", value: 0, type: 0, properties: ["36": "literal"]} parse/0: product: {name: "14", value: 0, type: 1, properties: ["14": "integer"]} -parse/0: instruction: 25 +parse/0: instruction: maybe-convert parse/0: ingredient: {name: "12", value: 0, type: 8, properties: ["12": "integer-or-point"]} parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "variant"]} parse/0: product: {name: "20", value: 0, type: 2-6, properties: ["20": "address":"point"]} diff --git a/cpp/.traces/maybe_convert_fail b/cpp/.traces/maybe_convert_fail index cdf30c9d..b2b3c83a 100644 --- a/cpp/.traces/maybe_convert_fail +++ b/cpp/.traces/maybe_convert_fail @@ -1,13 +1,13 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "35", value: 0, type: 0, properties: ["35": "literal"]} parse/0: product: {name: "13", value: 0, type: 1, properties: ["13": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "36", value: 0, type: 0, properties: ["36": "literal"]} parse/0: product: {name: "14", value: 0, type: 1, properties: ["14": "integer"]} -parse/0: instruction: 25 +parse/0: instruction: maybe-convert parse/0: ingredient: {name: "12", value: 0, type: 8, properties: ["12": "integer-or-point"]} parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "variant"]} parse/0: product: {name: "20", value: 0, type: 2-6, properties: ["20": "address":"point"]} diff --git a/cpp/.traces/maybe_convert_named b/cpp/.traces/maybe_convert_named index a26fcaab..f0576fe3 100644 --- a/cpp/.traces/maybe_convert_named +++ b/cpp/.traces/maybe_convert_named @@ -1,13 +1,13 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "35", value: 0, type: 0, properties: ["35": "literal"]} parse/0: product: {name: "13", value: 0, type: 1, properties: ["13": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "36", value: 0, type: 0, properties: ["36": "literal"]} parse/0: product: {name: "14", value: 0, type: 1, properties: ["14": "integer"]} -parse/0: instruction: 25 +parse/0: instruction: maybe-convert parse/0: ingredient: {name: "12", value: 0, type: 8, properties: ["12": "integer-or-point"]} parse/0: ingredient: {name: "p", value: 0, type: 0, properties: ["p": "variant"]} parse/0: product: {name: "20", value: 0, type: 2-6, properties: ["20": "address":"point"]} diff --git a/cpp/.traces/multiply b/cpp/.traces/multiply index 201445a8..74c0c818 100644 --- a/cpp/.traces/multiply +++ b/cpp/.traces/multiply @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "4", value: 0, type: 0, properties: ["4": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "6", value: 0, type: 0, properties: ["6": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 4 +parse/0: instruction: multiply parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/multiply_literal b/cpp/.traces/multiply_literal index 119f88f4..20701f9b 100644 --- a/cpp/.traces/multiply_literal +++ b/cpp/.traces/multiply_literal @@ -1,4 +1,4 @@ -parse/0: instruction: 4 +parse/0: instruction: multiply parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} diff --git a/cpp/.traces/new b/cpp/.traces/new index ed9a4017..fdb33f1d 100644 --- a/cpp/.traces/new +++ b/cpp/.traces/new @@ -1,10 +1,10 @@ -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "integer", value: 0, type: 0, properties: ["integer": "type"]} parse/0: product: {name: "1", value: 0, type: 2-1, properties: ["1": "address":"integer", "raw": ]} -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "integer", value: 0, type: 0, properties: ["integer": "type"]} parse/0: product: {name: "2", value: 0, type: 2-1, properties: ["2": "address":"integer", "raw": ]} -parse/0: instruction: 13 +parse/0: instruction: equal parse/0: ingredient: {name: "1", value: 0, type: 2-1, properties: ["1": "address":"integer", "raw": ]} parse/0: ingredient: {name: "2", value: 0, type: 2-1, properties: ["2": "address":"integer", "raw": ]} parse/0: product: {name: "3", value: 0, type: 3, properties: ["3": "boolean", "raw": ]} diff --git a/cpp/.traces/new_array b/cpp/.traces/new_array index 204e39bf..e692fc38 100644 --- a/cpp/.traces/new_array +++ b/cpp/.traces/new_array @@ -1,11 +1,11 @@ -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "integer", value: 0, type: 0, properties: ["integer": "type"]} parse/0: ingredient: {name: "5", value: 0, type: 0, properties: ["5": "literal"]} parse/0: product: {name: "1", value: 0, type: 2-5-1, properties: ["1": "address":"array":"integer", "raw": ]} -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "integer", value: 0, type: 0, properties: ["integer": "type"]} parse/0: product: {name: "2", value: 0, type: 2-1, properties: ["2": "address":"integer", "raw": ]} -parse/0: instruction: 3 +parse/0: instruction: subtract parse/0: ingredient: {name: "2", value: 0, type: 2-1, properties: ["2": "address":"integer", "raw": ]} parse/0: ingredient: {name: "1", value: 0, type: 2-5-1, properties: ["1": "address":"array":"integer", "raw": ]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer", "raw": ]} diff --git a/cpp/.traces/new_concurrent b/cpp/.traces/new_concurrent index 13729f50..4f9f5327 100644 --- a/cpp/.traces/new_concurrent +++ b/cpp/.traces/new_concurrent @@ -1,12 +1,12 @@ -parse/0: instruction: 30 +parse/0: instruction: run parse/0: ingredient: {name: "f2", value: 0, type: 0, properties: ["f2": "recipe"]} -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "integer", value: 0, type: 0, properties: ["integer": "type"]} parse/0: product: {name: "1", value: 0, type: 2-1, properties: ["1": "address":"integer", "raw": ]} -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "integer", value: 0, type: 0, properties: ["integer": "type"]} parse/0: product: {name: "2", value: 0, type: 2-1, properties: ["2": "address":"integer", "raw": ]} -parse/0: instruction: 13 +parse/0: instruction: equal parse/0: ingredient: {name: "1", value: 0, type: 2-1, properties: ["1": "address":"integer", "raw": ]} parse/0: ingredient: {name: "2", value: 0, type: 2-1, properties: ["2": "address":"integer", "raw": ]} parse/0: product: {name: "3", value: 0, type: 3, properties: ["3": "boolean", "raw": ]} diff --git a/cpp/.traces/new_overflow b/cpp/.traces/new_overflow index cc8405da..35cdb690 100644 --- a/cpp/.traces/new_overflow +++ b/cpp/.traces/new_overflow @@ -1,7 +1,7 @@ -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "integer", value: 0, type: 0, properties: ["integer": "type"]} parse/0: product: {name: "1", value: 0, type: 2-1, properties: ["1": "address":"integer", "raw": ]} -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "point", value: 0, type: 0, properties: ["point": "type"]} parse/0: product: {name: "2", value: 0, type: 2-6, properties: ["2": "address":"point", "raw": ]} new/0: integer -> 1 diff --git a/cpp/.traces/new_string b/cpp/.traces/new_string index a7d8efd3..3cfa1d7c 100644 --- a/cpp/.traces/new_string +++ b/cpp/.traces/new_string @@ -1,7 +1,7 @@ -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "abc def", value: 0, type: 0, properties: ["abc def": "literal-string"]} parse/0: product: {name: "1", value: 0, type: 2-5-4, properties: ["1": "address":"array":"character"]} -parse/0: instruction: 22 +parse/0: instruction: index parse/0: ingredient: {name: "1", value: 0, type: 2-5-4, properties: ["1": "address":"array":"character", "deref": ]} parse/0: ingredient: {name: "5", value: 0, type: 0, properties: ["5": "literal"]} parse/0: product: {name: "2", value: 0, type: 4, properties: ["2": "character"]} diff --git a/cpp/.traces/next_ingredient b/cpp/.traces/next_ingredient index 19146137..bcc3bfed 100644 --- a/cpp/.traces/next_ingredient +++ b/cpp/.traces/next_ingredient @@ -1,8 +1,8 @@ -parse/0: instruction: 1001 +parse/0: instruction: f parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} -parse/0: instruction: 26 +parse/0: instruction: next-ingredient parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} -parse/0: instruction: 2 +parse/0: instruction: add parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: ingredient: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} parse/0: product: {name: "13", value: 0, type: 1, properties: ["13": "integer"]} diff --git a/cpp/.traces/next_ingredient_missing b/cpp/.traces/next_ingredient_missing index 8180399f..cc1c6d42 100644 --- a/cpp/.traces/next_ingredient_missing +++ b/cpp/.traces/next_ingredient_missing @@ -1,5 +1,5 @@ -parse/0: instruction: 1001 -parse/0: instruction: 26 +parse/0: instruction: f +parse/0: instruction: next-ingredient parse/0: product: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]} parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} after-brace/0: recipe main diff --git a/cpp/.traces/not b/cpp/.traces/not index bc0f45fc..81962f94 100644 --- a/cpp/.traces/not +++ b/cpp/.traces/not @@ -1,7 +1,7 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 9 +parse/0: instruction: not parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} after-brace/0: recipe main diff --git a/cpp/.traces/or b/cpp/.traces/or index 75f0ff13..422558bc 100644 --- a/cpp/.traces/or +++ b/cpp/.traces/or @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 8 +parse/0: instruction: or parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/parse_comment_after_instruction b/cpp/.traces/parse_comment_after_instruction index 5fc3dbfd..5cfc15c8 100644 --- a/cpp/.traces/parse_comment_after_instruction +++ b/cpp/.traces/parse_comment_after_instruction @@ -1,3 +1,3 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} diff --git a/cpp/.traces/parse_comment_amongst_instruction b/cpp/.traces/parse_comment_amongst_instruction index 5fc3dbfd..5cfc15c8 100644 --- a/cpp/.traces/parse_comment_amongst_instruction +++ b/cpp/.traces/parse_comment_amongst_instruction @@ -1,3 +1,3 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} diff --git a/cpp/.traces/parse_comment_amongst_instruction2 b/cpp/.traces/parse_comment_amongst_instruction2 index 5fc3dbfd..5cfc15c8 100644 --- a/cpp/.traces/parse_comment_amongst_instruction2 +++ b/cpp/.traces/parse_comment_amongst_instruction2 @@ -1,3 +1,3 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} diff --git a/cpp/.traces/parse_comment_amongst_instruction3 b/cpp/.traces/parse_comment_amongst_instruction3 index bcd82cfb..a00c722c 100644 --- a/cpp/.traces/parse_comment_amongst_instruction3 +++ b/cpp/.traces/parse_comment_amongst_instruction3 @@ -1,6 +1,6 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} diff --git a/cpp/.traces/parse_comment_outside_recipe b/cpp/.traces/parse_comment_outside_recipe index 5fc3dbfd..5cfc15c8 100644 --- a/cpp/.traces/parse_comment_outside_recipe +++ b/cpp/.traces/parse_comment_outside_recipe @@ -1,3 +1,3 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} diff --git a/cpp/.traces/parse_multiple_ingredients b/cpp/.traces/parse_multiple_ingredients index c94b33e7..5a71e510 100644 --- a/cpp/.traces/parse_multiple_ingredients +++ b/cpp/.traces/parse_multiple_ingredients @@ -1,4 +1,4 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} parse/0: ingredient: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} diff --git a/cpp/.traces/parse_multiple_products b/cpp/.traces/parse_multiple_products index fed63a5d..24bbdb66 100644 --- a/cpp/.traces/parse_multiple_products +++ b/cpp/.traces/parse_multiple_products @@ -1,4 +1,4 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} diff --git a/cpp/.traces/parse_multiple_properties b/cpp/.traces/parse_multiple_properties index 77a2916d..e3b452e0 100644 --- a/cpp/.traces/parse_multiple_properties +++ b/cpp/.traces/parse_multiple_properties @@ -1,3 +1,3 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal", "foo": "bar":"baz"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} diff --git a/cpp/.traces/parse_multiple_types b/cpp/.traces/parse_multiple_types index a0c075d6..39df838e 100644 --- a/cpp/.traces/parse_multiple_types +++ b/cpp/.traces/parse_multiple_types @@ -1,4 +1,4 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} parse/0: ingredient: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} diff --git a/cpp/.traces/parse_properties b/cpp/.traces/parse_properties index 242ee0e4..65d7890e 100644 --- a/cpp/.traces/parse_properties +++ b/cpp/.traces/parse_properties @@ -1,3 +1,3 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} parse/0: product: {name: "1", value: 0, type: 1-2, properties: ["1": "integer":"address", "deref": ]} diff --git a/cpp/.traces/reply b/cpp/.traces/reply index abed04d6..4793d27c 100644 --- a/cpp/.traces/reply +++ b/cpp/.traces/reply @@ -1,14 +1,14 @@ -parse/0: instruction: 1001 +parse/0: instruction: f parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} parse/0: product: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} -parse/0: instruction: 26 +parse/0: instruction: next-ingredient parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} -parse/0: instruction: 2 +parse/0: instruction: add parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} parse/0: ingredient: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} parse/0: product: {name: "13", value: 0, type: 1, properties: ["13": "integer"]} -parse/0: instruction: 29 +parse/0: instruction: reply parse/0: ingredient: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} parse/0: ingredient: {name: "13", value: 0, type: 1, properties: ["13": "integer"]} after-brace/0: recipe main diff --git a/cpp/.traces/reply_container b/cpp/.traces/reply_container index e550c295..c3518d49 100644 --- a/cpp/.traces/reply_container +++ b/cpp/.traces/reply_container @@ -1,12 +1,12 @@ -parse/0: instruction: 1001 +parse/0: instruction: f parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: product: {name: "3", value: 0, type: 6, properties: ["3": "point"]} -parse/0: instruction: 26 +parse/0: instruction: next-ingredient parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "35", value: 0, type: 0, properties: ["35": "literal"]} parse/0: product: {name: "13", value: 0, type: 1, properties: ["13": "integer"]} -parse/0: instruction: 29 +parse/0: instruction: reply parse/0: ingredient: {name: "12", value: 0, type: 6, properties: ["12": "point"]} after-brace/0: recipe main after-brace/0: f ... diff --git a/cpp/.traces/reply_same_as_ingredient b/cpp/.traces/reply_same_as_ingredient index 5448d9eb..ee430bd7 100644 --- a/cpp/.traces/reply_same_as_ingredient +++ b/cpp/.traces/reply_same_as_ingredient @@ -1,12 +1,12 @@ -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "integer", value: 0, type: 0, properties: ["integer": "type"]} parse/0: product: {name: "1", value: 0, type: 2-1, properties: ["1": "address":"integer"]} -parse/0: instruction: 1001 +parse/0: instruction: test1 parse/0: ingredient: {name: "1", value: 0, type: 2-1, properties: ["1": "address":"integer"]} parse/0: product: {name: "2", value: 0, type: 2-1, properties: ["2": "address":"integer"]} -parse/0: instruction: 26 +parse/0: instruction: next-ingredient parse/0: product: {name: "10", value: 0, type: 2-1, properties: ["10": "address":"integer"]} -parse/0: instruction: 29 +parse/0: instruction: reply parse/0: ingredient: {name: "10", value: 0, type: 2-1, properties: ["10": "address":"integer", "same-as-ingredient": "0"]} new/0: integer -> 1 after-brace/0: recipe main diff --git a/cpp/.traces/return_on_fallthrough b/cpp/.traces/return_on_fallthrough index 3a5dd1e9..f6df99fb 100644 --- a/cpp/.traces/return_on_fallthrough +++ b/cpp/.traces/return_on_fallthrough @@ -1,17 +1,17 @@ -parse/0: instruction: 1001 -parse/0: instruction: 1 +parse/0: instruction: f +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "5", value: 0, type: 1, properties: ["5": "integer"]} after-brace/0: recipe main diff --git a/cpp/.traces/rewind_ingredients b/cpp/.traces/rewind_ingredients index 496ad7a1..c1231232 100644 --- a/cpp/.traces/rewind_ingredients +++ b/cpp/.traces/rewind_ingredients @@ -1,12 +1,12 @@ -parse/0: instruction: 1001 +parse/0: instruction: f parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} -parse/0: instruction: 26 +parse/0: instruction: next-ingredient parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} -parse/0: instruction: 26 +parse/0: instruction: next-ingredient parse/0: product: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]} parse/0: product: {name: "1", value: 0, type: 3, properties: ["1": "boolean"]} -parse/0: instruction: 27 -parse/0: instruction: 26 +parse/0: instruction: rewind-ingredients +parse/0: instruction: next-ingredient parse/0: product: {name: "13", value: 0, type: 1, properties: ["13": "integer"]} parse/0: product: {name: "2", value: 0, type: 3, properties: ["2": "boolean"]} after-brace/0: recipe main diff --git a/cpp/.traces/run_dummy b/cpp/.traces/run_dummy index 49099964..6cc72980 100644 --- a/cpp/.traces/run_dummy +++ b/cpp/.traces/run_dummy @@ -1,4 +1,4 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "_", value: 0, type: 0, properties: ["_": "dummy"]} after-brace/0: recipe main diff --git a/cpp/.traces/run_label b/cpp/.traces/run_label index 70b6d3af..60cf4bbb 100644 --- a/cpp/.traces/run_label +++ b/cpp/.traces/run_label @@ -1,8 +1,8 @@ parse/0: label: +foo -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} after-brace/0: recipe main diff --git a/cpp/.traces/scheduler b/cpp/.traces/scheduler index 37530a6a..0a02e949 100644 --- a/cpp/.traces/scheduler +++ b/cpp/.traces/scheduler @@ -1,9 +1,9 @@ -parse/0: instruction: 30 +parse/0: instruction: run parse/0: ingredient: {name: "f2", value: 0, type: 0, properties: ["f2": "recipe"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "4", value: 0, type: 0, properties: ["4": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} after-brace/0: recipe f1 diff --git a/cpp/.traces/scheduler_interleaves_routines b/cpp/.traces/scheduler_interleaves_routines index f7bbb4ab..99fc8eb5 100644 --- a/cpp/.traces/scheduler_interleaves_routines +++ b/cpp/.traces/scheduler_interleaves_routines @@ -1,15 +1,15 @@ -parse/0: instruction: 30 +parse/0: instruction: run parse/0: ingredient: {name: "f2", value: 0, type: 0, properties: ["f2": "recipe"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "4", value: 0, type: 0, properties: ["4": "literal"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "4", value: 0, type: 0, properties: ["4": "literal"]} parse/0: product: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} after-brace/0: recipe f1 diff --git a/cpp/.traces/set_default_space b/cpp/.traces/set_default_space index 20340307..b1d99e84 100644 --- a/cpp/.traces/set_default_space +++ b/cpp/.traces/set_default_space @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "5", value: 0, type: 0, properties: ["5": "literal"]} parse/0: product: {name: "10", value: 0, type: 1, properties: ["10": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "10", value: 0, type: 0, properties: ["10": "literal"]} parse/0: product: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} after-brace/0: recipe main diff --git a/cpp/.traces/store_indirect b/cpp/.traces/store_indirect index a0926e80..fc979e97 100644 --- a/cpp/.traces/store_indirect +++ b/cpp/.traces/store_indirect @@ -1,7 +1,7 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: product: {name: "1", value: 0, type: 2-1, properties: ["1": "address":"integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 2-1, properties: ["1": "address":"integer", "deref": ]} after-brace/0: recipe main diff --git a/cpp/.traces/string-append-1 b/cpp/.traces/string-append-1 index dc76318d..afdc8dcb 100644 --- a/cpp/.traces/string-append-1 +++ b/cpp/.traces/string-append-1 @@ -1,14 +1,14 @@ -parse/0: instruction: 38 +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": ]} -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: " world!", value: 0, type: 0, properties: [" world!": "literal-string"]} parse/0: product: {name: "2", value: 0, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} -parse/0: instruction: 106 +parse/0: instruction: string-append parse/0: ingredient: {name: "1", value: 0, type: 2-5-4, properties: ["1": "address":"array":"character", "raw": ]} parse/0: ingredient: {name: "2", value: 0, type: 2-5-4, properties: ["2": "address":"array":"character", "raw": ]} parse/0: product: {name: "3", value: 0, type: 2-5-4, properties: ["3": "address":"array":"character", "raw": ]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "3", value: 0, type: 2-5-4, properties: ["3": "address":"array":"character", "raw": , "deref": ]} parse/0: product: {name: "4", value: 0, type: 5-4, properties: ["4": "array":"character", "raw": ]} new/0: hello, -> 0 diff --git a/cpp/.traces/string-equal-common-lengths-but-distinct b/cpp/.traces/string-equal-common-lengths-but-distinct index eb00443a..3decd91b 100644 --- a/cpp/.traces/string-equal-common-lengths-but-distinct +++ b/cpp/.traces/string-equal-common-lengths-but-distinct @@ -1,14 +1,14 @@ -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "location", value: 0, type: 0, properties: ["location": "type"]} parse/0: ingredient: {name: "30", value: 0, type: 0, properties: ["30": "literal"]} parse/0: product: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} parse/0: product: {name: "x", value: 0, type: 2-5-4, properties: ["x": "address":"array":"character"]} -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "abd", value: 0, type: 0, properties: ["abd": "literal-string"]} parse/0: product: {name: "y", value: 0, type: 2-5-4, properties: ["y": "address":"array":"character"]} -parse/0: instruction: 100 +parse/0: instruction: string-equal parse/0: ingredient: {name: "x", value: 0, type: 2-5-4, properties: ["x": "address":"array":"character"]} parse/0: ingredient: {name: "y", value: 0, type: 2-5-4, properties: ["y": "address":"array":"character"]} parse/0: product: {name: "3", value: 0, type: 3, properties: ["3": "boolean", "raw": ]} diff --git a/cpp/.traces/string-equal-distinct-lengths b/cpp/.traces/string-equal-distinct-lengths index 8d2c674d..dd9eeed0 100644 --- a/cpp/.traces/string-equal-distinct-lengths +++ b/cpp/.traces/string-equal-distinct-lengths @@ -1,14 +1,14 @@ -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "location", value: 0, type: 0, properties: ["location": "type"]} parse/0: ingredient: {name: "30", value: 0, type: 0, properties: ["30": "literal"]} parse/0: product: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} parse/0: product: {name: "x", value: 0, type: 2-5-4, properties: ["x": "address":"array":"character"]} -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "abcd", value: 0, type: 0, properties: ["abcd": "literal-string"]} parse/0: product: {name: "y", value: 0, type: 2-5-4, properties: ["y": "address":"array":"character"]} -parse/0: instruction: 100 +parse/0: instruction: string-equal parse/0: ingredient: {name: "x", value: 0, type: 2-5-4, properties: ["x": "address":"array":"character"]} parse/0: ingredient: {name: "y", value: 0, type: 2-5-4, properties: ["y": "address":"array":"character"]} parse/0: product: {name: "3", value: 0, type: 3, properties: ["3": "boolean", "raw": ]} diff --git a/cpp/.traces/string-equal-identical b/cpp/.traces/string-equal-identical index 99087c1a..5c23287d 100644 --- a/cpp/.traces/string-equal-identical +++ b/cpp/.traces/string-equal-identical @@ -1,14 +1,14 @@ -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "location", value: 0, type: 0, properties: ["location": "type"]} parse/0: ingredient: {name: "30", value: 0, type: 0, properties: ["30": "literal"]} parse/0: product: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} parse/0: product: {name: "x", value: 0, type: 2-5-4, properties: ["x": "address":"array":"character"]} -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} parse/0: product: {name: "y", value: 0, type: 2-5-4, properties: ["y": "address":"array":"character"]} -parse/0: instruction: 100 +parse/0: instruction: string-equal parse/0: ingredient: {name: "x", value: 0, type: 2-5-4, properties: ["x": "address":"array":"character"]} parse/0: ingredient: {name: "y", value: 0, type: 2-5-4, properties: ["y": "address":"array":"character"]} parse/0: product: {name: "3", value: 0, type: 3, properties: ["3": "boolean", "raw": ]} diff --git a/cpp/.traces/string-equal-reflexive b/cpp/.traces/string-equal-reflexive index d759d505..8aad4bd5 100644 --- a/cpp/.traces/string-equal-reflexive +++ b/cpp/.traces/string-equal-reflexive @@ -1,11 +1,11 @@ -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "location", value: 0, type: 0, properties: ["location": "type"]} parse/0: ingredient: {name: "30", value: 0, type: 0, properties: ["30": "literal"]} parse/0: product: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} parse/0: product: {name: "x", value: 0, type: 2-5-4, properties: ["x": "address":"array":"character"]} -parse/0: instruction: 100 +parse/0: instruction: string-equal parse/0: ingredient: {name: "x", value: 0, type: 2-5-4, properties: ["x": "address":"array":"character"]} parse/0: ingredient: {name: "x", value: 0, type: 2-5-4, properties: ["x": "address":"array":"character"]} parse/0: product: {name: "3", value: 0, type: 3, properties: ["3": "boolean", "raw": ]} diff --git a/cpp/.traces/string-equal-with-empty b/cpp/.traces/string-equal-with-empty index 7462567e..fa59bc57 100644 --- a/cpp/.traces/string-equal-with-empty +++ b/cpp/.traces/string-equal-with-empty @@ -1,14 +1,14 @@ -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "location", value: 0, type: 0, properties: ["location": "type"]} parse/0: ingredient: {name: "30", value: 0, type: 0, properties: ["30": "literal"]} parse/0: product: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "", value: 0, type: 0, properties: ["": "literal-string"]} parse/0: product: {name: "x", value: 0, type: 2-5-4, properties: ["x": "address":"array":"character"]} -parse/0: instruction: 38 +parse/0: instruction: new parse/0: ingredient: {name: "abcd", value: 0, type: 0, properties: ["abcd": "literal-string"]} parse/0: product: {name: "y", value: 0, type: 2-5-4, properties: ["y": "address":"array":"character"]} -parse/0: instruction: 100 +parse/0: instruction: string-equal parse/0: ingredient: {name: "x", value: 0, type: 2-5-4, properties: ["x": "address":"array":"character"]} parse/0: ingredient: {name: "y", value: 0, type: 2-5-4, properties: ["y": "address":"array":"character"]} parse/0: product: {name: "3", value: 0, type: 3, properties: ["3": "boolean", "raw": ]} diff --git a/cpp/.traces/string_literal b/cpp/.traces/string_literal index 9b5d14b4..991095f5 100644 --- a/cpp/.traces/string_literal +++ b/cpp/.traces/string_literal @@ -1,3 +1,3 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "abc def", value: 0, type: 0, properties: ["abc def": "literal-string"]} parse/0: product: {name: "1", value: 0, type: 2-5-4, properties: ["1": "address":"array":"character"]} diff --git a/cpp/.traces/string_literal_and_comment b/cpp/.traces/string_literal_and_comment index 9ad1bff7..6df4c4d6 100644 --- a/cpp/.traces/string_literal_and_comment +++ b/cpp/.traces/string_literal_and_comment @@ -1,3 +1,3 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} parse/0: product: {name: "1", value: 0, type: 2-5-4, properties: ["1": "address":"array":"character"]} diff --git a/cpp/.traces/string_literal_nested b/cpp/.traces/string_literal_nested index 937d78f7..96a6e7b5 100644 --- a/cpp/.traces/string_literal_nested +++ b/cpp/.traces/string_literal_nested @@ -1,3 +1,3 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "abc [def]", value: 0, type: 0, properties: ["abc [def]": "literal-string"]} parse/0: product: {name: "1", value: 0, type: 2-5-4, properties: ["1": "address":"array":"character"]} diff --git a/cpp/.traces/string_literal_with_colons b/cpp/.traces/string_literal_with_colons index 698f0358..98e7d604 100644 --- a/cpp/.traces/string_literal_with_colons +++ b/cpp/.traces/string_literal_with_colons @@ -1,3 +1,3 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "abc:def/ghi", value: 0, type: 0, properties: ["abc:def/ghi": "literal-string"]} parse/0: product: {name: "1", value: 0, type: 2-5-4, properties: ["1": "address":"array":"character"]} diff --git a/cpp/.traces/subtract b/cpp/.traces/subtract index feb671e9..14a46ec2 100644 --- a/cpp/.traces/subtract +++ b/cpp/.traces/subtract @@ -1,10 +1,10 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 3 +parse/0: instruction: subtract parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} diff --git a/cpp/.traces/subtract_literal b/cpp/.traces/subtract_literal index 7e7decc0..b9b587b6 100644 --- a/cpp/.traces/subtract_literal +++ b/cpp/.traces/subtract_literal @@ -1,4 +1,4 @@ -parse/0: instruction: 3 +parse/0: instruction: subtract parse/0: ingredient: {name: "5", value: 0, type: 0, properties: ["5": "literal"]} parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} diff --git a/cpp/.traces/surrounding_space b/cpp/.traces/surrounding_space index 19cbc449..8787231f 100644 --- a/cpp/.traces/surrounding_space +++ b/cpp/.traces/surrounding_space @@ -1,19 +1,19 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "5", value: 0, type: 0, properties: ["5": "literal"]} parse/0: product: {name: "10", value: 0, type: 1, properties: ["10": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "5", value: 0, type: 0, properties: ["5": "literal"]} parse/0: product: {name: "20", value: 0, type: 1, properties: ["20": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "10", value: 0, type: 0, properties: ["10": "literal"]} parse/0: product: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "20", value: 0, type: 0, properties: ["20": "literal"]} parse/0: product: {name: "0", value: 0, type: 2-5-1, properties: ["0": "address":"array":"location", "names": "dummy"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "32", value: 0, type: 0, properties: ["32": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy 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: recipe main is surrounded by dummy diff --git a/cpp/.traces/trace b/cpp/.traces/trace index fa3bb91c..888c600a 100644 --- a/cpp/.traces/trace +++ b/cpp/.traces/trace @@ -1,4 +1,4 @@ -parse/0: instruction: 18 +parse/0: instruction: trace parse/0: ingredient: {name: "foo", value: 0, type: 0, properties: ["foo": "literal-string"]} parse/0: ingredient: {name: "this is a trace in mu", value: 0, type: 0, properties: ["this is a trace in mu": "literal-string"]} after-brace/0: recipe main diff --git a/cpp/.traces/trace_in_mu b/cpp/.traces/trace_in_mu index ff29523a..8fb1484a 100644 --- a/cpp/.traces/trace_in_mu +++ b/cpp/.traces/trace_in_mu @@ -1,4 +1,4 @@ -parse/0: instruction: 18 +parse/0: instruction: trace parse/0: ingredient: {name: "foo", value: 0, type: 0, properties: ["foo": "literal-string"]} parse/0: ingredient: {name: "aaa", value: 0, type: 0, properties: ["aaa": "literal-string"]} after-brace/0: recipe test-trace_in_mu diff --git a/cpp/.traces/wait_for_location b/cpp/.traces/wait_for_location index 27642c88..ab2205d4 100644 --- a/cpp/.traces/wait_for_location +++ b/cpp/.traces/wait_for_location @@ -1,14 +1,14 @@ -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 30 +parse/0: instruction: run parse/0: ingredient: {name: "f2", value: 0, type: 0, properties: ["f2": "recipe"]} -parse/0: instruction: 31 +parse/0: instruction: wait-for-location parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} -parse/0: instruction: 1 +parse/0: instruction: copy parse/0: ingredient: {name: "34", value: 0, type: 0, properties: ["34": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} after-brace/0: recipe f1 diff --git a/cpp/011load.cc b/cpp/011load.cc index c643a92e..9afe370e 100644 --- a/cpp/011load.cc +++ b/cpp/011load.cc @@ -5,7 +5,7 @@ recipe main [ 1:integer <- copy 23:literal ] -+parse: instruction: 1 ++parse: instruction: copy +parse: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} +parse: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} @@ -122,7 +122,7 @@ bool next_instruction(istream& in, instruction* curr) { curr->ingredients.push_back(reagent(*p)); } - trace("parse") << "instruction: " << curr->operation; + trace("parse") << "instruction: " << curr->name; for (vector<reagent>::iterator p = curr->ingredients.begin(); p != curr->ingredients.end(); ++p) { trace("parse") << " ingredient: " << p->to_string(); } @@ -206,7 +206,7 @@ recently_added_recipes.clear(); recipe main [ 1:integer <- copy 23:literal ] -+parse: instruction: 1 ++parse: instruction: copy +parse: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} +parse: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} @@ -215,7 +215,7 @@ recipe main [ # comment 1:integer <- copy 23:literal ] -+parse: instruction: 1 ++parse: instruction: copy +parse: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} +parse: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} @@ -225,7 +225,7 @@ recipe main [ 1:integer <- copy 23:literal # comment ] -+parse: instruction: 1 ++parse: instruction: copy +parse: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} +parse: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} @@ -235,10 +235,10 @@ recipe main [ # comment 2:integer <- copy 23:literal ] -+parse: instruction: 1 ++parse: instruction: copy +parse: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} +parse: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} -+parse: instruction: 1 ++parse: instruction: copy +parse: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} +parse: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} @@ -246,7 +246,7 @@ recipe main [ recipe main [ 1:integer <- copy 23:literal # comment ] -+parse: instruction: 1 ++parse: instruction: copy +parse: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} +parse: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} @@ -255,13 +255,12 @@ recipe main [ +foo ] +parse: label: +foo --parse: instruction: 1 :(scenario parse_multiple_properties) recipe main [ 1:integer <- copy 23:literal/foo:bar:baz ] -+parse: instruction: 1 ++parse: instruction: copy +parse: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal", "foo": "bar":"baz"]} +parse: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} @@ -269,7 +268,7 @@ recipe main [ recipe main [ 1:integer, 2:integer <- copy 23:literal ] -+parse: instruction: 1 ++parse: instruction: copy +parse: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} +parse: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} +parse: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} @@ -278,7 +277,7 @@ recipe main [ recipe main [ 1:integer, 2:integer <- copy 23:literal, 4:integer ] -+parse: instruction: 1 ++parse: instruction: copy +parse: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} +parse: ingredient: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} +parse: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} @@ -288,7 +287,7 @@ recipe main [ recipe main [ 1:integer, 2:address:integer <- copy 23:literal, 4:integer ] -+parse: instruction: 1 ++parse: instruction: copy +parse: ingredient: {name: "23", value: 0, type: 0, properties: ["23": "literal"]} +parse: ingredient: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} +parse: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} diff --git a/cpp/013literal_string.cc b/cpp/013literal_string.cc index c709f58f..57ac8c3a 100644 --- a/cpp/013literal_string.cc +++ b/cpp/013literal_string.cc @@ -71,7 +71,7 @@ recipe main [ recipe main [ 1:address:array:character <- copy [abc] # comment ] -+parse: instruction: 1 ++parse: instruction: copy +parse: ingredient: {name: "abc", value: 0, type: 0, properties: ["abc": "literal-string"]} +parse: product: {name: "1", value: 0, type: 2-5-4, properties: ["1": "address":"array":"character"]} # no other ingredients |