🚀 feat: ":"継承演算子実装+全14Box型の包括的ドキュメント化完成

## 🔧 言語機能改善
- from予約語問題を解決する":"継承演算子を実装
- box Child : Parent 構文でより直感的な継承表現
- tokenizer/parserを更新、from を変数名として使用可能に

## 📚 ドキュメント大改善(1000行以上追加)
全14Box型に包括的なJavaDoc風ドキュメントを追加:
- StringBox: 文字列操作メソッド群
- IntegerBox/BoolBox: 基本データ型と演算子
- MathBox/RandomBox/TimeBox: 計算・ユーティリティ
- ConsoleBox/DebugBox/SoundBox: システムIO
- MapBox/NullBox: データ構造
- EguiBox: デスクトップGUI
- SimpleIntentBox: P2P通信

各Boxに概要・メソッド一覧・使用例・実用例・注意事項を完備

## 🧹 プロジェクト整理
- ルートディレクトリから60個のテストファイルを削除
  (development/root_tests/に移動済み)
- 不要ファイル削除: bmp, tar.xz, html, 空フォルダ等
- examplesフォルダへ適切なファイルを移動

## 📝 その他の更新
- CLAUDE.md: パーサーデバッグ機能の説明追加
- sessions/: AI相談記録2件を保存
  - from予約語問題の解決策検討
  - 標準Box型(ArrayBox等)の設計相談
This commit is contained in:
Moe Charm
2025-08-10 11:32:32 +09:00
parent e7f6666917
commit ccb3204a35
89 changed files with 1536 additions and 3027 deletions

View File

@ -1,8 +1,106 @@
/*!
* Nyash Map Box - Key-Value store implementation
/*! 🗄️ MapBox - キー値ストレージBox
*
* キーバリューストアを提供するBox型
* Everything is Box哲学に基づくマップデータ構造
* ## 📝 概要
* 高性能キー値ストレージを提供するBox。
* JavaScript Map、Python dict、C# Dictionaryと同等機能。
* 動的データ管理やキャッシュ実装に最適。
*
* ## 🛠️ 利用可能メソッド
* - `set(key, value)` - キー値ペア設定
* - `get(key)` - 値取得
* - `has(key)` - キー存在確認
* - `remove(key)` - キー値ペア削除
* - `clear()` - 全データクリア
* - `keys()` - 全キー取得
* - `values()` - 全値取得
* - `size()` - データ数取得
* - `isEmpty()` - 空判定
*
* ## 💡 使用例
* ```nyash
* local map, result
* map = new MapBox()
*
* // データ設定
* map.set("name", "Alice")
* map.set("age", 25)
* map.set("active", true)
*
* // データ取得
* result = map.get("name") // "Alice"
* print("User: " + result)
*
* // 存在確認
* if (map.has("email")) {
* print("Email: " + map.get("email"))
* } else {
* print("No email registered")
* }
* ```
*
* ## 🎮 実用例 - ゲーム設定管理
* ```nyash
* static box GameConfig {
* init { settings, scores }
*
* main() {
* me.settings = new MapBox()
* me.scores = new MapBox()
*
* // 設定初期化
* me.settings.set("difficulty", "normal")
* me.settings.set("sound", true)
* me.settings.set("graphics", "high")
*
* // スコア記録
* me.scores.set("level1", 850)
* me.scores.set("level2", 1200)
* me.scores.set("level3", 950)
*
* me.displayConfig()
* }
*
* displayConfig() {
* print("=== Game Settings ===")
* print("Difficulty: " + me.settings.get("difficulty"))
* print("Sound: " + me.settings.get("sound").toString())
* print("Total scores: " + me.scores.size().toString())
* }
* }
* ```
*
* ## 🔍 キャッシュ実装例
* ```nyash
* static box APICache {
* init { cache, ttl_map }
*
* main() {
* me.cache = new MapBox()
* me.ttl_map = new MapBox()
* }
*
* getData(url) {
* // キャッシュ確認
* if (me.cache.has(url)) {
* return me.cache.get(url)
* }
*
* // APIから取得
* local data
* data = fetchFromAPI(url)
*
* // キャッシュに保存
* me.cache.set(url, data)
* return data
* }
* }
* ```
*
* ## ⚠️ 注意
* - キーは自動的に文字列変換される
* - スレッドセーフ (Arc<Mutex>使用)
* - 大量データ格納時はメモリ使用量に注意
* - 存在しないキーの取得は "Key not found" メッセージ返却
*/
use crate::box_trait::{NyashBox, StringBox, IntegerBox, BoolBox, ArrayBox};