private Cagirma cagirmaParseEt() { Cagirma c = new Cagirma(); tokenListesi._sayac--; Token t = tokenListesi.tokenAl(); if (t._tokenTuru == Tokenlar.Tanim) { c.ad = t._tokenDegeri; } if (tokenListesi.gozat()._tokenTuru == Tokenlar.SolParantez) { tokenListesi._sayac++; } if (tokenListesi.gozat()._tokenTuru == Tokenlar.SagParantez) { tokenListesi._sayac++; } else { c.argumanlar = cagirmaArgumaniParseEt(); } return(c); }
private void parseEt() { while (calisiyorMu) { t = tokenListesi.tokenAl(); if (t._tokenTuru == Tokenlar.hazirKullan) { string kutuphane = hazirKullanParseEt(); hazirKullanListesi.Add(kutuphane); } else if (t._tokenTuru == Tokenlar.Fonksiyon) { Fonksiyon f = fonksiyonParseEt(); if (suAnkiBlok == null) { suAnkiBlok = f; } else { suAnkiBlok.durumListesi.Add(new Dondurme()); agac.Add(suAnkiBlok); suAnkiBlok = f; } } else if (t._tokenTuru == Tokenlar.Tanim) { if (tokenListesi.gozat()._tokenTuru == Tokenlar.Esittir) { Atama a = atamaParseEt(); suAnkiBlok.durumListesi.Add(a); } else if (tokenListesi.gozat()._tokenTuru == Tokenlar.SolParantez) { Cagirma c = cagirmaParseEt(); suAnkiBlok.durumListesi.Add(c); } } else if (t._tokenTuru == Tokenlar.Dondur) { Dondurme d = dondurmeParseEt(); suAnkiBlok.durumListesi.Add(d); } else if (t._tokenTuru == Tokenlar.SagParantez) { if (suAnkiBlok is Fonksiyon) { suAnkiBlok.durumListesi.Add(new Dondurme()); agac.Add(suAnkiBlok); suAnkiBlok = null; } } else if (t._tokenTuru == Tokenlar.EOF) { agac.Add(suAnkiBlok); calisiyorMu = false; } } }
private void cagirmaDerle(Cagirma c) { c.argumanlar.Reverse(); foreach (Ifade e in c.argumanlar) { ifadeDerle(e); } Yaz("Cagir " + c.ad); }