2012-04-23 19 views
5

PostgreSQLの解析にはどのような文法が使用されますか?それはLR、LALR、LL、または何か他ですか?PostgreSQLの解析にはどのような文法が使われますか?

+1

LALR(1)文法に基づいている可能性があります。それはYacc/Bisonが通常扱うものです。その中にはいくつかの合併症が存在する可能性があります。 SQL文法がLALR(1)で扱うのが難しい場合があります。 –

+3

パーサのソースコードはこちら(最新版用)http://git.postgresql.org/gitweb/?p=postgresql.git;a=tree;f=src/backend/parser;h=904b1b0bb8bddc95b422b27a3d44fd826dedf736;hb=REL9_1_STABLE 標準のLEXとYACCの定義が含まれています... – zeFrenchy

答えて

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互換パーサジェネレータです。 –

関連する問題