| |
| Posted by Ali Çehreli (acehreli) in reply to huseyin | PermalinkReply |
|
Ali Çehreli (acehreli)
Posted in reply to huseyin
| Bir eşleme tablosunda tutabilirsin. Çoook uyduruk bir fikir:
enum Tür { tamsayı, kesirli, boolean }
enum Deyim { değişkenTanımı, döngü }
struct Değişken
{
Tür tür;
string isim;
// ... başka? ...
}
import std.stdio;
void derle(File kaynakKod)
{
Değişken[string] değişkenler;
foreach (satır; kaynakKod.byLine()) {
Deyim deyim;
// ... satırı dilin kurallarına göre ayrıştır ...
final switch (deyim) {
case Deyim.değişkenTanımı:
Değişken değişken /* = değişken bilgisini edin */;
if (değişken.isim in değişkenler) {
throw new Exception("Değişken zaten tanımlı");
} else {
değişkenler[değişken.isim] = değişken;
}
break;
case Deyim.döngü:
// ...
break;
// ...
}
}
}
void main()
{}
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
|