diff options
author | Tom Lane | 2015-03-10 15:48:34 +0000 |
---|---|---|
committer | Tom Lane | 2015-03-10 15:48:38 +0000 |
commit | 2fbb286647fac2014abdf2fbf6c7b4134be91602 (patch) | |
tree | 4fccedd11f8609b6046c4a5f7d96f99d9b23ac2e /src | |
parent | bb7b35caf78de80d2ff1643d042e62a71f83abbb (diff) |
Clean up the mess from => patch.
Commit 865f14a2d31af23a05bbf2df04c274629c5d5c4d was quite a few bricks
shy of a load: psql, ecpg, and plpgsql were all left out-of-step with
the core lexer. Of these only the last was likely to be a fatal
problem; but still, a minimal amount of grepping, or even just reading
the comments adjacent to the places that were changed, would have found
the other places that needed to be changed.
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/psql/psqlscan.l | 5 | ||||
-rw-r--r-- | src/include/parser/scanner.h | 2 | ||||
-rw-r--r-- | src/interfaces/ecpg/preproc/parse.pl | 3 | ||||
-rw-r--r-- | src/interfaces/ecpg/preproc/pgc.l | 2 | ||||
-rw-r--r-- | src/pl/plpgsql/src/pl_gram.y | 2 |
5 files changed, 11 insertions, 3 deletions
diff --git a/src/bin/psql/psqlscan.l b/src/bin/psql/psqlscan.l index fb3fa113875..2b2dec95be7 100644 --- a/src/bin/psql/psqlscan.l +++ b/src/bin/psql/psqlscan.l @@ -358,6 +358,7 @@ identifier {ident_start}{ident_cont}* typecast "::" dot_dot \.\. colon_equals ":=" +equals_greater "=>" /* * "self" is the set of chars that should be returned as single-character @@ -669,6 +670,10 @@ other . ECHO; } +{equals_greater} { + ECHO; + } + /* * These rules are specific to psql --- they implement parenthesis * counting and detection of command-ending semicolon. These must diff --git a/src/include/parser/scanner.h b/src/include/parser/scanner.h index e6724bc588e..535e864e368 100644 --- a/src/include/parser/scanner.h +++ b/src/include/parser/scanner.h @@ -50,7 +50,7 @@ typedef union core_YYSTYPE * the ASCII characters plus these: * %token <str> IDENT FCONST SCONST BCONST XCONST Op * %token <ival> ICONST PARAM - * %token TYPECAST DOT_DOT COLON_EQUALS + * %token TYPECAST DOT_DOT COLON_EQUALS EQUALS_GREATER * The above token definitions *must* be the first ones declared in any * bison parser built atop this scanner, so that they will have consistent * numbers assigned to them (specifically, IDENT = 258 and so on). diff --git a/src/interfaces/ecpg/preproc/parse.pl b/src/interfaces/ecpg/preproc/parse.pl index 36dce803863..7ae7acc6130 100644 --- a/src/interfaces/ecpg/preproc/parse.pl +++ b/src/interfaces/ecpg/preproc/parse.pl @@ -46,7 +46,8 @@ my %replace_string = ( 'WITH_LA' => 'with', 'TYPECAST' => '::', 'DOT_DOT' => '..', - 'COLON_EQUALS' => ':=',); + 'COLON_EQUALS' => ':=', + 'EQUALS_GREATER' => '=>',); # specific replace_types for specific non-terminals - never include the ':' # ECPG-only replace_types are defined in ecpg-replace_types diff --git a/src/interfaces/ecpg/preproc/pgc.l b/src/interfaces/ecpg/preproc/pgc.l index 530712efac6..a8cc3d877c0 100644 --- a/src/interfaces/ecpg/preproc/pgc.l +++ b/src/interfaces/ecpg/preproc/pgc.l @@ -236,6 +236,7 @@ array ({ident_cont}|{whitespace}|[\[\]\+\-\*\%\/\(\)\>\.])* typecast "::" dot_dot \.\. colon_equals ":=" +equals_greater "=>" /* * "self" is the set of chars that should be returned as single-character @@ -620,6 +621,7 @@ cppline {space}*#([^i][A-Za-z]*|{if}|{ifdef}|{ifndef}|{import})(.*\\{space})*. <SQL>{typecast} { return TYPECAST; } <SQL>{dot_dot} { return DOT_DOT; } <SQL>{colon_equals} { return COLON_EQUALS; } +<SQL>{equals_greater} { return EQUALS_GREATER; } <SQL>{informix_special} { /* are we simulating Informix? */ if (INFORMIX_MODE) diff --git a/src/pl/plpgsql/src/pl_gram.y b/src/pl/plpgsql/src/pl_gram.y index 506a313f701..a1758e03c3f 100644 --- a/src/pl/plpgsql/src/pl_gram.y +++ b/src/pl/plpgsql/src/pl_gram.y @@ -226,7 +226,7 @@ static void check_raise_parameters(PLpgSQL_stmt_raise *stmt); */ %token <str> IDENT FCONST SCONST BCONST XCONST Op %token <ival> ICONST PARAM -%token TYPECAST DOT_DOT COLON_EQUALS +%token TYPECAST DOT_DOT COLON_EQUALS EQUALS_GREATER /* * Other tokens recognized by plpgsql's lexer interface layer (pl_scanner.c). |