PostgreSQLの解析にはどのような文法が使用されますか?それはLR、LALR、LL、または何か他ですか?PostgreSQLの解析にはどのような文法が使われますか?
5
A
答えて
6
PostgreSQL parserは、yaccとlexに基づいています。 yaccによって生成されたパーサーはLALR(1)です。あなたはpostgresの文法hereを読むことができます。
+1
これは[8.Xバージョン](http://www.postgresql.org/docs/8.4/static/parser-stage.html)までです。 9以上のバージョンでは、PosgreSQLはBisonを使用しています(http://www.postgresql.org/docs/9.0/static/parser-stage.html)。これは完全なyacc互換パーサジェネレータです。 –
関連する問題
- 1. Javaはどのように空文を解析しますか?
- 2. これはどのように解析されますか?
- 3. これをペグ文法でどのように解析するのですか?
- 4. XMLTextReaderはどのような解析方法を使用していますか?
- 5. アポストロフィ/文字リテラルはHaskellでどのように解析されますか?
- 6. ドッカーイメージ名はどのように解析されますか?
- 7. git引数はどのように解析されますか?
- 8. DOMはどのように解析されますか?
- 9. djangoテンプレートはどのように解析されますか?
- 10. プロキシファイアーにはどのような魔法が使われていますか?
- 11. どのようなシナリオで、完全な解析の代わりにチャンクを使用しますか?
- 12. HTML/XML文書の解析はどのように機能しますか?
- 13. plpythonのimport文はどのように扱われますか?
- 14. Djangoテンプレートの解析はどのように行いますか?
- 15. レンズにはどのようなものが使われていますか?
- 16. dalvik命令の解析中に可変長引数はどのように解析されますか?
- 17. BOOST_BINARYマクロはどのようにスペースを解析しますか?
- 18. xmlはどのように解析できますか?
- 19. SAXはどのようにドキュメントを解析しますか?
- 20. 「シンプルな」文法の解析
- 21. どのようなJSON解析が最もシンプルですか?
- 22. どうすればこのようなデータを解析できますか?
- 23. ExtractingRequestHandlerはドキュメントの本文のみを解析するようにどのように指示しますか?
- 24. Visual C++ではどのような形式のエイリアス解析が使用されますか?
- 25. evalまたはast.literal_evalを使わずに文字列を解析する方法
- 26. XPATHを使用したPostgreSQLでのXML文書の解析?
- 27. 長さの異なる文字列のタイムスタンプを解析するにはどうすればよいですか?
- 28. "インボイス"レベルのデータを解析用のカラムデータに解析するにはどうすればよいですか?
- 29. Androidでは、文字列やその他の変数型はどのように解析されますか?
- 30. C#でAntlr4で大きなファイルを解析すると、OutOfMemoryExceptionがどのように解決されますか?
LALR(1)文法に基づいている可能性があります。それはYacc/Bisonが通常扱うものです。その中にはいくつかの合併症が存在する可能性があります。 SQL文法がLALR(1)で扱うのが難しい場合があります。 –
パーサのソースコードはこちら(最新版用)http://git.postgresql.org/gitweb/?p=postgresql.git;a=tree;f=src/backend/parser;h=904b1b0bb8bddc95b422b27a3d44fd826dedf736;hb=REL9_1_STABLE 標準のLEXとYACCの定義が含まれています... – zeFrenchy