refactor: Phase 2-A match_expr.rsのskip_newlines削除完了

♻️ skip_newlines()の段階的削除を継続
- match式内の6箇所を削除(41→35箇所、15%削減)
- brace_depth > 0により自動改行処理が有効
- 削減計画ドキュメントを作成

📊 進捗状況
- Phase 1: 48→40箇所 
- Phase 2-A: 40→35箇所 
- 次: Phase 2-B(fields.rs等のBox宣言系)

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Selfhosting Dev
2025-09-23 11:03:25 +09:00
parent 5eb23f9b4c
commit 536e64441a
2 changed files with 112 additions and 6 deletions

View File

@ -0,0 +1,106 @@
# skip_newlines() 段階的削除計画
## 📊 現状分析2025-09-24
### 削減実績
- **初期**: 48箇所
- **Phase 1完了**: 40箇所17%削減)
- **削除済み**: primary.rsのオブジェクトリテラル内8箇所
### 残存箇所41箇所
```
common.rs: 1
statements.rs: 4
match_expr.rs: 6
primary.rs: 1
box_definition.rs: 3
static_box.rs: 2
header.rs: 2
interface.rs: 3
postfix.rs: 2
fields.rs: 9最多
properties.rs: 1
constructors.rs: 2
parser_enhanced.rs: 4実験的
nyash_parser_v2.rs: 1実験的
```
## 🎯 削除戦略
### Phase 2-A: 簡単な括弧内削除(即座に可能)
**対象**: 明らかに括弧内にあるskip_newlines()
- `match_expr.rs`: match式内brace_depth > 0の6箇所
- `primary.rs`: 残り1箇所ブロック内
- **予想削減**: 7箇所41→34
### Phase 2-B: Box宣言系中難度
**対象**: Box定義内の改行処理
- `fields.rs`: 9箇所フィールド宣言
- `box_definition.rs`: 3箇所
- `static_box.rs`: 2箇所
- **課題**: フィールド区切りの判定が必要
- **予想削減**: 14箇所34→20
### Phase 2-C: 文処理系(高難度)
**対象**: 文の区切り判定に関わる部分
- `statements.rs`: 4箇所
- `header.rs`: 2箇所
- `interface.rs`: 3箇所
- **課題**: 文区切りと行継続の判定が複雑
- **予想削減**: 9箇所20→11
### Phase 2-D: メンバー宣言系(最高難度)
**対象**: Boxメンバーの宣言
- `constructors.rs`: 2箇所
- `properties.rs`: 1箇所
- `postfix.rs`: 2箇所
- **課題**: 複雑な構文の境界判定
- **予想削減**: 5箇所11→6
### Phase 2-E: 共通関数(最終段階)
**対象**: ParserUtilsの共通関数
- `common.rs`: 1箇所skip_newlines_internal
- **課題**: 全削除後に関数自体を削除
- **予想削減**: 1箇所6→5
### 実験的ファイル(除外)
- `parser_enhanced.rs`: 4箇所
- `nyash_parser_v2.rs`: 1箇所
これらは実験的実装のため削除対象外
## 📈 削減ロードマップ
```
Phase 1: 48 → 40 (8削除) ✅ 完了
Phase 2-A: 40 → 33 (7削除) 🚀 次のタスク
Phase 2-B: 33 → 19 (14削除)
Phase 2-C: 19 → 10 (9削除)
Phase 2-D: 10 → 5 (5削除)
Phase 2-E: 5 → 0 (5削除)※実験ファイル除く
```
## 🔧 実装方針
### 削除前のチェックリスト
1. ✅ 深度追跡が有効な箇所か確認
2. ✅ テストケースの準備
3. ✅ 削除後の動作確認
4. ✅ コミット単位を小さく保つ
### 削除時の置き換えルール
- **括弧内**: 単純削除(深度追跡で自動処理)
- **演算子後**: 単純削除(行継続判定で自動処理)
- **文区切り**: TokenCursorモード切り替えで対応
- **その他**: 個別判断
## 🎯 最終目標
1. **実用コードからskip_newlines()完全排除**
2. **TokenCursorによる統一的な改行処理**
3. **コード品質とメンテナンス性の向上**
## 📝 次のアクション
1. Phase 2-A: match_expr.rsの6箇所削除
2. テスト実行と動作確認
3. 段階的にPhase 2-B以降を実施