Files
hakorune/src/mir
nyash-codex d5de808afa refactor(phase-91): Modularize P5b escape pattern recognizer
### Changes

#### 1. New Module: escape_pattern_recognizer.rs (255 lines)
- Dedicated module for P5b (Escape Sequence Handling) pattern
- Single Responsibility Principle: handles only escape pattern detection
- Clean interface: exports only `detect_escape_skip_pattern()` and `EscapeSkipPatternInfo`
- Private helpers for pattern-specific analysis

**Moved functions**:
- `detect_escape_skip_pattern()` - main recognizer
- `find_break_in_if()` - break detection
- `find_escape_in_if()` - escape check detection
- `extract_delta_pair_from_if()` - delta extraction
- `try_extract_increment_assignment()` - increment parsing

#### 2. ast_feature_extractor.rs (1046 lines, was 1345)
- Removed deprecated `extract_escape_delta_from_if()` function
- Removed P5b-specific implementation (moved to escape_pattern_recognizer)
- Added re-export for backward compatibility
- **Result**: 299 lines removed (77% of original), cleaner focus on general pattern analysis

#### 3. mod.rs (patterns/)
- Registered new `escape_pattern_recognizer` module
- Updated documentation to reflect modularization

### Results

 **File Size Reduction**: 1345 → 1046 lines in ast_feature_extractor
 **Code Organization**: Single-responsibility modules
 **Reusability**: P5b helpers isolated for Phase 92+ reuse
 **Test Status**: 1062/1062 tests PASS (no regressions)
 **Dead Code**: Removed deprecated function

### Architecture Improvement

**Before**:
```
ast_feature_extractor.rs (1345 lines)
  ├─ Generic pattern detection (detect_continue, detect_parse_*, etc.)
  └─ P5b-specific helpers (deeply nested, hard to navigate)
```

**After**:
```
ast_feature_extractor.rs (1046 lines) - Generic patterns only
escape_pattern_recognizer.rs (255 lines) - P5b-specific, organized
  ├─ Main recognizer
  └─ Focused private helpers
```

### Next Steps

- Phase 92: Implement JoinIR lowering for P5b using this recognizer
- Phase 93: Pattern P5 (guard-bounded) detection

Boxification/modularity complete! 🎉

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

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-16 15:01:46 +09:00
..