Files
hakorune/CLAUDE.md
Moe Charm 0bed0c0271 🎉 initial commit: Nyash Programming Language完成版
🚀 主要機能:
• Everything is Box哲学による革新的アーキテクチャ
• WebAssemblyブラウザー対応プレイグラウンド
• アーティスト協同制作デモ - 複数Boxインスタンス実証
• 視覚的デバッグシステム - DebugBox完全統合
• static box Mainパターン - メモリ安全設計

 言語機能:
• NOT/AND/OR/除算演算子完全実装
• ジェネリクス/テンプレートシステム
• 非同期処理(nowait/await)
• try/catchエラーハンドリング
• Canvas統合グラフィックス

🎨 ブラウザー体験:
• 9種類のインタラクティブデモ
• リアルタイムコード実行
• WebCanvas/WebConsole/WebDisplay
• モバイル対応完了

🤖 Built with Claude Code collaboration
Ready for public release!
2025-08-09 15:14:44 +09:00

5.9 KiB
Raw Blame History

Nyash開発ガイド for Claude

Nyashプログラミング言語開発に必要な情報をまとめたクイックリファレンス。

🚀 クイックスタート

# ビルドと実行
cd nyash-rust
cargo build
./target/debug/nyash program.nyash

📚 ドキュメント構造

🎯 よく使う情報

📊 最新開発状況

📖 詳細リファレンス

🎮 実用例・アプリ

  • 実用例 - サンプルコード・パターン集
  • 実装済みアプリ: サイコロRPG・統計計算・LISPインタープリター

重要な設計原則

🏗️ Everything is Box

  • すべての値がBoxStringBox, IntegerBox, BoolBox等
  • ユーザー定義Box: box ClassName { init { field1, field2 } }

🔄 統一ループ構文

// ✅ 唯一の正しい形式
loop(condition) { }

// ❌ 削除済み構文
while condition { }  // 使用不可
loop() { }          // 使用不可

🎯 正統派Nyashスタイル2025-08-09実装

// 🚀 Static Box Main パターン - エントリーポイントの統一スタイル
static box Main {
    init { console, result }  // フィールド宣言
    
    main() {
        // ここから始まる!他の言語と同じエントリーポイント
        me.console = new ConsoleBox()
        me.console.log("🎉 Everything is Box!")
        
        // local変数も使用可能
        local temp
        temp = 42
        me.result = temp
        
        return "Revolution completed!"
    }
}

📝 変数宣言厳密化システム2025-08-09実装

// 🔥 すべての変数は明示宣言必須!(メモリ安全性・非同期安全性保証)

// ✅ static box内のフィールド
static box Calculator {
    init { result, memory }  // 明示宣言
    
    calculate() {
        me.result = 42  // ✅ フィールドアクセス
        
        local temp     // ✅ local変数宣言
        temp = me.result * 2
    }
}

// ✅ static関数内の所有権移転
static function Factory.create() {
    outbox product  // 呼び出し側に所有権移転
    product = new Item()
    return product
}

// ❌ 未宣言変数への代入はエラー
x = 42  // Runtime Error: 未宣言変数 + 修正提案

実装済み演算子Production Ready

// 論理演算子(完全実装)
not condition    // NOT演算子
a and b         // AND演算子  
a or b          // OR演算子

// 算術演算子
a / b           // 除算(ゼロ除算エラー対応済み)
a + b, a - b, a * b  // 加算・減算・乗算

⚠️ 重要な注意点

// ✅ 正しい書き方
init { field1, field2 }  // カンマ必須CPU暴走防止

// ❌ 間違い
init { field1 field2 }   // カンマなし→CPU暴走

🔧 開発サポート

🤖 AI相談

# Gemini CLIで相談
gemini -p "Nyashの実装で困っています..."

🧪 テスト実行

# 基本機能テスト
cargo test

# 演算子統合テスト
./target/debug/nyash test_comprehensive_operators.nyash

# 実用アプリテスト
./target/debug/nyash app_dice_rpg.nyash

🐛 デバッグ

// DebugBox活用
DEBUG = new DebugBox()
DEBUG.startTracking()
DEBUG.trackBox(myObject, "説明")
print(DEBUG.memoryReport())

📚 ドキュメント再編成戦略

🎯 現在の課題

  • CLAUDE.md肥大化 (500行) - 必要情報の検索困難
  • 情報分散 - 実装状況がCLAUDE.md/current_task/docsに分散
  • 参照関係不明確 - ファイル間の相互リンク不足

🚀 新構造プラン

docs/
├── quick-reference/          # よく使う情報(簡潔)
│   ├── syntax-cheatsheet.md     # 構文早見表
│   ├── operators-summary.md     # 演算子一覧
│   └── development-commands.md  # 開発コマンド集
├── status/                   # 最新開発状況
│   ├── current-implementation.md  # 実装状況詳細
│   ├── recent-achievements.md     # 最新成果
│   └── known-issues.md            # 既知の問題
├── reference/                # 完全リファレンス(現存活用)
└── examples/                 # 実用例(現存拡充)

実装優先順位

  1. Phase 1: CLAUDE.md簡潔化500行→150行ハブ
  2. Phase 2: 基本構造作成・情報移行
  3. Phase 3: 相互リンク整備・拡充

🎉 期待効果

  • 検索性: 必要情報への高速アクセス
  • メンテナンス性: 責任分離・局所的更新
  • 拡張性: 新機能追加が容易

📋 詳細: DOCUMENTATION_REORGANIZATION_STRATEGY.md


最終更新: 2025年8月9日 - 🎯 静的Box Mainパターン変数宣言厳密化システム実装完了Gemini先生絶賛の「非常に洗練された設計」達成。メモリ安全性・非同期安全性保証で本格言語レベルに到達