şükela:  tümü | bugün
  • lexical analyzerdan gelen lexeme'lerin verilen gramere uygun olup olmadigini kontrol eden program. parser da denir.
  • lexical analyzerdan gelen lexeme'lerin verilen gramere uygun olup olmadığını kontrol etmesinin yanısıra, ana görevi, verilen context free grammar'i(cfg) kullanarak parse tree'ler üretmesidir. parse tree'ler ise iki farklı yöntemle üretilebilir: leftmost derivation(lmd) ve rightmost derivation(rmd).

    bazı cfg'lerde, verilen input kullanılarak birden fazla lmd, veya birden fazla rmd veya birden fazla parse tree üretilebilir. bu tür cfg'lere ambiguous grammar denilir. ambiguous gramerlerin şöyle bi sıkıntıları vardır ki: rmd veya lmd kullanılarak oluşturulan parse tree'ler ile yapılan hesaplamalar birbirinden farklı olabilir ve analyzer kardeşimiz inputu parse ederken acaba hangi lmd, rmd veya parse tree'yi kullanayım diye karar veremez. dolayısıyla parsing işlemi yapılamaz. tahmin edersiniz ki parsing yapılabilmesi için ambiguous olmayan yani bir unambiguous grammar kullanılmalıdır.