Can somebody explain how the 'parsetree' in the
parser( ) function get populated? What I saw is just a NIL. And it is not
touched else where in this file.
This file is
src/backend/parser/parser.c
Thanks!
Bin
/*
* parser * Given a query in string form, and optionally info about * parameter types, do lexical and syntactic analysis. * * Returns a list of raw (un-analyzed) parse trees. */ List * parser(StringInfo str, Oid *typev, int nargs) { int yyresult; parsetree = NIL; /* in case
parser forgets to set it */
have_lookahead = false; scanner_init(str);
parser_init(); parse_expr_init(); parser_param_set(typev, nargs); yyresult = yyparse();
scanner_finish();
clearerr(stdin); if (yyresult) /* error
*/
return NIL; return parsetree;
} |
- Re: [HACKERS] Question about Parser() Bin Liu
- Re: [HACKERS] Question about Parser() Neil Conway