PostgreSQL'i ayrıştırmak için hangi dilbilgisi kullanılır? LR, LALR, LL veya başka bir şey mi?PostgreSQL'i ayrıştırmak için hangi dilbilgisi kullanılır?
5
A
cevap
6
PostgreSQL parser, yacc ve lex. Yacc tarafından üretilen ayrıştırıcılar LALR'dir (1). Postgres 'gramer here'u okuyabilirsiniz.
+1
Bu, [8.X sürüm] 'e kadar oldu (http://www.postgresql.org/docs/8.4/static/parser-stage.html). 9+ sürümlerinde PosgreSQL [Bison kullanıyor] (http://www.postgresql.org/docs/9.0/static/parser-stage.html), yani tam-uyumlu uyumlu çözümleyici üreteci. –
İlgili konular
- 1. Basit ifadeyi ayrıştırmak için^ve $ nasıl kullanılır?
- 2. NSScanner, .ics dosyasını ayrıştırmak için nasıl kullanılır
- 3. Dilbilgisi çevirisi için desen
- 4. Belirli bir öğe için ayrıştırmak üzere TinyXml nasıl kullanılır
- 5. UTF-8 ayrıştırmak için boost :: spirit nasıl kullanılır?
- 6. Bir html belgesindeki öğeleri ayrıştırmak için ScrapySharp nasıl kullanılır?
- 7. Verilen durum için hangi konteyner kullanılır?
- 8. Düzenli ifadeleri ayrıştırmak için Parsec kullanma
- 9. NLTK'da ayrıştırma için ingilizce dilbilgisi
- 10. Dilbilgisi (1)
- 11. C# dilbilgisi "taban"
- 12. H2 SQL Dilbilgisi İstisnası
- 13. Şifreli NFS'de hangi şifre kullanılır?
- 14. hangi şifreleme algoritması ask.fm'da kullanılır?
- 15. Bu Haskell kodunun dilbilgisi kuralı nedir?
- 16. Bunu peg dilbilgisi ile nasıl ayrıştırırım?
- 17. Gerilimi belirlemek için CLI dilbilgisi denetleyicisi
- 18. Va ++ C++ ile karşılaştırıldığında ayrıştırmak için bir akıl dili mi?
- 19. CPython hangi ayrıştırıcı üretecini kullanıyor?
- 20. AS3 Dilbilgisi: En doğru
- 21. Basit Boost :: Ruh dilbilgisi kullanma?
- 22. Bir dosya üzerinde dilbilgisi ayrımı yapın
- 23. Hata ayıklama Pyparsing Dilbilgisi
- 24. Java ile dilbilgisi (Almanca)
- 25. Boost.Proto dilbilgisi türüne eşleme
- 26. LL içine dilbilgisi dönüştürme (1) dilbilgisi: bazı sorunlar
- 27. Bir yöntemde tanımlanan sabitler için hangi bellek kullanılır?
- 28. Terminal uygulamaları oluşturmak için hangi programlama dilleri kullanılır?
- 29. Generics'i kullanırken tür çıkarımı için hangi kurallar kullanılır
- 30. Maven: Hangi amaç no-op olarak kullanılır (komut dosyası için)?
Bir LALR (1) gramerine dayanması olasıdır; Yacc/Bison normalde işte budur. Bazı komplikasyonlar olması muhtemeldir; Bazen SQL dilbilgisi LALR ile başa çıkmak için zor olur (1). –
Çözümleyici için kaynak kodu burada (en son sürüm için) http://git.postgresql.org/gitweb/?p=postgresql.git;a=tree;f=src/backend/parser;h=904b1b0bb8bddc95b422b27a3d44fd826dedf736;hb=REL9_1_STABLE Standart LEX ve YACC tanımları içerir ... – zeFrenchy