enum DT : int {//türlerin saklandığı enum
STRING, INT
}
struct DataType{
}
struct var{//değişkenkerle ilgili bilgilerin saklandığı yer
DT typ;
void* val;
}
DataType[] datatypes;
var[] stack;
string str1 = "deneme";
string str2 = "deneme2";
stack~= var(DT.STRING, &str1);
stack~= var(DT.STRING, &str2);
//Üst kısım sadece tanımlama gerekli komut çağırıldığında aşağıdaki kodlar çalışacak.
op_cmp:
bool eşit_mi = DataType[stack[$-2].typ].karşılaştır(stack[$-2], stack[$-1]);
/*
Burada yapılacak olan işlem karşılaştırma operandına gelindiğinde stackdan son 2 veriyi çekip 1 değişkenin türüne ait işlevi çalıştırmak.
*/
Benim şimdi burada istediğim şey sınıfları kullanmadan her bir türe ait karşılaştır işlevi gibi işlevleri oluşturmak. Yani bunları depolamak.
Bunu şu şekilde sınıflarla yapabilirdik. RhS 1.0 da olduğu gibi bir Command[] dizisi oluşturabilirdik. Ama class dan daha iyi bir yapı olması gerekiyor.
class Command{
bool eşitmi(var p1, var p2){
return false;
}
}
class RhString: Command{
override bool eşitmi(var p1, var p2){
return true;
}
}
Konuya ne isim koyacağımı dahi bulamadım :(
Sorunumu tam anlatamamış olabilirim özür dilerim.
Zekeriya
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]