mirror of
https://github.com/postgres/postgres.git
synced 2025-11-04 20:11:56 +03:00
*** empty log message ***
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.11 1999/02/20 07:01:00 scrappy Exp $
|
||||
* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.12 1999/03/20 19:46:53 meskes Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -188,7 +188,6 @@ static ScanKeyword ScanKeywords[] = {
|
||||
{"procedure", PROCEDURE},
|
||||
{"public", PUBLIC},
|
||||
{"read", READ},
|
||||
{"recipe", RECIPE},
|
||||
{"references", REFERENCES},
|
||||
{"relative", RELATIVE},
|
||||
{"rename", RENAME},
|
||||
|
||||
@@ -134,8 +134,8 @@ identifier {letter}{letter_or_digit}*
|
||||
|
||||
typecast "::"
|
||||
|
||||
self [,()\[\].$\:\+\-\*\/\<\>\=\|]
|
||||
op_and_self [\~\!\@\#\%\^\&\|\`\?\$\:\+\-\*\/\<\>\=]
|
||||
self [,()\[\].;$\:\+\-\*\/\%\<\>\=\|]
|
||||
op_and_self [\~\!\@\#\^\&\|\?\$\:\+\-\*\/\%\<\>\=]
|
||||
operator {op_and_self}+
|
||||
|
||||
xmstop -
|
||||
@@ -299,7 +299,15 @@ cppline {space}*#.*(\\{space}*\n)*\n*
|
||||
BEGIN(xm);
|
||||
return yytext[0];
|
||||
}
|
||||
<SQL>{self} { return yytext[0]; }
|
||||
<SQL>{self} { /*
|
||||
* We may find a ';' inside a structure
|
||||
* definition in a TYPE or VAR statement.
|
||||
* This is not an EOL marker.
|
||||
*/
|
||||
if (yytext[0] == ';' && struct_level == 0)
|
||||
BEGIN C;
|
||||
return yytext[0];
|
||||
}
|
||||
<SQL>{operator}/-[\.0-9] {
|
||||
yylval.str = mm_strdup((char*)yytext);
|
||||
return Op;
|
||||
@@ -510,14 +518,6 @@ cppline {space}*#.*(\\{space}*\n)*\n*
|
||||
}
|
||||
}
|
||||
<SQL>{space} { /* ignore */ }
|
||||
<SQL>";" { /*
|
||||
* We may find a ';' inside a structure
|
||||
* definition in a TYPE or VAR statement.
|
||||
* This is not a EOL marker.
|
||||
*/
|
||||
if (struct_level == 0)
|
||||
BEGIN C;
|
||||
return SQL_SEMI; }
|
||||
<SQL>{other} { return yytext[0]; }
|
||||
<C>{exec}{space}{sql} { BEGIN SQL; return SQL_START; }
|
||||
<C>{ccomment} { /* ignore */ }
|
||||
|
||||
@@ -652,7 +652,7 @@ adjust_array(enum ECPGttype type_enum, int *dimension, int *length, int type_dim
|
||||
%token SQL_FOUND SQL_FREE SQL_GO SQL_GOTO
|
||||
%token SQL_IDENTIFIED SQL_IMMEDIATE SQL_INDICATOR SQL_INT SQL_LONG
|
||||
%token SQL_OPEN SQL_PREPARE SQL_RELEASE SQL_REFERENCE
|
||||
%token SQL_SECTION SQL_SEMI SQL_SHORT SQL_SIGNED SQL_SQLERROR SQL_SQLPRINT
|
||||
%token SQL_SECTION SQL_SHORT SQL_SIGNED SQL_SQLERROR SQL_SQLPRINT
|
||||
%token SQL_SQLWARNING SQL_START SQL_STOP SQL_STRUCT SQL_UNSIGNED
|
||||
%token SQL_VAR SQL_WHENEVER
|
||||
|
||||
@@ -710,7 +710,7 @@ adjust_array(enum ECPGttype type_enum, int *dimension, int *length, int type_dim
|
||||
LANCOMPILER, LIMIT, LISTEN, UNLISTEN, LOAD, LOCATION, LOCK_P, MAXVALUE, MINVALUE, MOVE,
|
||||
NEW, NOCREATEDB, NOCREATEUSER, NONE, NOTHING, NOTIFY, NOTNULL,
|
||||
OFFSET, OIDS, OPERATOR, PASSWORD, PROCEDURAL,
|
||||
RECIPE, RENAME, RESET, RETURNS, ROW, RULE,
|
||||
RENAME, RESET, RETURNS, ROW, RULE,
|
||||
SERIAL, SEQUENCE, SETOF, SHOW, START, STATEMENT, STDIN, STDOUT, TRUSTED,
|
||||
UNLISTEN, UNTIL, VACUUM, VALID, VERBOSE, VERSION
|
||||
|
||||
@@ -734,6 +734,7 @@ adjust_array(enum ECPGttype type_enum, int *dimension, int *length, int type_dim
|
||||
%left Op /* multi-character ops and user-defined operators */
|
||||
%nonassoc NOTNULL
|
||||
%nonassoc ISNULL
|
||||
%nonassoc NULL_P
|
||||
%nonassoc IS
|
||||
%left '+' '-'
|
||||
%left '*' '/' '%'
|
||||
@@ -839,8 +840,8 @@ prog: statements;
|
||||
statements: /* empty */
|
||||
| statements statement
|
||||
|
||||
statement: ecpgstart opt_at stmt SQL_SEMI { connection = NULL; }
|
||||
| ecpgstart stmt SQL_SEMI
|
||||
statement: ecpgstart opt_at stmt ';' { connection = NULL; }
|
||||
| ecpgstart stmt ';'
|
||||
| ECPGDeclaration
|
||||
| c_thing { fprintf(yyout, "%s", $1); free($1); }
|
||||
| cpp_line { fprintf(yyout, "%s", $1); free($1); }
|
||||
@@ -3587,6 +3588,8 @@ a_expr: attr opt_indirection
|
||||
{ $$ = cat3_str($1, make1_str(">"), $3); }
|
||||
| a_expr '=' NULL_P
|
||||
{ $$ = cat2_str($1, make1_str("= NULL")); }
|
||||
| NULL_P '=' a_expr
|
||||
{ $$ = cat2_str(make1_str("= NULL"), $3); }
|
||||
| a_expr '=' a_expr
|
||||
{ $$ = cat3_str($1, make1_str("="), $3); }
|
||||
/* not possible in embedded sql | ':' a_expr
|
||||
@@ -4798,9 +4801,9 @@ ECPGDeclaration: sql_startdeclare
|
||||
output_line_number();
|
||||
}
|
||||
|
||||
sql_startdeclare : ecpgstart BEGIN_TRANS DECLARE SQL_SECTION SQL_SEMI {}
|
||||
sql_startdeclare : ecpgstart BEGIN_TRANS DECLARE SQL_SECTION ';' {}
|
||||
|
||||
sql_enddeclare: ecpgstart END_TRANS DECLARE SQL_SECTION SQL_SEMI {}
|
||||
sql_enddeclare: ecpgstart END_TRANS DECLARE SQL_SECTION ';' {}
|
||||
|
||||
variable_declarations: /* empty */
|
||||
{
|
||||
@@ -5389,7 +5392,7 @@ sql_declaration: ctype
|
||||
actual_type[struct_level].type_dimension = $1.type_dimension;
|
||||
actual_type[struct_level].type_index = $1.type_index;
|
||||
}
|
||||
sql_variable_list SQL_SEMI
|
||||
sql_variable_list ';'
|
||||
{
|
||||
$$ = cat3_str($1.type_str, $3, make1_str(";"));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user