- Add warn() for non-fatal parse errors (like Zig's Parse.warn)
- Implement finishAssignDestructureExpr for destructuring assignments
- Use parseBlockExpr instead of parseBlock in for/while statement bodies
- Use parseSingleAssignExpr in switch prongs
- Enable x86_64/CodeGen.zig corpus entry
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Implement anyframe and anyframe->T parsing in parseTypeExpr and
parsePrimaryTypeExpr (was failing with unsupported error).
- Add labeled switch support: identifier:switch in parsePrimaryExpr
and parsePrimaryTypeExpr, with main_token = switch_token - 2.
- Fix TOKEN_KEYWORD_INLINE fallthrough into TOKEN_PERIOD case in
parsePrimaryTypeExpr; handle it separately expecting for/while.
Reduces corpus test failures from 20 to 7.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- parser.c: Handle TOKEN_KEYWORD_INLINE in parseSwitchProng, producing
AST_NODE_SWITCH_CASE_INLINE_ONE / AST_NODE_SWITCH_CASE_INLINE nodes.
This fixes parsing of multi_array_list.zig which uses `inline else`.
- astgen.c: Implement float literal parsing in numberLiteral using
strtold with f64 round-trip check. Add addFloat helper and addPlNodeQuad
for float128 emission. Extend token scanning to include exponent markers.
- multi_array_list.zig still skipped: remaining diffs in bool_not,
bool_br_and, ret_is_non_err.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>