typedef union {
	int32			ival;
	char			*str;
	struct {
	    char *name;
	    int  lineno;
	}			varname;
	struct {
	    int  nalloc;
	    int	 nused;
	    int	 *dtnums;
	}			dtlist;
	struct {
	    int  reverse;
	    PLpgSQL_expr *expr;
	}			forilow;
	struct {
	    char *label;
	    int  n_initvars;
	    int  *initvarnos;
	}			declhdr;
	PLpgSQL_type		*dtype;
	PLpgSQL_var		*var;
	PLpgSQL_row		*row;
	PLpgSQL_rec		*rec;
	PLpgSQL_recfield	*recfield;
	PLpgSQL_trigarg		*trigarg;
	PLpgSQL_expr		*expr;
	PLpgSQL_stmt		*stmt;
	PLpgSQL_stmts		*stmts;
	PLpgSQL_stmt_block	*program;
	PLpgSQL_nsitem		*nsitem;
} PLPGSQL_YYSTYPE;
#define	K_ALIAS	257
#define	K_ASSIGN	258
#define	K_BEGIN	259
#define	K_CONSTANT	260
#define	K_DEBUG	261
#define	K_DECLARE	262
#define	K_DEFAULT	263
#define	K_DOTDOT	264
#define	K_ELSE	265
#define	K_END	266
#define	K_EXCEPTION	267
#define	K_EXIT	268
#define	K_FOR	269
#define	K_FROM	270
#define	K_IF	271
#define	K_IN	272
#define	K_INTO	273
#define	K_LOOP	274
#define	K_NOT	275
#define	K_NOTICE	276
#define	K_NULL	277
#define	K_PERFORM	278
#define	K_RAISE	279
#define	K_RECORD	280
#define	K_RENAME	281
#define	K_RETURN	282
#define	K_REVERSE	283
#define	K_SELECT	284
#define	K_THEN	285
#define	K_TO	286
#define	K_TYPE	287
#define	K_WHEN	288
#define	K_WHILE	289
#define	T_FUNCTION	290
#define	T_TRIGGER	291
#define	T_CHAR	292
#define	T_BPCHAR	293
#define	T_VARCHAR	294
#define	T_LABEL	295
#define	T_STRING	296
#define	T_VARIABLE	297
#define	T_ROW	298
#define	T_ROWTYPE	299
#define	T_RECORD	300
#define	T_RECFIELD	301
#define	T_TGARGV	302
#define	T_DTYPE	303
#define	T_WORD	304
#define	T_NUMBER	305
#define	T_ERROR	306
#define	O_OPTION	307
#define	O_DUMP	308


extern PLPGSQL_YYSTYPE plpgsql_yylval;
