♻️ 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>
3.1 KiB
3.1 KiB
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削除)※実験ファイル除く
🔧 実装方針
削除前のチェックリスト
- ✅ 深度追跡が有効な箇所か確認
- ✅ テストケースの準備
- ✅ 削除後の動作確認
- ✅ コミット単位を小さく保つ
削除時の置き換えルール
- 括弧内: 単純削除(深度追跡で自動処理)
- 演算子後: 単純削除(行継続判定で自動処理)
- 文区切り: TokenCursorモード切り替えで対応
- その他: 個別判断
🎯 最終目標
- 実用コードからskip_newlines()完全排除
- TokenCursorによる統一的な改行処理
- コード品質とメンテナンス性の向上
📝 次のアクション
- Phase 2-A: match_expr.rsの6箇所削除
- テスト実行と動作確認
- 段階的にPhase 2-B以降を実施