diff options
66 files changed, 141 insertions, 111 deletions
diff --git a/cpp/.traces/array_length b/cpp/.traces/array_length index 1c08d765..c42d8aa0 100644 --- a/cpp/.traces/array_length +++ b/cpp/.traces/array_length @@ -10,7 +10,7 @@ parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} parse/0: instruction: 1 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: 24 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 new file mode 100644 index 00000000..78fcb823 --- /dev/null +++ b/cpp/.traces/assert @@ -0,0 +1,10 @@ +parse/0: instruction: 19 +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 +after-brace/0: assert ... +new/0: routine allocated memory from 1000 to 101000 +schedule/0: main +run/0: instruction main/0 +run/0: ingredient 0 is 0 +warn/0: this is an assert in mu diff --git a/cpp/.traces/brace_conversion b/cpp/.traces/brace_conversion index e1852440..639751a8 100644 --- a/cpp/.traces/brace_conversion +++ b/cpp/.traces/brace_conversion @@ -1,5 +1,5 @@ parse/0: label: { -parse/0: instruction: 31 +parse/0: instruction: 32 parse/0: instruction: 1 parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} parse/0: product: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} diff --git a/cpp/.traces/brace_conversion_and_run b/cpp/.traces/brace_conversion_and_run index 78844009..65b150b9 100644 --- a/cpp/.traces/brace_conversion_and_run +++ b/cpp/.traces/brace_conversion_and_run @@ -9,7 +9,7 @@ parse/0: instruction: 13 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: 32 +parse/0: instruction: 33 parse/0: ingredient: {name: "3", value: 0, type: 3, properties: ["3": "boolean"]} parse/0: instruction: 4 parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} @@ -19,7 +19,7 @@ parse/0: instruction: 3 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: 34 +parse/0: instruction: 35 parse/0: label: } parse/0: instruction: 1 parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} diff --git a/cpp/.traces/break_cascading b/cpp/.traces/break_cascading index be0dcb75..7cabc61b 100644 --- a/cpp/.traces/break_cascading +++ b/cpp/.traces/break_cascading @@ -2,10 +2,10 @@ parse/0: instruction: 1 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: 31 +parse/0: instruction: 32 parse/0: label: } parse/0: label: { -parse/0: instruction: 31 +parse/0: instruction: 32 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 a4bf4668..76005d1c 100644 --- a/cpp/.traces/break_cascading2 +++ b/cpp/.traces/break_cascading2 @@ -5,13 +5,13 @@ parse/0: instruction: 1 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: 31 +parse/0: instruction: 32 parse/0: instruction: 1 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: 31 +parse/0: instruction: 32 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 5dc33d5f..1b752c4d 100644 --- a/cpp/.traces/break_empty_block +++ b/cpp/.traces/break_empty_block @@ -2,7 +2,7 @@ parse/0: instruction: 1 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: 31 +parse/0: instruction: 32 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 ba84c1bb..ad96ee07 100644 --- a/cpp/.traces/break_if +++ b/cpp/.traces/break_if @@ -5,14 +5,14 @@ parse/0: instruction: 1 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: 33 parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: instruction: 1 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: 31 +parse/0: instruction: 32 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 1f66321f..54cbc9a4 100644 --- a/cpp/.traces/break_label +++ b/cpp/.traces/break_label @@ -2,7 +2,7 @@ parse/0: instruction: 1 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: 31 +parse/0: instruction: 32 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 2879c48a..189b357e 100644 --- a/cpp/.traces/break_nested +++ b/cpp/.traces/break_nested @@ -5,7 +5,7 @@ parse/0: label: { parse/0: instruction: 1 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: 31 +parse/0: instruction: 32 parse/0: label: { parse/0: instruction: 1 parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} diff --git a/cpp/.traces/break_nested_degenerate b/cpp/.traces/break_nested_degenerate index d451959f..5dbbdacb 100644 --- a/cpp/.traces/break_nested_degenerate +++ b/cpp/.traces/break_nested_degenerate @@ -5,7 +5,7 @@ parse/0: label: { parse/0: instruction: 1 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: 31 +parse/0: instruction: 32 parse/0: label: { parse/0: label: } parse/0: instruction: 1 diff --git a/cpp/.traces/break_nested_degenerate2 b/cpp/.traces/break_nested_degenerate2 index 47f21f34..63c761c4 100644 --- a/cpp/.traces/break_nested_degenerate2 +++ b/cpp/.traces/break_nested_degenerate2 @@ -5,7 +5,7 @@ parse/0: label: { parse/0: instruction: 1 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: 31 +parse/0: instruction: 32 parse/0: label: { parse/0: label: } parse/0: label: } diff --git a/cpp/.traces/break_unless b/cpp/.traces/break_unless index 8557c249..ece4a491 100644 --- a/cpp/.traces/break_unless +++ b/cpp/.traces/break_unless @@ -5,7 +5,7 @@ parse/0: instruction: 1 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: 34 parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: instruction: 1 parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} diff --git a/cpp/.traces/buffer-append-works b/cpp/.traces/buffer-append-works index dbd2345d..b7e64ecd 100644 --- a/cpp/.traces/buffer-append-works +++ b/cpp/.traces/buffer-append-works @@ -1,11 +1,11 @@ -parse/0: instruction: 37 +parse/0: instruction: 38 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: 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: 19 +parse/0: instruction: 20 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"]} @@ -21,7 +21,7 @@ parse/0: instruction: 104 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: 19 +parse/0: instruction: 20 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"]} @@ -37,7 +37,7 @@ parse/0: instruction: 104 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: 19 +parse/0: instruction: 20 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"]} @@ -45,7 +45,7 @@ parse/0: instruction: 13 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: 19 +parse/0: instruction: 20 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": ]} diff --git a/cpp/.traces/channel-initialization b/cpp/.traces/channel-initialization index 764f83ab..7b89ea19 100644 --- a/cpp/.traces/channel-initialization +++ b/cpp/.traces/channel-initialization @@ -1,11 +1,11 @@ parse/0: instruction: 108 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: 19 +parse/0: instruction: 20 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: 19 +parse/0: instruction: 20 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-increments-full b/cpp/.traces/channel-read-increments-full index dc1f8a71..0dd58952 100644 --- a/cpp/.traces/channel-read-increments-full +++ b/cpp/.traces/channel-read-increments-full @@ -9,11 +9,11 @@ parse/0: instruction: 111 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: 19 +parse/0: instruction: 20 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: 19 +parse/0: instruction: 20 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-wrap b/cpp/.traces/channel-wrap index 9031c06f..8b55b85b 100644 --- a/cpp/.traces/channel-wrap +++ b/cpp/.traces/channel-wrap @@ -9,11 +9,11 @@ parse/0: instruction: 111 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: 19 +parse/0: instruction: 20 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: 19 +parse/0: instruction: 20 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"]} @@ -21,7 +21,7 @@ parse/0: instruction: 109 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: 19 +parse/0: instruction: 20 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"]} @@ -29,7 +29,7 @@ parse/0: instruction: 111 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: 19 +parse/0: instruction: 20 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-increments-free b/cpp/.traces/channel-write-increments-free index 71f3a49f..1f5b701b 100644 --- a/cpp/.traces/channel-write-increments-free +++ b/cpp/.traces/channel-write-increments-free @@ -5,11 +5,11 @@ parse/0: instruction: 109 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: 19 +parse/0: instruction: 20 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: 19 +parse/0: instruction: 20 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/closure b/cpp/.traces/closure index ae880949..d9fff00a 100644 --- a/cpp/.traces/closure +++ b/cpp/.traces/closure @@ -1,4 +1,4 @@ -parse/0: instruction: 37 +parse/0: instruction: 38 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"]} @@ -10,7 +10,7 @@ parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer", parse/0: instruction: 1002 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: 37 +parse/0: instruction: 38 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"]} @@ -20,13 +20,13 @@ parse/0: product: {name: "x", value: 0, type: 1, properties: ["x": "integer"]} parse/0: instruction: 1 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: 28 +parse/0: instruction: 29 parse/0: ingredient: {name: "default-space", value: 0, type: 2-5-1, properties: ["default-space": "address":"array":"location"]} -parse/0: instruction: 37 +parse/0: instruction: 38 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: 25 +parse/0: instruction: 26 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: ingredient: {name: "y", value: 0, type: 1, properties: ["y": "integer", "space": "1"]} @@ -35,7 +35,7 @@ parse/0: product: {name: "y", value: 0, type: 1, properties: ["y": "integer", parse/0: instruction: 1 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: 28 +parse/0: instruction: 29 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_transforms_container_elements b/cpp/.traces/convert_names_transforms_container_elements index db4022f3..3dbd14a4 100644 --- a/cpp/.traces/convert_names_transforms_container_elements +++ b/cpp/.traces/convert_names_transforms_container_elements @@ -1,8 +1,8 @@ -parse/0: instruction: 19 +parse/0: instruction: 20 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: 19 +parse/0: instruction: 20 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/deref_sidesteps_default_space_in_get b/cpp/.traces/deref_sidesteps_default_space_in_get index 3be4a24e..8f82f134 100644 --- a/cpp/.traces/deref_sidesteps_default_space_in_get +++ b/cpp/.traces/deref_sidesteps_default_space_in_get @@ -13,7 +13,7 @@ parse/0: product: {name: "default-space", value: 0, type: 2-5-1, properties: [ parse/0: instruction: 1 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: 19 +parse/0: instruction: 20 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 17c89cf7..0c273faa 100644 --- a/cpp/.traces/deref_sidesteps_default_space_in_index +++ b/cpp/.traces/deref_sidesteps_default_space_in_index @@ -16,7 +16,7 @@ parse/0: product: {name: "default-space", value: 0, type: 2-5-1, properties: [ parse/0: instruction: 1 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: 21 +parse/0: instruction: 22 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/get b/cpp/.traces/get index fe7d3c64..5cb3bffa 100644 --- a/cpp/.traces/get +++ b/cpp/.traces/get @@ -4,7 +4,7 @@ parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer" parse/0: instruction: 1 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: 19 +parse/0: instruction: 20 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 4eedad6e..1cf720e0 100644 --- a/cpp/.traces/get_address +++ b/cpp/.traces/get_address @@ -4,7 +4,7 @@ parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer" parse/0: instruction: 1 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: 21 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 32f8a46f..45b0664b 100644 --- a/cpp/.traces/get_address_indirect +++ b/cpp/.traces/get_address_indirect @@ -7,7 +7,7 @@ parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: instruction: 1 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: 21 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_handles_nested_container_elements b/cpp/.traces/get_handles_nested_container_elements index 6336742b..797b8e80 100644 --- a/cpp/.traces/get_handles_nested_container_elements +++ b/cpp/.traces/get_handles_nested_container_elements @@ -7,7 +7,7 @@ parse/0: product: {name: "13", value: 0, type: 1, properties: ["13": "integer" parse/0: instruction: 1 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: 19 +parse/0: instruction: 20 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 ccd0023b..a084d7cf 100644 --- a/cpp/.traces/get_indirect +++ b/cpp/.traces/get_indirect @@ -7,7 +7,7 @@ parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: instruction: 1 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: 19 +parse/0: instruction: 20 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/include_nonderef_properties b/cpp/.traces/include_nonderef_properties index 97df71c8..1af02dd2 100644 --- a/cpp/.traces/include_nonderef_properties +++ b/cpp/.traces/include_nonderef_properties @@ -7,7 +7,7 @@ parse/0: product: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: instruction: 1 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: 19 +parse/0: instruction: 20 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 94817e8a..006eb847 100644 --- a/cpp/.traces/index +++ b/cpp/.traces/index @@ -10,7 +10,7 @@ parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} parse/0: instruction: 1 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: 21 +parse/0: instruction: 22 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 5d57456b..59ab5e2c 100644 --- a/cpp/.traces/index_address +++ b/cpp/.traces/index_address @@ -10,7 +10,7 @@ parse/0: product: {name: "3", value: 0, type: 1, properties: ["3": "integer"]} parse/0: instruction: 1 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: 23 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 40432d98..6437422e 100644 --- a/cpp/.traces/index_direct_offset +++ b/cpp/.traces/index_direct_offset @@ -13,7 +13,7 @@ parse/0: product: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} parse/0: instruction: 1 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: 21 +parse/0: instruction: 22 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 570e5ade..0f2ccc49 100644 --- a/cpp/.traces/index_indirect +++ b/cpp/.traces/index_indirect @@ -13,7 +13,7 @@ parse/0: product: {name: "4", value: 0, type: 1, properties: ["4": "integer"]} parse/0: instruction: 1 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: 21 +parse/0: instruction: 22 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 55af7c31..0abe066b 100644 --- a/cpp/.traces/ingredient +++ b/cpp/.traces/ingredient @@ -1,10 +1,10 @@ parse/0: instruction: 1001 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: 27 +parse/0: instruction: 28 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: 25 +parse/0: instruction: 26 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/interpolate-at-end b/cpp/.traces/interpolate-at-end index c0093a24..02ec2bfc 100644 --- a/cpp/.traces/interpolate-at-end +++ b/cpp/.traces/interpolate-at-end @@ -1,7 +1,7 @@ -parse/0: instruction: 37 +parse/0: instruction: 38 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: 37 +parse/0: instruction: 38 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 diff --git a/cpp/.traces/interpolate-at-start b/cpp/.traces/interpolate-at-start index 69b84ff5..51a4c657 100644 --- a/cpp/.traces/interpolate-at-start +++ b/cpp/.traces/interpolate-at-start @@ -1,7 +1,7 @@ -parse/0: instruction: 37 +parse/0: instruction: 38 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: 37 +parse/0: instruction: 38 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 diff --git a/cpp/.traces/interpolate-works b/cpp/.traces/interpolate-works index b033c1fd..ef70cc9f 100644 --- a/cpp/.traces/interpolate-works +++ b/cpp/.traces/interpolate-works @@ -1,7 +1,7 @@ -parse/0: instruction: 37 +parse/0: instruction: 38 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: 37 +parse/0: instruction: 38 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 diff --git a/cpp/.traces/loop b/cpp/.traces/loop index d68874c4..3516306a 100644 --- a/cpp/.traces/loop +++ b/cpp/.traces/loop @@ -8,7 +8,7 @@ parse/0: label: { parse/0: instruction: 1 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: 34 +parse/0: instruction: 35 parse/0: label: } brace/0: 1000: push (open, 2) brace/0: push (close, 5) diff --git a/cpp/.traces/loop_nested b/cpp/.traces/loop_nested index 37ccf23f..b33794cb 100644 --- a/cpp/.traces/loop_nested +++ b/cpp/.traces/loop_nested @@ -10,7 +10,7 @@ parse/0: instruction: 1 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: 35 +parse/0: instruction: 36 parse/0: ingredient: {name: "4", value: 0, type: 3, properties: ["4": "boolean"]} parse/0: instruction: 1 parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} diff --git a/cpp/.traces/loop_unless b/cpp/.traces/loop_unless index efd39cc2..06003c98 100644 --- a/cpp/.traces/loop_unless +++ b/cpp/.traces/loop_unless @@ -5,7 +5,7 @@ parse/0: instruction: 1 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: 36 +parse/0: instruction: 37 parse/0: ingredient: {name: "2", value: 0, type: 1, properties: ["2": "integer"]} parse/0: instruction: 1 parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} diff --git a/cpp/.traces/maybe_convert b/cpp/.traces/maybe_convert index 23458247..144051ce 100644 --- a/cpp/.traces/maybe_convert +++ b/cpp/.traces/maybe_convert @@ -7,7 +7,7 @@ parse/0: product: {name: "13", value: 0, type: 1, properties: ["13": "integer" parse/0: instruction: 1 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: 24 +parse/0: instruction: 25 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 8a433de3..cdf30c9d 100644 --- a/cpp/.traces/maybe_convert_fail +++ b/cpp/.traces/maybe_convert_fail @@ -7,7 +7,7 @@ parse/0: product: {name: "13", value: 0, type: 1, properties: ["13": "integer" parse/0: instruction: 1 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: 24 +parse/0: instruction: 25 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 820ec302..a26fcaab 100644 --- a/cpp/.traces/maybe_convert_named +++ b/cpp/.traces/maybe_convert_named @@ -7,7 +7,7 @@ parse/0: product: {name: "13", value: 0, type: 1, properties: ["13": "integer" parse/0: instruction: 1 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: 24 +parse/0: instruction: 25 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/new b/cpp/.traces/new index 6b9fb9a9..ed9a4017 100644 --- a/cpp/.traces/new +++ b/cpp/.traces/new @@ -1,7 +1,7 @@ -parse/0: instruction: 37 +parse/0: instruction: 38 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: 37 +parse/0: instruction: 38 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 diff --git a/cpp/.traces/new_array b/cpp/.traces/new_array index 6f0fc8ac..204e39bf 100644 --- a/cpp/.traces/new_array +++ b/cpp/.traces/new_array @@ -1,8 +1,8 @@ -parse/0: instruction: 37 +parse/0: instruction: 38 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: 37 +parse/0: instruction: 38 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 diff --git a/cpp/.traces/new_concurrent b/cpp/.traces/new_concurrent index 94200129..13729f50 100644 --- a/cpp/.traces/new_concurrent +++ b/cpp/.traces/new_concurrent @@ -1,9 +1,9 @@ -parse/0: instruction: 29 +parse/0: instruction: 30 parse/0: ingredient: {name: "f2", value: 0, type: 0, properties: ["f2": "recipe"]} -parse/0: instruction: 37 +parse/0: instruction: 38 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: 37 +parse/0: instruction: 38 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 diff --git a/cpp/.traces/new_overflow b/cpp/.traces/new_overflow index 877f1f46..cc8405da 100644 --- a/cpp/.traces/new_overflow +++ b/cpp/.traces/new_overflow @@ -1,7 +1,7 @@ -parse/0: instruction: 37 +parse/0: instruction: 38 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: 37 +parse/0: instruction: 38 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 e38d328b..a7d8efd3 100644 --- a/cpp/.traces/new_string +++ b/cpp/.traces/new_string @@ -1,7 +1,7 @@ -parse/0: instruction: 37 +parse/0: instruction: 38 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: 21 +parse/0: instruction: 22 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 9efc9fdd..19146137 100644 --- a/cpp/.traces/next_ingredient +++ b/cpp/.traces/next_ingredient @@ -1,6 +1,6 @@ parse/0: instruction: 1001 parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} -parse/0: instruction: 25 +parse/0: instruction: 26 parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} parse/0: instruction: 2 parse/0: ingredient: {name: "1", value: 0, type: 0, properties: ["1": "literal"]} diff --git a/cpp/.traces/next_ingredient_missing b/cpp/.traces/next_ingredient_missing index c8ae97d7..8180399f 100644 --- a/cpp/.traces/next_ingredient_missing +++ b/cpp/.traces/next_ingredient_missing @@ -1,5 +1,5 @@ parse/0: instruction: 1001 -parse/0: instruction: 25 +parse/0: instruction: 26 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/reply b/cpp/.traces/reply index 49f62ef8..abed04d6 100644 --- a/cpp/.traces/reply +++ b/cpp/.traces/reply @@ -2,13 +2,13 @@ parse/0: instruction: 1001 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: 25 +parse/0: instruction: 26 parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} parse/0: instruction: 2 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: 28 +parse/0: instruction: 29 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 677e6e02..e550c295 100644 --- a/cpp/.traces/reply_container +++ b/cpp/.traces/reply_container @@ -1,12 +1,12 @@ parse/0: instruction: 1001 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: 25 +parse/0: instruction: 26 parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} parse/0: instruction: 1 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: 28 +parse/0: instruction: 29 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 65f90f7d..5448d9eb 100644 --- a/cpp/.traces/reply_same_as_ingredient +++ b/cpp/.traces/reply_same_as_ingredient @@ -1,12 +1,12 @@ -parse/0: instruction: 37 +parse/0: instruction: 38 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: 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: 25 +parse/0: instruction: 26 parse/0: product: {name: "10", value: 0, type: 2-1, properties: ["10": "address":"integer"]} -parse/0: instruction: 28 +parse/0: instruction: 29 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/rewind_ingredients b/cpp/.traces/rewind_ingredients index 3bca656e..496ad7a1 100644 --- a/cpp/.traces/rewind_ingredients +++ b/cpp/.traces/rewind_ingredients @@ -1,12 +1,12 @@ parse/0: instruction: 1001 parse/0: ingredient: {name: "2", value: 0, type: 0, properties: ["2": "literal"]} -parse/0: instruction: 25 +parse/0: instruction: 26 parse/0: product: {name: "12", value: 0, type: 1, properties: ["12": "integer"]} -parse/0: instruction: 25 +parse/0: instruction: 26 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: 25 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/scheduler b/cpp/.traces/scheduler index 07e4c9c5..37530a6a 100644 --- a/cpp/.traces/scheduler +++ b/cpp/.traces/scheduler @@ -1,4 +1,4 @@ -parse/0: instruction: 29 +parse/0: instruction: 30 parse/0: ingredient: {name: "f2", value: 0, type: 0, properties: ["f2": "recipe"]} parse/0: instruction: 1 parse/0: ingredient: {name: "3", value: 0, type: 0, properties: ["3": "literal"]} diff --git a/cpp/.traces/scheduler_interleaves_routines b/cpp/.traces/scheduler_interleaves_routines index e8147b0e..f7bbb4ab 100644 --- a/cpp/.traces/scheduler_interleaves_routines +++ b/cpp/.traces/scheduler_interleaves_routines @@ -1,4 +1,4 @@ -parse/0: instruction: 29 +parse/0: instruction: 30 parse/0: ingredient: {name: "f2", value: 0, type: 0, properties: ["f2": "recipe"]} parse/0: instruction: 1 parse/0: ingredient: {name: "0", value: 0, type: 0, properties: ["0": "literal"]} diff --git a/cpp/.traces/string-append-1 b/cpp/.traces/string-append-1 index 8dd9c849..dc76318d 100644 --- a/cpp/.traces/string-append-1 +++ b/cpp/.traces/string-append-1 @@ -1,7 +1,7 @@ -parse/0: instruction: 37 +parse/0: instruction: 38 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: 37 +parse/0: instruction: 38 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 diff --git a/cpp/.traces/string-equal-common-lengths-but-distinct b/cpp/.traces/string-equal-common-lengths-but-distinct index a21aaafe..eb00443a 100644 --- a/cpp/.traces/string-equal-common-lengths-but-distinct +++ b/cpp/.traces/string-equal-common-lengths-but-distinct @@ -1,11 +1,11 @@ -parse/0: instruction: 37 +parse/0: instruction: 38 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: 37 +parse/0: instruction: 38 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: 37 +parse/0: instruction: 38 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 diff --git a/cpp/.traces/string-equal-distinct-lengths b/cpp/.traces/string-equal-distinct-lengths index e410fdc1..8d2c674d 100644 --- a/cpp/.traces/string-equal-distinct-lengths +++ b/cpp/.traces/string-equal-distinct-lengths @@ -1,11 +1,11 @@ -parse/0: instruction: 37 +parse/0: instruction: 38 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: 37 +parse/0: instruction: 38 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: 37 +parse/0: instruction: 38 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 diff --git a/cpp/.traces/string-equal-identical b/cpp/.traces/string-equal-identical index cf783038..99087c1a 100644 --- a/cpp/.traces/string-equal-identical +++ b/cpp/.traces/string-equal-identical @@ -1,11 +1,11 @@ -parse/0: instruction: 37 +parse/0: instruction: 38 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: 37 +parse/0: instruction: 38 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: 37 +parse/0: instruction: 38 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 diff --git a/cpp/.traces/string-equal-reflexive b/cpp/.traces/string-equal-reflexive index 6889bd9d..d759d505 100644 --- a/cpp/.traces/string-equal-reflexive +++ b/cpp/.traces/string-equal-reflexive @@ -1,8 +1,8 @@ -parse/0: instruction: 37 +parse/0: instruction: 38 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: 37 +parse/0: instruction: 38 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 diff --git a/cpp/.traces/string-equal-with-empty b/cpp/.traces/string-equal-with-empty index c25963b3..7462567e 100644 --- a/cpp/.traces/string-equal-with-empty +++ b/cpp/.traces/string-equal-with-empty @@ -1,11 +1,11 @@ -parse/0: instruction: 37 +parse/0: instruction: 38 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: 37 +parse/0: instruction: 38 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: 37 +parse/0: instruction: 38 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 diff --git a/cpp/.traces/string_literal b/cpp/.traces/string_literal index 966b5166..82986a95 100644 --- a/cpp/.traces/string_literal +++ b/cpp/.traces/string_literal @@ -1,3 +1,3 @@ -parse/0: instruction: 37 +parse/0: instruction: 38 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_nested b/cpp/.traces/string_literal_nested index 963b8ad8..219b31db 100644 --- a/cpp/.traces/string_literal_nested +++ b/cpp/.traces/string_literal_nested @@ -1,3 +1,3 @@ -parse/0: instruction: 37 +parse/0: instruction: 38 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 a646ca0f..5f181a42 100644 --- a/cpp/.traces/string_literal_with_colons +++ b/cpp/.traces/string_literal_with_colons @@ -1,3 +1,3 @@ -parse/0: instruction: 37 +parse/0: instruction: 38 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/wait_for_location b/cpp/.traces/wait_for_location index cb2311c5..27642c88 100644 --- a/cpp/.traces/wait_for_location +++ b/cpp/.traces/wait_for_location @@ -1,9 +1,9 @@ parse/0: instruction: 1 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: 29 -parse/0: ingredient: {name: "f2", value: 0, type: 0, properties: ["f2": "recipe"]} parse/0: instruction: 30 +parse/0: ingredient: {name: "f2", value: 0, type: 0, properties: ["f2": "recipe"]} +parse/0: instruction: 31 parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} parse/0: instruction: 1 parse/0: ingredient: {name: "1", value: 0, type: 1, properties: ["1": "integer"]} diff --git a/cpp/026assert.cc b/cpp/026assert.cc new file mode 100644 index 00000000..785db1f5 --- /dev/null +++ b/cpp/026assert.cc @@ -0,0 +1,20 @@ +:(scenario assert) +% Hide_warnings = true; +recipe main [ + assert 0:literal, [this is an assert in mu] +] ++warn: this is an assert in mu + +:(before "End Primitive Recipe Declarations") +ASSERT, +:(before "End Primitive Recipe Numbers") +Recipe_number["assert"] = ASSERT; +:(before "End Primitive Recipe Implementations") +case ASSERT: { + trace("run") << "ingredient 0 is " << current_instruction().ingredients[0].name; + vector<int> arg0 = read_memory(current_instruction().ingredients[0]); + assert(arg0.size() == 1); + if (arg0[0] == 0) + raise << current_instruction().ingredients[1].name << '\n'; + break; +} |