Meine Fresse was hab ich (bzw. wir?) da nur los getreten...
In welcher Sprache überhaupt? Was soll die Sprache selbst bieten (warum feste Typen)?
Ich habe gerade dynamische Datentypen die aktuell Ints, Floats, Strings oder Booleans sein können.
Das ganze soll sehr tolerant sein, daher habe ich die Operatoren überladen und handle in diesen dann möglichst sinnvoll. Man kann z.B. einen String durch ein Int teilen:
|
Quellcode
|
1
2
3
4
|
_a = "Das ist ein String"
_b = 22 # int
_c = _a/_c # ergibt "Das ist ein String22"
|
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
void Var::div(Var* v){
if(type != STR){
if(type == INT || type == BOL){
value.i /= v->getInt();
}
else if(type == FLT){
value.f /= v->getFloat();
}
}
else{
value.str->append(v->toString());
}
}
|
Ob das jetzt wirklich sinnvoll ist sei mal dahin gestellt, aber es ist eben einfacher, da so alles erlaubt ist und das Ergebnis trotzdem festgelegt ist.
Alle Arithmetischen Operatoren hängen an den String den Wert als neuen String an (bzw. setzen ihn davor).
Du kannst dir die ganze Klasse
hier ansehen.