Files
hakorune/docs/guides
nyash-codex d28ba4cd9d refactor(joinir): Phase 193-1 - AST Feature Extractor Box modularization
**Phase 193-1**: Create independent AST Feature Extractor Box module

## Summary
Extracted feature detection logic from router.rs into a new, reusable
ast_feature_extractor.rs module. This improves:
- **Modularity**: Feature extraction is now a pure, side-effect-free module
- **Reusability**: Can be used for Pattern 5-6 detection and analysis tools
- **Testability**: Pure functions can be unit tested independently
- **Maintainability**: Clear separation of concerns (router does dispatch, extractor does analysis)

## Changes

### New Files
- **src/mir/builder/control_flow/joinir/patterns/ast_feature_extractor.rs** (+180 lines)
  - `detect_continue_in_body()`: Detect continue statements
  - `detect_break_in_body()`: Detect break statements
  - `extract_features()`: Full feature extraction pipeline
  - `detect_if_else_phi_in_body()`: Pattern detection for if-else PHI
  - `count_carriers_in_body()`: Heuristic carrier counting
  - Unit tests for basic functionality

### Modified Files
- **src/mir/builder/control_flow/joinir/patterns/router.rs**
  - Removed 75 lines of feature detection code
  - Now delegates to `ast_features::` module
  - Phase 193 documentation in comments
  - Cleaner separation of concerns

- **src/mir/builder/control_flow/joinir/patterns/mod.rs**
  - Added module declaration for ast_feature_extractor
  - Updated documentation with Phase 193 info

## Architecture
```
router.rs (10 lines)
  └─→ ast_feature_extractor.rs (180 lines)
      - Pure functions for AST analysis
      - No side effects
      - High reusability
      - Testable in isolation
```

## Testing
 Build succeeds: `cargo build --release` compiles cleanly
 Binary compatibility: Existing .hako files execute correctly
 No logic changes: Feature detection identical to previous implementation

## Metrics
- Lines moved from router to new module: 75
- New module total: 180 lines (including tests and documentation)
- Router.rs reduced by ~40% in feature detection code
- New module rated  for reusability and independence

## Next Steps
- Phase 193-2: CarrierInfo Builder Enhancement
- Phase 193-3: Pattern Classification Improvement
- Phase 194: Further pattern detection optimizations

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06 03:30:03 +09:00
..

Nyash User Guides 📚

Nyashプログラミング言語の利用者向けガイドとチュートリアルです。

Quick Links

  • Docsの書き方小さく・リンク駆動・3層: contributing-docs.md

🚀 はじめに

  • getting-started.md - Nyashを始めるためのクイックガイド

📖 サブディレクトリ

tutorials/

  • hello-world.md - 最初のNyashプログラム
  • basic-boxes.md - Boxクラスの基礎
  • delegation.md - デリゲーションの使い方
  • p2p-apps.md - P2Pアプリケーション開発

examples/

  • 実践的なサンプルコード集
  • よくあるパターンの実装例
  • ベストプラクティス

wasm-guide/

  • WebAssemblyビルドガイド
  • ブラウザープレイグラウンドの使い方
  • Webアプリケーション開発

🎯 学習順序

  1. getting-started.md から始める
  2. tutorials/ のチュートリアルを順番に
  3. examples/ で実践的なコードを学ぶ
  4. 特定用途WASM等は各ガイドへ