2012-04-23 21 views
5

¿Qué tipo de gramática se usa para analizar PostgreSQL? ¿Es LR, LALR, LL o algo más?¿Qué tipo de gramática se usa para analizar PostgreSQL?

+1

Es probable que se base en una gramática LALR (1); eso es lo que Yacc/Bison maneja normalmente. Es probable que haya algunas complicaciones en eso; a veces la gramática de SQL se vuelve difícil de manejar con LALR (1). –

+3

El código fuente para el analizador está aquí (para la última versión) http://git.postgresql.org/gitweb/?p=postgresql.git;a=tree;f=src/backend/parser;h=904b1b0bb8bddc95b422b27a3d44fd826dedf736;hb=REL9_1_STABLE Contiene definiciones estándar de LEX y YACC ... – zeFrenchy

Respuesta

6

El PostgreSQL parser se basa en yacc y lex. Los analizadores generados por yacc son LALR (1). Puedes leer la gramática de postgres here.

+1

Esto fue hasta [8.X versión] (http://www.postgresql.org/docs/8.4/static/parser-stage.html). En más de 9 versiones, PosgreSQL [está usando Bison] (http://www.postgresql.org/docs/9.0/static/parser-stage.html), que es un generador de analizadores compatible con yacc completo. –

Cuestiones relacionadas