- 4つ目の実行方式としてAOT(Ahead-of-Time)コンパイルを文書化 - MIR→WASM→.cwasm のコンパイルパイプラインを説明 - wasm-backend featureでのビルド方法を明記 - 現在の実装状況(完全なスタンドアロン実行ファイルはTODO)を記載 - CLAUDE.mdのWASM説明も3種類(Rust→WASM、Nyash→WASM、Nyash→AOT)に更新 - CURRENT_TASK.mdにPhase 10.9/10.10の完了項目を追加 ChatGPT5さんのAOT試行に対応した適切なドキュメント配置を実施 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
81 lines
2.7 KiB
Plaintext
81 lines
2.7 KiB
Plaintext
// ANY Helpers Demo - 型を問わない統一的な操作
|
|
// ANYヘルパーは Array, String, Map すべてに対応する万能メソッド!
|
|
|
|
static box Main {
|
|
main() {
|
|
local console
|
|
console = new ConsoleBox()
|
|
|
|
console.log("=== ANY Helpers Demo ===")
|
|
console.log("")
|
|
|
|
// 1. length() - どんなBoxでも長さ/サイズを取得
|
|
console.log("1) length() helper:")
|
|
|
|
local arr
|
|
arr = new ArrayBox()
|
|
arr.push("cat")
|
|
arr.push("dog")
|
|
console.log("Array length: " + arr.length()) // 2
|
|
|
|
local str
|
|
str = new StringBox("Hello")
|
|
console.log("String length: " + str.length()) // 5
|
|
|
|
local map
|
|
map = new MapBox()
|
|
map.set("name", "Nyash")
|
|
map.set("version", "1.0")
|
|
console.log("Map size: " + map.length()) // 2
|
|
console.log("")
|
|
|
|
// 2. isEmpty() - どんなBoxでも空かチェック
|
|
console.log("2) isEmpty() helper:")
|
|
|
|
local emptyArr
|
|
emptyArr = new ArrayBox()
|
|
console.log("Empty array: " + emptyArr.isEmpty()) // true
|
|
arr.push("fish")
|
|
console.log("Non-empty array: " + arr.isEmpty()) // false
|
|
|
|
local emptyStr
|
|
emptyStr = new StringBox("")
|
|
console.log("Empty string: " + emptyStr.isEmpty()) // true
|
|
local fullStr
|
|
fullStr = new StringBox("Nyash")
|
|
console.log("Non-empty string: " + fullStr.isEmpty()) // false
|
|
|
|
local emptyMap
|
|
emptyMap = new MapBox()
|
|
console.log("Empty map: " + emptyMap.isEmpty()) // true
|
|
console.log("Non-empty map: " + map.isEmpty()) // false
|
|
console.log("")
|
|
|
|
// 3. 実用例:型を気にせず処理
|
|
console.log("3) Practical example - type-agnostic processing:")
|
|
|
|
local items
|
|
items = new ArrayBox()
|
|
items.push(arr) // Array
|
|
items.push(str) // String
|
|
items.push(map) // Map
|
|
|
|
// どんな型でも統一的に処理できる!
|
|
local i
|
|
i = 0
|
|
loop(i < items.length()) {
|
|
local item
|
|
item = items.get(i)
|
|
console.log("Item " + i + " - length: " + item.length() + ", empty: " + item.isEmpty())
|
|
i = i + 1
|
|
}
|
|
|
|
console.log("")
|
|
console.log("=== ANYヘルパーの威力 ===")
|
|
console.log("- 型固有のメソッドを覚える必要なし")
|
|
console.log("- Array/String/Mapを統一的に扱える")
|
|
console.log("- Everything is Box 哲学の体現!")
|
|
|
|
return "Demo complete!"
|
|
}
|
|
} |