Ejemplo n.º 1
0
        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;
                }
            }
        }
Ejemplo n.º 2
0
        private Atama atamaParseEt()
        {
            Atama a = new Atama();

            tokenListesi._sayac--;
            a.ad = tokenListesi.tokenAl()._tokenDegeri;
            tokenListesi._sayac++;
            a.deger = expressionParseEt();
            return(a);
        }
Ejemplo n.º 3
0
 private void atamaDerle(Atama a)
 {
     ifadeDerle(a.deger);
     Yaz("DegiskenAta " + a.ad);
 }