export文廃止

svn上のソースではかなり前からなくなっているのですが、exportは廃止して、これからは代わりにreturn文を使うようにすることにしました。
トップレベル(関数の中じゃないところ)からreturnすると、その結果を返せます。

// Animal.xtal
Animal: class{
 
}

return Animal;
// Cat.xtal
Cat: class(lib::Animal){
  say: method "にゃー"; 
}

return Cat;
// Dog.xtal
Dog: class(lib::Animal){
  say: method "わん"; 
}

return Dog;
// test.xtal
animal: lib::Dog();
animal.say.p; // わん

animal = load("Cat.xtal");
animal.say.p; // にゃー
  • メモ
    • トップレベルで定義されたローカル変数の名前空間は、ファイルごとに完全に独立しており、名前の衝突を気にする必要はありません。