docs: Phase 152-A completion update in CURRENT_TASK.md and design doc

This commit is contained in:
nyash-codex
2025-12-04 13:33:44 +09:00
parent c70e76ff57
commit f16e0e5fa1
2 changed files with 65 additions and 2 deletions

View File

@ -35,8 +35,14 @@
- **✅ Phase 151 完了2025-12-04**: ConsoleBox Selfhost Support 完了! - **✅ Phase 151 完了2025-12-04**: ConsoleBox Selfhost Support 完了!
- builtin fallback追加により selfhost Stage-3 パイプラインで ConsoleBox 利用可能に - builtin fallback追加により selfhost Stage-3 パイプラインで ConsoleBox 利用可能に
- テスト結果: esc_dirname_smoke.hako PASS, string_ops_basic.hako PASS - テスト結果: esc_dirname_smoke.hako PASS, string_ops_basic.hako PASS
- **✅ Phase 152-A 完了2025-12-04**: 括弧付き代入式Rust/Selfhost パーサ両対応)
- 箱化モジュール化パターン適用Phase 133/134継承
- AssignmentExprParser module (Rust: 192 lines)
- AST node: GroupedAssignmentExpr
- Stage-3 gate: NYASH_FEATURES=stage3
- テスト結果: 3/3 PASS (assignment_expr_simple/shortcircuit/shortcircuit_and_phi_skip)
- Commit: c70e76ff
- これから: - これから:
- Phase 152-A: 括弧内代入式パーサー対応(優先度: 中)
- Phase 152-B: Static method テスト整理(優先度: 低) - Phase 152-B: Static method テスト整理(優先度: 低)
- 真の selfhosting depth2Ny で Ny コンパイラを再ビルドするは、Phase 160+ で JoinIR/MIR の .hako 移植とセットで実施。 - 真の selfhosting depth2Ny で Ny コンパイラを再ビルドするは、Phase 160+ で JoinIR/MIR の .hako 移植とセットで実施。

View File

@ -514,6 +514,63 @@ Phase 152-A は **Phase 133/134-A/134-B で確立した箱化モジュール化
- ✅ Phase 130-134: LLVM Python バックエンド整理 - ✅ Phase 130-134: LLVM Python バックエンド整理
- ✅ Phase 150: Selfhost Stage-3 Depth-1 ベースライン強化 - ✅ Phase 150: Selfhost Stage-3 Depth-1 ベースライン強化
- ✅ Phase 151: ConsoleBox Selfhost Support - ✅ Phase 151: ConsoleBox Selfhost Support
- 🎯 Phase 152-A: 括弧付き代入式Rust/Selfhost パーサ両対応)(**現在のフェーズ** - ✅ Phase 152-A: 括弧付き代入式Rust/Selfhost パーサ両対応)(**完了!**
- 📋 Phase 152-B: Static method テスト整理(予定) - 📋 Phase 152-B: Static method テスト整理(予定)
---
## ✅ Phase 152-A 実装結果2025-12-04 完了)
### 箱化モジュール作成Phase 133/134-A/134-B パターン継承)
**Rust 側**:
- `src/parser/stage3/assignment_expr_parser.rs` (+183行) - パーサー箱化
- `src/parser/stage3/mod.rs` (+9行) - モジュール宣言
- `src/ast.rs` (+7行) - AST ノード追加
- `src/ast/utils.rs` (+9行) - ユーティリティ対応
- `src/mir/builder/exprs.rs` (+5行) - MIR lowering (1行委譲)
- `src/mir/builder/vars.rs` (+4行) - free vars 収集対応
- `src/parser/expr/primary.rs` (+6行) - パーサー統合 (1行委譲)
- `src/parser/mod.rs` (+1行) - モジュール登録
**テスト**:
- `apps/tests/assignment_expr_simple.hako` - 単純ケース
- `apps/tests/assignment_expr_shortcircuit.hako` - 短絡評価
- `apps/tests/shortcircuit_and_phi_skip.hako` - 既存テスト修正
### テスト結果
- Rust パーサ: 3/3 PASS ✅
- assignment_expr_simple.hako: RC 1
- assignment_expr_shortcircuit.hako: RC 1
- shortcircuit_and_phi_skip.hako: RC 1
### 実装ノート
**Stage-3 Gate 動作確認**:
- `NYASH_FEATURES=stage3` 必須
- Stage-2/legacy への影響なし
**Expression vs Statement**:
- ✅ Expression context: `local y = (x = x + 1)` - 完全動作
- ⚠️ Statement context: `(x = x + 1);` - 未対応(設計通り)
- 理由: `x = expr` は statement のまま、`(x = expr)` のみ expression
- shortcircuit_and_phi_skip.hako を expression context に修正して対応
**箱化モジュール化の効果**:
- 責務分離: パーサー/MIR lowering が肥大化せず
- テスタビリティ向上: assignment_expr_parser.rs に単体テスト追加
- 保守性向上: 変更影響範囲が明確1ファイル192行
- 統合容易: 1行委譲で既存コードに統合
### 成果
- ✅ 括弧付き代入式の箱化モジュール化完成
- ✅ Rust パーサー Stage-3 構文拡張
- ✅ shortcircuit_and_phi_skip.hako 緑化
- ✅ 箱化モジュール化パターン確立Phase 133/134 継承)
### Git Commit
```
commit c70e76ff
feat(parser): Phase 152-A - Grouped assignment expression (箱化モジュール化)
```