実録:moshにシンボルを足す

symbol-valueが(mosh)に入ってることを調べるのに一日掛かった。あとは簡単。

void
AddCProcedureToVM(VM* theVM,const ucs4char* name,Object (*cp)(VM* vm, int, const Object*)){
        theVM->setValueString(name,Object::makeCProcedure(cp));
}
Object
testme(VM* theVM,int argc,const Object* argv){
        return UC("hello!");
}

AddCProcedureToVM(theVM,UC("testme"),testme);

が、

これで、main.cppのなかで組み込み手続きを定義したりできる。通常の手法では変更するファイルが多岐にわたって面倒。