feat(joinir): Phase 88 - Pattern4 continue + variable step increment
Continue Pattern 拡張: - then側の i=i+const 差分加算 + acc更新を許可 - continue_pattern.rs:193 で可変ステップ検出 Dev Router 許可: - ast_lowerer/mod.rs:92 で normalized_dev feature時に新パターンを有効化 Fixtures & Tests: - jsonparser_unescape_string_step2_min fixture追加(submodule) - normalized_joinir_min.rs に shape テスト追加 - shapes.rs に expected shape 定義 Documentation: - joinir-architecture-overview.md に Phase 88 到達点を追記 Impact: - Pattern4 continue + 可変インクリメント(i+=1 or i+=2)対応 - _unescape_string 制御構造の土台確立 - normalized_dev tests PASS Next: _unescape_string 残り複合ループ対応 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -12,6 +12,7 @@ use nyash_rust::mir::join_ir::normalized::fixtures::{
|
||||
build_jsonparser_parse_object_continue_skip_ws_structured_for_normalized_dev,
|
||||
build_jsonparser_skip_ws_real_structured_for_normalized_dev,
|
||||
build_jsonparser_skip_ws_structured_for_normalized_dev,
|
||||
build_jsonparser_unescape_string_step2_min_structured_for_normalized_dev,
|
||||
build_pattern2_break_fixture_structured, build_pattern2_minimal_structured,
|
||||
build_pattern3_if_sum_min_structured_for_normalized_dev,
|
||||
build_pattern3_if_sum_multi_min_structured_for_normalized_dev,
|
||||
|
||||
@ -295,6 +295,24 @@ fn test_normalized_pattern4_jsonparser_parse_object_continue_skip_ws_vm_bridge_d
|
||||
}
|
||||
}
|
||||
|
||||
/// Phase 88: JsonParser _unescape_string コア(i+=2 + continue)を canonical route で固定する。
|
||||
#[test]
|
||||
fn test_phase88_jsonparser_unescape_string_step2_min_canonical_matches_structured() {
|
||||
let structured = build_jsonparser_unescape_string_step2_min_structured_for_normalized_dev();
|
||||
let entry = structured.entry.expect("structured entry required");
|
||||
|
||||
// n=10 → i=0,2,4,6,8 で acc++ → 5
|
||||
let args = [JoinValue::Int(10)];
|
||||
let structured_res = run_joinir_vm_bridge_structured_only(&structured, entry, &args);
|
||||
let canonical = run_joinir_vm_bridge(&structured, entry, &args, false);
|
||||
|
||||
assert_eq!(
|
||||
structured_res, canonical,
|
||||
"canonical unescape(step2) mismatch"
|
||||
);
|
||||
assert_eq!(canonical, JoinValue::Int(5));
|
||||
}
|
||||
|
||||
/// Phase 48-C: JsonParser _parse_object continue skip_ws canonical route should match Structured
|
||||
#[test]
|
||||
fn test_normalized_pattern4_jsonparser_parse_object_continue_skip_ws_canonical_matches_structured()
|
||||
|
||||
Reference in New Issue
Block a user