aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser/parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/parser/parser.c')
-rw-r--r--src/backend/parser/parser.c58
1 files changed, 3 insertions, 55 deletions
diff --git a/src/backend/parser/parser.c b/src/backend/parser/parser.c
index 4b5d12c0bf4..6c331ad338d 100644
--- a/src/backend/parser/parser.c
+++ b/src/backend/parser/parser.c
@@ -7,32 +7,26 @@
* (since we need to be able to do basic parsing even while inside an
* aborted transaction). Therefore, the data structures returned by
* the grammar are "raw" parsetrees that still need to be analyzed by
- * parse_analyze.
+ * analyze.c and related files.
*
*
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/parser/parser.c,v 1.64 2006/03/05 15:58:34 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/parser.c,v 1.65 2006/03/07 01:00:17 tgl Exp $
*
*-------------------------------------------------------------------------
*/
#include "postgres.h"
-#include "nodes/parsenodes.h"
#include "parser/gramparse.h"
-#include "parser/parse.h"
#include "parser/parser.h"
-#include "parser/parse_expr.h"
List *parsetree; /* result of parsing is left here */
-static int lookahead_token; /* one-token lookahead */
-static bool have_lookahead; /* lookahead_token set? */
-
/*
* raw_parser
@@ -46,12 +40,11 @@ raw_parser(const char *str)
int yyresult;
parsetree = NIL; /* in case grammar forgets to set it */
- have_lookahead = false;
scanner_init(str);
parser_init();
- yyresult = yyparse();
+ yyresult = base_yyparse();
scanner_finish();
@@ -60,48 +53,3 @@ raw_parser(const char *str)
return parsetree;
}
-
-
-/*
- * Intermediate filter between parser and base lexer (base_yylex in scan.l).
- *
- * The filter is needed because in some cases SQL92 requires more than one
- * token lookahead. We reduce these cases to one-token lookahead by combining
- * tokens here, in order to keep the grammar LR(1).
- *
- * Using a filter is simpler than trying to recognize multiword tokens
- * directly in scan.l, because we'd have to allow for comments between the
- * words ...
- */
-int
-yylex(void)
-{
- int cur_token;
-
- /* Get next token --- we might already have it */
- if (have_lookahead)
- {
- cur_token = lookahead_token;
- have_lookahead = false;
- }
- else
- cur_token = base_yylex();
-
- /* Do we need to look ahead for a possible multiword token? */
- switch (cur_token)
- {
- case UNION:
- /* UNION JOIN must be reduced to a single UNIONJOIN token */
- lookahead_token = base_yylex();
- if (lookahead_token == JOIN)
- cur_token = UNIONJOIN;
- else
- have_lookahead = true;
- break;
-
- default:
- break;
- }
-
- return cur_token;
-}