Files
hakorune/local_tests/test_pack_syntax.hako

108 lines
2.3 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 🎁 pack構文の包括的テスト
// 1. 基本的なpack構文
box Animal {
init { name, age }
pack(animalName, animalAge) {
me.name = animalName
me.age = animalAge
}
speak() {
return me.name + " (age " + me.age + ") makes a sound"
}
}
// 2. fromデリゲーションでのpack
box Dog from Animal {
init { breed }
pack(dogName, dogAge, dogBreed) {
from Animal.pack(dogName, dogAge) // 親のpackを呼び出し
me.breed = dogBreed
}
override speak() {
return me.name + " (age " + me.age + ", " + me.breed + ") barks: Woof!"
}
}
// 3. 混在形式packと従来形式の共存
box Cat from Animal {
init { color }
Cat(catName, catAge, catColor) { // 従来形式
from Animal.pack(catName, catAge) // 親はpack使用
me.color = catColor
}
override speak() {
return me.name + " (age " + me.age + ", " + me.color + ") meows: Meow!"
}
}
// 4. pack単独使用テスト
box Bird {
init { species, canFly }
// pack単独 - Box哲学に最適
pack(birdSpecies, flying) {
me.species = birdSpecies + " (pack使用)"
me.canFly = flying
}
describe() {
local flyText
if me.canFly {
flyText = "can fly"
} else {
flyText = "cannot fly"
}
return me.species + " - " + flyText
}
}
// テスト実行
print("=== 🎁 pack構文テスト ===")
// 1. 基本的なpack
local animal
animal = new Animal("Generic", 5)
print("Animal: " + animal.speak())
// 2. デリゲーションでのpack
local dog
dog = new Dog("Buddy", 3, "Golden Retriever")
print("Dog: " + dog.speak())
// 3. 混在形式
local cat
cat = new Cat("Whiskers", 2, "Black")
print("Cat: " + cat.speak())
// 4. pack単独使用確認
local bird
bird = new Bird("Eagle", true)
print("Bird: " + bird.describe())
// 5. 引数なしpack
box SimpleBox {
init { message }
pack() { // 引数なしpack
me.message = "Packed with love! 🎁"
}
getMessage() {
return me.message
}
}
local simple
simple = new SimpleBox()
print("SimpleBox: " + simple.getMessage())
print("")
print("✅ pack構文テスト完了")
print("🎉 Everything is Box - Now Everything is Packed!")