🚀 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,59 @@
/*!
* Nyash Math Box - Mathematical operations
/*! 🧮 MathBox - 数学計算Box
*
* 数学演算を提供するBox型
* Everything is Box哲学に基づく数学ライブラリ
* ## 📝 概要
* 高度な数学演算を提供するBox。Python mathモジュールや
* JavaScript Math オブジェクトと同様の機能を提供。
*
* ## 🛠️ 利用可能メソッド
*
* ### 🔢 基本計算
* - `abs(value)` - 絶対値
* - `max(a, b)` - 最大値
* - `min(a, b)` - 最小値
* - `pow(base, exp)` - 累乗 (base^exp)
* - `sqrt(value)` - 平方根
*
* ### 📐 三角関数
* - `sin(radians)` - 正弦
* - `cos(radians)` - 余弦
* - `tan(radians)` - 正接
*
* ### 📊 対数・指数関数
* - `log(value)` - 自然対数 (ln)
* - `log10(value)` - 常用対数
* - `exp(value)` - 指数関数 (e^x)
*
* ### 🔄 丸め関数
* - `floor(value)` - 切り下げ
* - `ceil(value)` - 切り上げ
* - `round(value)` - 四捨五入
*
* ### 📏 定数取得
* - `getPi()` - 円周率π (3.14159...)
* - `getE()` - 自然対数の底e (2.71828...)
*
* ## 💡 使用例
* ```nyash
* local math, result
* math = new MathBox()
*
* result = math.abs(-42) // 42
* result = math.max(10, 25) // 25
* result = math.sqrt(16) // 4.0
* result = math.pow(2, 3) // 8.0
* result = math.sin(math.getPi() / 2) // 1.0
*
* // 計算例
* local pi, area
* pi = math.getPi()
* area = pi * math.pow(5, 2) // 半径5の円の面積
* ```
*
* ## ⚠️ 注意
* - 三角関数の引数はラジアン
* - 負数の平方根・対数はエラー
* - オーバーフロー時は標準f64の動作に従う
* - 整数演算は自動でFloatBoxに変換される場合あり
*/
use crate::box_trait::{NyashBox, StringBox, IntegerBox, BoolBox};