Files
hakorune/docs/development/strategies/skip-newlines-removal-plan.md
Selfhosting Dev 536e64441a 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>
2025-09-23 11:03:25 +09:00

3.1 KiB
Raw Blame History

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以降を実施