Have std/json pops show parent container type
diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c
index eb370d9..67c821b 100644
--- a/release/c/wuffs-unsupported-snapshot.c
+++ b/release/c/wuffs-unsupported-snapshot.c
@@ -18442,7 +18442,7 @@
v_depth += 1;
(iop_a_src += 1, wuffs_base__make_empty_struct());
*iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)(2097168)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
+ (((uint64_t)(2097169)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
v_expect = 19;
v_expect_after_value = 20;
@@ -18453,10 +18453,10 @@
goto exit;
}
(iop_a_src += 1, wuffs_base__make_empty_struct());
- *iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)(2097232)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
- (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
if (v_depth <= 1) {
+ *iop_a_dst++ = wuffs_base__make_token(
+ (((uint64_t)(2097170)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
+ (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
goto label_0_break;
}
v_depth -= 1;
@@ -18464,9 +18464,15 @@
v_stack_bit = ((v_depth - 1) & 31);
if (0 == (self->private_data.f_stack[v_stack_byte] &
(((uint32_t)(1)) << v_stack_bit))) {
+ *iop_a_dst++ = wuffs_base__make_token(
+ (((uint64_t)(2101266)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
+ (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
v_expect = 20;
v_expect_after_value = 20;
} else {
+ *iop_a_dst++ = wuffs_base__make_token(
+ (((uint64_t)(2105362)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
+ (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
v_expect = 36;
v_expect_after_value = 36;
}
@@ -18488,7 +18494,7 @@
v_depth += 1;
(iop_a_src += 1, wuffs_base__make_empty_struct());
*iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)(2097184)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
+ (((uint64_t)(2097185)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
(((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
v_expect = 34;
v_expect_after_value = 36;
@@ -18499,10 +18505,10 @@
goto exit;
}
(iop_a_src += 1, wuffs_base__make_empty_struct());
- *iop_a_dst++ = wuffs_base__make_token(
- (((uint64_t)(2097248)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
- (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
if (v_depth <= 1) {
+ *iop_a_dst++ = wuffs_base__make_token(
+ (((uint64_t)(2097186)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
+ (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
goto label_0_break;
}
v_depth -= 1;
@@ -18510,9 +18516,15 @@
v_stack_bit = ((v_depth - 1) & 31);
if (0 == (self->private_data.f_stack[v_stack_byte] &
(((uint32_t)(1)) << v_stack_bit))) {
+ *iop_a_dst++ = wuffs_base__make_token(
+ (((uint64_t)(2101282)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
+ (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
v_expect = 20;
v_expect_after_value = 20;
} else {
+ *iop_a_dst++ = wuffs_base__make_token(
+ (((uint64_t)(2105378)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
+ (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
v_expect = 36;
v_expect_after_value = 36;
}
diff --git a/std/json/decode_json.wuffs b/std/json/decode_json.wuffs
index 1b65adb..c65f33a 100644
--- a/std/json/decode_json.wuffs
+++ b/std/json/decode_json.wuffs
@@ -250,7 +250,7 @@
depth += 1
args.src.skip32_fast!(actual: 1, worst_case: 1)
- args.dst.write_fast_token!(value: 0x20_0010, length: 1)
+ args.dst.write_fast_token!(value: 0x20_0011, length: 1)
expect = 0x13 // 0x13 is (EXPECT_CLOSE_BRACKET | EXPECT_VALUE).
expect_after_value = 0x14 // 0x14 is (EXPECT_CLOSE_BRACKET | EXPECT_COMMA).
continue.outer
@@ -260,18 +260,20 @@
return "#bad input"
}
args.src.skip32_fast!(actual: 1, worst_case: 1)
- args.dst.write_fast_token!(value: 0x20_0050, length: 1)
if depth <= 1 {
+ args.dst.write_fast_token!(value: 0x20_0012, length: 1)
break.outer
}
depth -= 1
stack_byte = (depth - 1) / 32
stack_bit = (depth - 1) & 31
if 0 == (this.stack[stack_byte] & ((1 as base.u32) << stack_bit)) {
+ args.dst.write_fast_token!(value: 0x20_1012, length: 1)
// 0x14 is (EXPECT_CLOSE_BRACKET | EXPECT_COMMA).
expect = 0x14
expect_after_value = 0x14
} else {
+ args.dst.write_fast_token!(value: 0x20_2012, length: 1)
// 0x24 is (EXPECT_CLOSE_BRACE | EXPECT_COMMA).
expect = 0x24
expect_after_value = 0x24
@@ -291,7 +293,7 @@
depth += 1
args.src.skip32_fast!(actual: 1, worst_case: 1)
- args.dst.write_fast_token!(value: 0x20_0020, length: 1)
+ args.dst.write_fast_token!(value: 0x20_0021, length: 1)
expect = 0x22 // 0x22 is (EXPECT_CLOSE_BRACE | EXPECT_STRING_VALUE).
expect_after_value = 0x24 // 0x24 is (EXPECT_CLOSE_BRACE | EXPECT_COMMA).
continue.outer
@@ -301,18 +303,20 @@
return "#bad input"
}
args.src.skip32_fast!(actual: 1, worst_case: 1)
- args.dst.write_fast_token!(value: 0x20_0060, length: 1)
if depth <= 1 {
+ args.dst.write_fast_token!(value: 0x20_0022, length: 1)
break.outer
}
depth -= 1
stack_byte = (depth - 1) / 32
stack_bit = (depth - 1) & 31
if 0 == (this.stack[stack_byte] & ((1 as base.u32) << stack_bit)) {
+ args.dst.write_fast_token!(value: 0x20_1022, length: 1)
// 0x14 is (EXPECT_CLOSE_BRACKET | EXPECT_COMMA).
expect = 0x14
expect_after_value = 0x14
} else {
+ args.dst.write_fast_token!(value: 0x20_2022, length: 1)
// 0x24 is (EXPECT_CLOSE_BRACE | EXPECT_COMMA).
expect = 0x24
expect_after_value = 0x24