From: Michael Meskes <meskes@usa.net>
+ Mon Aug 31 09:40:04 CEST 1998 + + - Minor patch to Makefile + - Put pgc.l in sync with scan.l + + Tue Sep 1 11:31:05 CEST 1998 + + - Fixed another bug in preproc.y + + Thu Sep 3 12:21:16 CEST 1998 + + - Sync preproc.y with gram.y + + Mon Sep 14 09:21:02 CEST 1998 + + - Sync preproc.y with gram.y yet again + + Thu Sep 17 08:55:33 CEST 1998 + + - Synced preproc.y and gram.y one more time + + Thu Sep 17 19:23:24 CEST 1998 + + - Added missing ´;´ in preproc.y + - Set version to 2.4.2
This commit is contained in:
parent
25a64f7519
commit
bf395e895b
@ -311,3 +311,29 @@ Fri Aug 28 15:36:58 CEST 1998
|
|||||||
- Removed one line of code that AIX complains about since it was not
|
- Removed one line of code that AIX complains about since it was not
|
||||||
needed anyway
|
needed anyway
|
||||||
- Set library version to 2.6.1
|
- Set library version to 2.6.1
|
||||||
|
|
||||||
|
Mon Aug 31 09:40:04 CEST 1998
|
||||||
|
|
||||||
|
- Minor patch to Makefile
|
||||||
|
- Put pgc.l in sync with scan.l
|
||||||
|
|
||||||
|
Tue Sep 1 11:31:05 CEST 1998
|
||||||
|
|
||||||
|
- Fixed another bug in preproc.y
|
||||||
|
|
||||||
|
Thu Sep 3 12:21:16 CEST 1998
|
||||||
|
|
||||||
|
- Sync preproc.y with gram.y
|
||||||
|
|
||||||
|
Mon Sep 14 09:21:02 CEST 1998
|
||||||
|
|
||||||
|
- Sync preproc.y with gram.y yet again
|
||||||
|
|
||||||
|
Thu Sep 17 08:55:33 CEST 1998
|
||||||
|
|
||||||
|
- Synced preproc.y and gram.y one more time
|
||||||
|
|
||||||
|
Thu Sep 17 19:23:24 CEST 1998
|
||||||
|
|
||||||
|
- Added missing ´;´ in preproc.y
|
||||||
|
- Set version to 2.4.2
|
||||||
|
@ -3,7 +3,7 @@ include $(SRCDIR)/Makefile.global
|
|||||||
|
|
||||||
MAJOR_VERSION=2
|
MAJOR_VERSION=2
|
||||||
MINOR_VERSION=4
|
MINOR_VERSION=4
|
||||||
PATCHLEVEL=1
|
PATCHLEVEL=2
|
||||||
|
|
||||||
CFLAGS+=-I../include -DMAJOR_VERSION=$(MAJOR_VERSION) \
|
CFLAGS+=-I../include -DMAJOR_VERSION=$(MAJOR_VERSION) \
|
||||||
-DMINOR_VERSION=$(MINOR_VERSION) -DPATCHLEVEL=$(PATCHLEVEL) \
|
-DMINOR_VERSION=$(MINOR_VERSION) -DPATCHLEVEL=$(PATCHLEVEL) \
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.4 1998/09/01 03:28:41 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.5 1998/09/21 05:52:53 scrappy Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -150,6 +150,7 @@ static ScanKeyword ScanKeywords[] = {
|
|||||||
{"notnull", NOTNULL},
|
{"notnull", NOTNULL},
|
||||||
{"null", NULL_P},
|
{"null", NULL_P},
|
||||||
{"numeric", NUMERIC},
|
{"numeric", NUMERIC},
|
||||||
|
{"of", OF},
|
||||||
{"oids", OIDS},
|
{"oids", OIDS},
|
||||||
{"on", ON},
|
{"on", ON},
|
||||||
{"operator", OPERATOR},
|
{"operator", OPERATOR},
|
||||||
|
@ -340,6 +340,9 @@ cppline {space}*#.*(\\{space}*\n)*\n*
|
|||||||
if (isascii((unsigned char)yytext[i]) && isupper(yytext[i]))
|
if (isascii((unsigned char)yytext[i]) && isupper(yytext[i]))
|
||||||
yytext[i] = tolower(yytext[i]);
|
yytext[i] = tolower(yytext[i]);
|
||||||
|
|
||||||
|
if (i >= NAMEDATALEN)
|
||||||
|
yytext[NAMEDATALEN-1] = '\0';
|
||||||
|
|
||||||
keyword = ScanKeywordLookup((char*)yytext);
|
keyword = ScanKeywordLookup((char*)yytext);
|
||||||
if (keyword != NULL) {
|
if (keyword != NULL) {
|
||||||
return keyword->value;
|
return keyword->value;
|
||||||
@ -478,6 +481,9 @@ cppline {space}*#.*(\\{space}*\n)*\n*
|
|||||||
if (isascii((unsigned char)yytext[i]) && isupper(yytext[i]))
|
if (isascii((unsigned char)yytext[i]) && isupper(yytext[i]))
|
||||||
yytext[i] = tolower(yytext[i]);
|
yytext[i] = tolower(yytext[i]);
|
||||||
|
|
||||||
|
if (i >= NAMEDATALEN)
|
||||||
|
yytext[NAMEDATALEN-1] = '\0';
|
||||||
|
|
||||||
keyword = ScanKeywordLookup((char*)yytext);
|
keyword = ScanKeywordLookup((char*)yytext);
|
||||||
if (keyword != NULL) {
|
if (keyword != NULL) {
|
||||||
return keyword->value;
|
return keyword->value;
|
||||||
|
@ -528,7 +528,7 @@ output_statement(char * stmt, int mode)
|
|||||||
%token TYPECAST
|
%token TYPECAST
|
||||||
|
|
||||||
/* Keywords (in SQL92 reserved words) */
|
/* Keywords (in SQL92 reserved words) */
|
||||||
%token ACTION, ADD, ALL, ALTER, AND, ANY AS, ASC,
|
%token ABSOLUTE, ACTION, ADD, ALL, ALTER, AND, ANY AS, ASC,
|
||||||
BEGIN_TRANS, BETWEEN, BOTH, BY,
|
BEGIN_TRANS, BETWEEN, BOTH, BY,
|
||||||
CASCADE, CAST, CHAR, CHARACTER, CHECK, CLOSE, COLLATE, COLUMN, COMMIT,
|
CASCADE, CAST, CHAR, CHARACTER, CHECK, CLOSE, COLLATE, COLUMN, COMMIT,
|
||||||
CONSTRAINT, CREATE, CROSS, CURRENT, CURRENT_DATE, CURRENT_TIME,
|
CONSTRAINT, CREATE, CROSS, CURRENT, CURRENT_DATE, CURRENT_TIME,
|
||||||
@ -537,14 +537,14 @@ output_statement(char * stmt, int mode)
|
|||||||
END_TRANS, EXECUTE, EXISTS, EXTRACT,
|
END_TRANS, EXECUTE, EXISTS, EXTRACT,
|
||||||
FETCH, FLOAT, FOR, FOREIGN, FROM, FULL,
|
FETCH, FLOAT, FOR, FOREIGN, FROM, FULL,
|
||||||
GRANT, GROUP, HAVING, HOUR_P,
|
GRANT, GROUP, HAVING, HOUR_P,
|
||||||
IN, INNER_P, INSERT, INTERVAL, INTO, IS,
|
IN, INNER_P, INSENSITIVE, INSERT, INTERVAL, INTO, IS,
|
||||||
JOIN, KEY, LANGUAGE, LEADING, LEFT, LIKE, LOCAL,
|
JOIN, KEY, LANGUAGE, LEADING, LEFT, LIKE, LOCAL,
|
||||||
MATCH, MINUTE_P, MONTH_P, NAMES,
|
MATCH, MINUTE_P, MONTH_P, NAMES,
|
||||||
NATIONAL, NATURAL, NCHAR, NO, NOT, NOTIFY, NULL_P, NUMERIC,
|
NATIONAL, NATURAL, NCHAR, NEXT, NO, NOT, NOTIFY, NULL_P, NUMERIC,
|
||||||
ON, OPTION, OR, ORDER, OUTER_P,
|
OF, ON, ONLY, OPTION, OR, ORDER, OUTER_P,
|
||||||
PARTIAL, POSITION, PRECISION, PRIMARY, PRIVILEGES, PROCEDURE, PUBLIC,
|
PARTIAL, POSITION, PRECISION, PRIMARY, PRIOR, PRIVILEGES, PROCEDURE, PUBLIC,
|
||||||
REFERENCES, REVOKE, RIGHT, ROLLBACK,
|
READ, REFERENCES, RELATIVE, REVOKE, RIGHT, ROLLBACK,
|
||||||
SECOND_P, SELECT, SET, SUBSTRING,
|
SCROLL, SECOND_P, SELECT, SET, SUBSTRING,
|
||||||
TABLE, TIME, TIMESTAMP, TIMEZONE_HOUR, TIMEZONE_MINUTE,
|
TABLE, TIME, TIMESTAMP, TIMEZONE_HOUR, TIMEZONE_MINUTE,
|
||||||
TO, TRAILING, TRANSACTION, TRIM,
|
TO, TRAILING, TRANSACTION, TRIM,
|
||||||
UNION, UNIQUE, UPDATE, USER, USING,
|
UNION, UNIQUE, UPDATE, USER, USING,
|
||||||
@ -620,7 +620,7 @@ output_statement(char * stmt, int mode)
|
|||||||
%type <str> ColId default_expr ColQualifier columnDef ColQualList
|
%type <str> ColId default_expr ColQualifier columnDef ColQualList
|
||||||
%type <str> ColConstraint ColConstraintElem default_list NumericOnly FloatOnly
|
%type <str> ColConstraint ColConstraintElem default_list NumericOnly FloatOnly
|
||||||
%type <str> OptTableElementList OptTableElement TableConstraint
|
%type <str> OptTableElementList OptTableElement TableConstraint
|
||||||
%type <str> ConstraintElem key_actions constraint_list
|
%type <str> ConstraintElem key_actions constraint_list ColPrimaryKey
|
||||||
%type <str> res_target_list res_target_el res_target_list2
|
%type <str> res_target_list res_target_el res_target_list2
|
||||||
%type <str> res_target_el2 opt_id relation_name database_name
|
%type <str> res_target_el2 opt_id relation_name database_name
|
||||||
%type <str> access_method attr_name class index_name name func_name
|
%type <str> access_method attr_name class index_name name func_name
|
||||||
@ -667,6 +667,7 @@ output_statement(char * stmt, int mode)
|
|||||||
%type <str> ViewStmt LoadStmt CreatedbStmt opt_database1 opt_database2 location
|
%type <str> ViewStmt LoadStmt CreatedbStmt opt_database1 opt_database2 location
|
||||||
%type <str> DestroydbStmt ClusterStmt grantee RevokeStmt encoding
|
%type <str> DestroydbStmt ClusterStmt grantee RevokeStmt encoding
|
||||||
%type <str> GrantStmt privileges operation_commalist operation
|
%type <str> GrantStmt privileges operation_commalist operation
|
||||||
|
%type <str> cursor_clause, opt_cursor, opt_readonly, opt_of
|
||||||
|
|
||||||
%type <str> ECPGWhenever ECPGConnect connection_target ECPGOpen open_opts
|
%type <str> ECPGWhenever ECPGConnect connection_target ECPGOpen open_opts
|
||||||
%type <str> indicator ECPGExecute ecpg_expr dotext
|
%type <str> indicator ECPGExecute ecpg_expr dotext
|
||||||
@ -1083,9 +1084,9 @@ columnDef: ColId Typename ColQualifier
|
|||||||
{
|
{
|
||||||
$$ = cat3_str($1, $2, $3);
|
$$ = cat3_str($1, $2, $3);
|
||||||
}
|
}
|
||||||
| ColId SERIAL
|
| ColId SERIAL ColPrimaryKey
|
||||||
{
|
{
|
||||||
$$ = make2_str($1, make1_str(" serial"));
|
$$ = make3_str($1, make1_str(" serial "), $3);
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -1097,6 +1098,16 @@ ColQualList: ColQualList ColConstraint { $$ = cat2_str($1,$2); }
|
|||||||
| ColConstraint { $$ = $1; }
|
| ColConstraint { $$ = $1; }
|
||||||
;
|
;
|
||||||
|
|
||||||
|
ColPrimaryKey: PRIMARY KEY
|
||||||
|
{
|
||||||
|
$$ = make1_str("primary key");
|
||||||
|
}
|
||||||
|
| /*EMPTY*/
|
||||||
|
{
|
||||||
|
$$ = make1_str("");
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
ColConstraint:
|
ColConstraint:
|
||||||
CONSTRAINT name ColConstraintElem
|
CONSTRAINT name ColConstraintElem
|
||||||
{
|
{
|
||||||
@ -1106,10 +1117,29 @@ ColConstraint:
|
|||||||
{ $$ = $1; }
|
{ $$ = $1; }
|
||||||
;
|
;
|
||||||
|
|
||||||
|
/* The column constraint WITH NULL gives a shift/reduce error
|
||||||
|
* because it requires yacc to look more than one token ahead to
|
||||||
|
* resolve WITH TIME ZONE and WITH NULL.
|
||||||
|
* So, leave it out of the syntax for now.
|
||||||
|
| WITH NULL_P
|
||||||
|
{
|
||||||
|
$$ = NULL;
|
||||||
|
}
|
||||||
|
* - thomas 1998-09-12
|
||||||
|
*
|
||||||
|
* DEFAULT NULL is already the default for Postgres.
|
||||||
|
* Bue define it here and carry it forward into the system
|
||||||
|
* to make it explicit.
|
||||||
|
* - thomas 1998-09-13
|
||||||
|
*/
|
||||||
ColConstraintElem: CHECK '(' constraint_expr ')'
|
ColConstraintElem: CHECK '(' constraint_expr ')'
|
||||||
{
|
{
|
||||||
$$ = make3_str(make1_str("check("), $3, make1_str(")"));
|
$$ = make3_str(make1_str("check("), $3, make1_str(")"));
|
||||||
}
|
}
|
||||||
|
| DEFAULT NULL_P
|
||||||
|
{
|
||||||
|
$$ = make1_str("default null");
|
||||||
|
}
|
||||||
| DEFAULT default_expr
|
| DEFAULT default_expr
|
||||||
{
|
{
|
||||||
$$ = cat2_str(make1_str("default"), $2);
|
$$ = cat2_str(make1_str("default"), $2);
|
||||||
@ -1143,10 +1173,16 @@ default_list: default_list ',' default_expr
|
|||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
/* The Postgres default column value is NULL.
|
||||||
|
* Rather than carrying DEFAULT NULL forward as a clause,
|
||||||
|
* let's just have it be a no-op.
|
||||||
|
| NULL_P
|
||||||
|
{ $$ = make1_str("null"); }
|
||||||
|
* - thomas 1998-09-13
|
||||||
|
*/
|
||||||
|
|
||||||
default_expr: AexprConst
|
default_expr: AexprConst
|
||||||
{ $$ = $1; }
|
{ $$ = $1; }
|
||||||
| NULL_P
|
|
||||||
{ $$ = make1_str("null"); }
|
|
||||||
| '-' default_expr %prec UMINUS
|
| '-' default_expr %prec UMINUS
|
||||||
{ $$ = cat2_str(make1_str("-"), $2); }
|
{ $$ = cat2_str(make1_str("-"), $2); }
|
||||||
| default_expr '+' default_expr
|
| default_expr '+' default_expr
|
||||||
@ -1559,7 +1595,7 @@ TriggerForType: ROW { $$ = make1_str("row"); }
|
|||||||
;
|
;
|
||||||
|
|
||||||
TriggerFuncArgs: TriggerFuncArg
|
TriggerFuncArgs: TriggerFuncArg
|
||||||
{ $$ = $1 }
|
{ $$ = $1; }
|
||||||
| TriggerFuncArgs ',' TriggerFuncArg
|
| TriggerFuncArgs ',' TriggerFuncArg
|
||||||
{ $$ = cat3_str($1, make1_str(","), $3); }
|
{ $$ = cat3_str($1, make1_str(","), $3); }
|
||||||
| /*EMPTY*/
|
| /*EMPTY*/
|
||||||
@ -1667,12 +1703,17 @@ DestroyStmt: DROP TABLE relation_name_list
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
*
|
*
|
||||||
* QUERY:
|
* QUERY:
|
||||||
* fetch/move [forward | backward] [number | all ] [ in <portalname> ]
|
* fetch/move [forward | backward] [ # | all ] [ in <portalname> ]
|
||||||
|
* fetch [ forward | backward | absolute | relative ]
|
||||||
|
* [ # | all | next | prior ] [ [ in | from ] <portalname> ]
|
||||||
*
|
*
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
FetchStmt: FETCH opt_direction fetch_how_many opt_portal_name INTO into_list
|
FetchStmt: FETCH opt_direction fetch_how_many opt_portal_name INTO into_list
|
||||||
{
|
{
|
||||||
|
if (strncmp($2, "relative", strlen("relative")) == 0 && atol($3) == 0L)
|
||||||
|
yyerror("FETCH/RELATIVE at current position is not supported");
|
||||||
|
|
||||||
$$ = cat4_str(make1_str("fetch"), $2, $3, $4);
|
$$ = cat4_str(make1_str("fetch"), $2, $3, $4);
|
||||||
}
|
}
|
||||||
| MOVE opt_direction fetch_how_many opt_portal_name
|
| MOVE opt_direction fetch_how_many opt_portal_name
|
||||||
@ -1683,18 +1724,26 @@ FetchStmt: FETCH opt_direction fetch_how_many opt_portal_name INTO into_list
|
|||||||
|
|
||||||
opt_direction: FORWARD { $$ = make1_str("forward"); }
|
opt_direction: FORWARD { $$ = make1_str("forward"); }
|
||||||
| BACKWARD { $$ = make1_str("backward"); }
|
| BACKWARD { $$ = make1_str("backward"); }
|
||||||
|
| RELATIVE { $$ = make1_str("relative"); }
|
||||||
|
| ABSOLUTE
|
||||||
|
{
|
||||||
|
fprintf(stderr, "FETCH/ABSOLUTE not supported, using RELATIVE");
|
||||||
|
$$ = make1_str("absolute");
|
||||||
|
}
|
||||||
| /*EMPTY*/ { $$ = make1_str(""); /* default */ }
|
| /*EMPTY*/ { $$ = make1_str(""); /* default */ }
|
||||||
;
|
;
|
||||||
|
|
||||||
fetch_how_many: Iconst
|
fetch_how_many: Iconst { $$ = $1; }
|
||||||
{ $$ = $1;
|
| '-' Iconst { $$ = make2_str(make1_str("-"), $2); }
|
||||||
if (atol($1) <= 0) yyerror("Please specify nonnegative count for fetch"); }
|
|
||||||
| ALL { $$ = make1_str("all"); }
|
| ALL { $$ = make1_str("all"); }
|
||||||
|
| NEXT { $$ = make1_str("next"); }
|
||||||
|
| PRIOR { $$ = make1_str("prior"); }
|
||||||
| /*EMPTY*/ { $$ = make1_str(""); /*default*/ }
|
| /*EMPTY*/ { $$ = make1_str(""); /*default*/ }
|
||||||
;
|
;
|
||||||
|
|
||||||
opt_portal_name: IN name { $$ = cat2_str(make1_str("in"), $2); }
|
opt_portal_name: IN name { $$ = cat2_str(make1_str("in"), $2); }
|
||||||
| name { $$ = cat2_str(make1_str("in"), $1); }
|
| FROM name { $$ = cat2_str(make1_str("from"), $2); }
|
||||||
|
/* | name { $$ = cat2_str(make1_str("in"), $1); */
|
||||||
| /*EMPTY*/ { $$ = make1_str(""); }
|
| /*EMPTY*/ { $$ = make1_str(""); }
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -2328,6 +2377,10 @@ insert_rest: VALUES '(' res_target_list2 ')'
|
|||||||
{
|
{
|
||||||
$$ = make3_str(make1_str("values("), $3, make1_str(")"));
|
$$ = make3_str(make1_str("values("), $3, make1_str(")"));
|
||||||
}
|
}
|
||||||
|
| DEFAULT VALUES
|
||||||
|
{
|
||||||
|
$$ = make1_str("default values");
|
||||||
|
}
|
||||||
| SELECT opt_unique res_target_list2
|
| SELECT opt_unique res_target_list2
|
||||||
from_clause where_clause
|
from_clause where_clause
|
||||||
group_clause having_clause
|
group_clause having_clause
|
||||||
@ -2404,11 +2457,12 @@ UpdateStmt: UPDATE relation_name
|
|||||||
* CURSOR STATEMENTS
|
* CURSOR STATEMENTS
|
||||||
*
|
*
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
CursorStmt: DECLARE name opt_binary CURSOR FOR
|
CursorStmt: DECLARE name opt_cursor CURSOR FOR
|
||||||
SELECT opt_unique res_target_list2
|
SELECT opt_unique res_target_list2
|
||||||
from_clause where_clause
|
from_clause where_clause
|
||||||
group_clause having_clause
|
group_clause having_clause
|
||||||
union_clause sort_clause
|
union_clause sort_clause
|
||||||
|
cursor_clause
|
||||||
{
|
{
|
||||||
struct cursor *ptr, *this;
|
struct cursor *ptr, *this;
|
||||||
|
|
||||||
@ -2438,7 +2492,26 @@ CursorStmt: DECLARE name opt_binary CURSOR FOR
|
|||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
opt_cursor: BINARY { $$ = make1_str("binary"); }
|
||||||
|
| INSENSITIVE { $$ = make1_str("insensitive"); }
|
||||||
|
| SCROLL { $$ = make1_str("scroll"); }
|
||||||
|
| INSENSITIVE SCROLL { $$ = make1_str("insensitive scroll"); }
|
||||||
|
| /*EMPTY*/ { $$ = make1_str(""); }
|
||||||
|
;
|
||||||
|
|
||||||
|
cursor_clause: FOR opt_readonly { $$ = cat2_str(make1_str("for"), $2); }
|
||||||
|
| /*EMPTY*/ { $$ = make1_str(""); }
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
opt_readonly: READ ONLY { $$ = make1_str("read only"); }
|
||||||
|
| UPDATE opt_of
|
||||||
|
{
|
||||||
|
yyerror("DECLARE/UPDATE not supported; Cursors must be READ ONLY.");
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
|
opt_of: OF columnList { $$ = make2_str(make1_str("of"), $2); }
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
*
|
*
|
||||||
@ -3776,6 +3849,7 @@ TypeId: ColId
|
|||||||
*/
|
*/
|
||||||
ColId: ident { $$ = $1; }
|
ColId: ident { $$ = $1; }
|
||||||
| datetime { $$ = $1; }
|
| datetime { $$ = $1; }
|
||||||
|
| ABSOLUTE { $$ = make1_str("absolute"); }
|
||||||
| ACTION { $$ = make1_str("action"); }
|
| ACTION { $$ = make1_str("action"); }
|
||||||
| CACHE { $$ = make1_str("cache"); }
|
| CACHE { $$ = make1_str("cache"); }
|
||||||
| CYCLE { $$ = make1_str("cycle"); }
|
| CYCLE { $$ = make1_str("cycle"); }
|
||||||
@ -3787,18 +3861,26 @@ ColId: ident { $$ = $1; }
|
|||||||
| FUNCTION { $$ = make1_str("function"); }
|
| FUNCTION { $$ = make1_str("function"); }
|
||||||
| INCREMENT { $$ = make1_str("increment"); }
|
| INCREMENT { $$ = make1_str("increment"); }
|
||||||
| INDEX { $$ = make1_str("index"); }
|
| INDEX { $$ = make1_str("index"); }
|
||||||
|
| INSENSITIVE { $$ = make1_str("insensitive"); }
|
||||||
| KEY { $$ = make1_str("key"); }
|
| KEY { $$ = make1_str("key"); }
|
||||||
| LANGUAGE { $$ = make1_str("language"); }
|
| LANGUAGE { $$ = make1_str("language"); }
|
||||||
| LOCATION { $$ = make1_str("location"); }
|
| LOCATION { $$ = make1_str("location"); }
|
||||||
| MATCH { $$ = make1_str("match"); }
|
| MATCH { $$ = make1_str("match"); }
|
||||||
| MAXVALUE { $$ = make1_str("maxvalue"); }
|
| MAXVALUE { $$ = make1_str("maxvalue"); }
|
||||||
| MINVALUE { $$ = make1_str("minvalue"); }
|
| MINVALUE { $$ = make1_str("minvalue"); }
|
||||||
|
| NEXT { $$ = make1_str("next"); }
|
||||||
|
| OF { $$ = make1_str("of"); }
|
||||||
|
| ONLY { $$ = make1_str("only"); }
|
||||||
| OPERATOR { $$ = make1_str("operator"); }
|
| OPERATOR { $$ = make1_str("operator"); }
|
||||||
| OPTION { $$ = make1_str("option"); }
|
| OPTION { $$ = make1_str("option"); }
|
||||||
| PASSWORD { $$ = make1_str("password"); }
|
| PASSWORD { $$ = make1_str("password"); }
|
||||||
| PRIVILEGES { $$ = make1_str("privileges"); }
|
| PRIOR { $$ = make1_str("prior"); }
|
||||||
|
| PRIVILEGES { $$ = make1_str("privileges"); }
|
||||||
|
| READ { $$ = make1_str("read"); }
|
||||||
| RECIPE { $$ = make1_str("recipe"); }
|
| RECIPE { $$ = make1_str("recipe"); }
|
||||||
|
| RELATIVE { $$ = make1_str("relative"); }
|
||||||
| ROW { $$ = make1_str("row"); }
|
| ROW { $$ = make1_str("row"); }
|
||||||
|
| SCROLL { $$ = make1_str("scroll"); }
|
||||||
| SERIAL { $$ = make1_str("serial"); }
|
| SERIAL { $$ = make1_str("serial"); }
|
||||||
| START { $$ = make1_str("start"); }
|
| START { $$ = make1_str("start"); }
|
||||||
| STATEMENT { $$ = make1_str("statement"); }
|
| STATEMENT { $$ = make1_str("statement"); }
|
||||||
@ -4006,7 +4088,7 @@ variable: opt_pointer symbol opt_array_bounds opt_initializer
|
|||||||
switch(dimension)
|
switch(dimension)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
strcpy("[]", dim);
|
strcpy(dim, "[]");
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
*dim = '\0';
|
*dim = '\0';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user