Commit 672bc164 authored by Marc G. Fournier's avatar Marc G. Fournier

parent e70798db
Operating Systems Known to Run PostgreSQL (at some point)
---------------------------------------------------------
The following list is a list of those operating systems upon which
PostgreSQL is known to work, including the date that it was last
tested:
| Operating System | Tested by | Date Tested |
+----------------------------+-----------------+----------------------+
| FreeBSD 3.0-CURRENT (aout) | scrappy@hub.org | September 14th, 1998 |
+----------------------------+-----------------+----------------------+
...@@ -230,7 +230,7 @@ ...@@ -230,7 +230,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/gram.c,v 2.35 1998/09/13 04:20:16 thomas Exp $ * $Header: /cvsroot/pgsql/src/backend/parser/Attic/gram.c,v 2.36 1998/09/15 02:25:05 scrappy Exp $
* *
* HISTORY * HISTORY
* AUTHOR DATE MAJOR EVENT * AUTHOR DATE MAJOR EVENT
...@@ -4284,7 +4284,7 @@ static const short yycheck[] = { 3, ...@@ -4284,7 +4284,7 @@ static const short yycheck[] = { 3,
-1, -1, -1, -1, -1, -1, 205 -1, -1, -1, -1, -1, -1, 205
}; };
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/lib/bison.simple" #line 3 "/usr/share/misc/bison.simple"
/* Skeleton output parser for bison, /* Skeleton output parser for bison,
Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
...@@ -4477,7 +4477,7 @@ __yy_memcpy (char *to, char *from, int count) ...@@ -4477,7 +4477,7 @@ __yy_memcpy (char *to, char *from, int count)
#endif #endif
#endif #endif
#line 196 "/usr/lib/bison.simple" #line 196 "/usr/share/misc/bison.simple"
/* The user can define YYPARSE_PARAM as the name of an argument to be passed /* The user can define YYPARSE_PARAM as the name of an argument to be passed
into yyparse. The argument should have type void *. into yyparse. The argument should have type void *.
...@@ -10041,7 +10041,7 @@ case 886: ...@@ -10041,7 +10041,7 @@ case 886:
break;} break;}
} }
/* the action file gets copied in in place of this dollarsign */ /* the action file gets copied in in place of this dollarsign */
#line 498 "/usr/lib/bison.simple" #line 498 "/usr/share/misc/bison.simple"
yyvsp -= yylen; yyvsp -= yylen;
yyssp -= yylen; yyssp -= yylen;
......
/* A lexical scanner generated by flex */ /* A lexical scanner generated by flex */
/* Scanner skeleton version: /* Scanner skeleton version:
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/scan.c,v 1.27 1998/09/01 04:30:41 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/parser/Attic/scan.c,v 1.28 1998/09/15 02:25:09 scrappy Exp $
*/ */
#define FLEX_SCANNER #define FLEX_SCANNER
...@@ -30,19 +30,19 @@ ...@@ -30,19 +30,19 @@
/* The "const" storage-class-modifier is valid. */ /* The "const" storage-class-modifier is valid. */
#define YY_USE_CONST #define YY_USE_CONST
#else /* ! __cplusplus */ #else /* ! __cplusplus */
#if __STDC__ #if __STDC__
#define YY_USE_PROTOS #define YY_USE_PROTOS
#define YY_USE_CONST #define YY_USE_CONST
#endif /* __STDC__ */ #endif /* __STDC__ */
#endif /* ! __cplusplus */ #endif /* ! __cplusplus */
#ifdef __TURBOC__ #ifdef __TURBOC__
#pragma warn -rch #pragma warn -rch
#pragma warn -use #pragma warn -use
#include <io.h> #include <io.h>
#include <stdlib.h> #include <stdlib.h>
#define YY_USE_CONST #define YY_USE_CONST
...@@ -98,19 +98,18 @@ ...@@ -98,19 +98,18 @@
typedef struct yy_buffer_state *YY_BUFFER_STATE; typedef struct yy_buffer_state *YY_BUFFER_STATE;
extern int yyleng; extern int yyleng;
extern FILE *yyin, extern FILE *yyin, *yyout;
*yyout;
#define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_CONTINUE_SCAN 0
#define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2 #define EOB_ACT_LAST_MATCH 2
/* The funky do-while in the following #define is used to turn the definition /* The funky do-while in the following #define is used to turn the definition
* int a single C statement (which needs a semi-colon terminator). This * int a single C statement (which needs a semi-colon terminator). This
* avoids problems with code like: * avoids problems with code like:
* *
* if ( condition_holds ) * if ( condition_holds )
* yyless( 5 ); * yyless( 5 );
* else * else
* do_something_else(); * do_something_else();
...@@ -143,65 +142,61 @@ typedef unsigned int yy_size_t; ...@@ -143,65 +142,61 @@ typedef unsigned int yy_size_t;
struct yy_buffer_state struct yy_buffer_state
{ {
FILE *yy_input_file; FILE *yy_input_file;
char *yy_ch_buf; /* input buffer */ char *yy_ch_buf; /* input buffer */
char *yy_buf_pos; /* current position in input buffer */ char *yy_buf_pos; /* current position in input buffer */
/* /* Size of input buffer in bytes, not including room for EOB
* Size of input buffer in bytes, not including room for EOB
* characters. * characters.
*/ */
yy_size_t yy_buf_size; yy_size_t yy_buf_size;
/* /* Number of characters read into yy_ch_buf, not including EOB
* Number of characters read into yy_ch_buf, not including EOB
* characters. * characters.
*/ */
int yy_n_chars; int yy_n_chars;
/* /* Whether we "own" the buffer - i.e., we know we created it,
* Whether we "own" the buffer - i.e., we know we created it, and can * and can realloc() it to grow it, and should free() it to
* realloc() it to grow it, and should free() it to delete it. * delete it.
*/ */
int yy_is_our_buffer; int yy_is_our_buffer;
/* /* Whether this is an "interactive" input source; if so, and
* Whether this is an "interactive" input source; if so, and if we're * if we're using stdio for input, then we want to use getc()
* using stdio for input, then we want to use getc() instead of * instead of fread(), to make sure we stop fetching input after
* fread(), to make sure we stop fetching input after each newline. * each newline.
*/ */
int yy_is_interactive; int yy_is_interactive;
/* /* Whether we're considered to be at the beginning of a line.
* Whether we're considered to be at the beginning of a line. If so, * If so, '^' rules will be active on the next match, otherwise
* '^' rules will be active on the next match, otherwise not. * not.
*/ */
int yy_at_bol; int yy_at_bol;
/* /* Whether to try to fill the input buffer when we reach the
* Whether to try to fill the input buffer when we reach the end of * end of it.
* it.
*/ */
int yy_fill_buffer; int yy_fill_buffer;
int yy_buffer_status; int yy_buffer_status;
#define YY_BUFFER_NEW 0 #define YY_BUFFER_NEW 0
#define YY_BUFFER_NORMAL 1 #define YY_BUFFER_NORMAL 1
/* When an EOF's been seen but there's still some text to process
/* * then we mark the buffer as YY_EOF_PENDING, to indicate that we
* When an EOF's been seen but there's still some text to process then * shouldn't try reading from the input source any more. We might
* we mark the buffer as YY_EOF_PENDING, to indicate that we shouldn't * still have a bunch of tokens to match, though, because of
* try reading from the input source any more. We might still have a * possible backing-up.
* bunch of tokens to match, though, because of possible backing-up.
* *
* When we actually see the EOF, we change the status to "new" (via * When we actually see the EOF, we change the status to "new"
* yyrestart()), so that the user can continue scanning by just * (via yyrestart()), so that the user can continue scanning by
* pointing yyin at a new input file. * just pointing yyin at a new input file.
*/ */
#define YY_BUFFER_EOF_PENDING 2 #define YY_BUFFER_EOF_PENDING 2
}; };
static YY_BUFFER_STATE yy_current_buffer = 0; static YY_BUFFER_STATE yy_current_buffer = 0;
...@@ -215,40 +210,38 @@ static YY_BUFFER_STATE yy_current_buffer = 0; ...@@ -215,40 +210,38 @@ static YY_BUFFER_STATE yy_current_buffer = 0;
/* yy_hold_char holds the character lost when yytext is formed. */ /* yy_hold_char holds the character lost when yytext is formed. */
static char yy_hold_char; static char yy_hold_char;
static int yy_n_chars; /* number of characters read into static int yy_n_chars; /* number of characters read into yy_ch_buf */
* yy_ch_buf */
int yyleng; int yyleng;
/* Points to current character in buffer. */ /* Points to current character in buffer. */
static char *yy_c_buf_p = (char *) 0; static char *yy_c_buf_p = (char *) 0;
static int yy_init = 1; /* whether we need to initialize */ static int yy_init = 1; /* whether we need to initialize */
static int yy_start = 0; /* start state number */ static int yy_start = 0; /* start state number */
/* Flag which is used to allow yywrap()'s to do buffer switches /* Flag which is used to allow yywrap()'s to do buffer switches
* instead of setting up a fresh yyin. A bit of a hack ... * instead of setting up a fresh yyin. A bit of a hack ...
*/ */
static int yy_did_buffer_switch_on_eof; static int yy_did_buffer_switch_on_eof;
void yyrestart YY_PROTO((FILE *input_file)); void yyrestart YY_PROTO(( FILE *input_file ));
void yy_switch_to_buffer YY_PROTO((YY_BUFFER_STATE new_buffer));
void yy_load_buffer_state YY_PROTO((void));
YY_BUFFER_STATE yy_create_buffer YY_PROTO((FILE *file, int size));
void yy_delete_buffer YY_PROTO((YY_BUFFER_STATE b));
void yy_init_buffer YY_PROTO((YY_BUFFER_STATE b, FILE *file));
void yy_flush_buffer YY_PROTO((YY_BUFFER_STATE b));
void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
void yy_load_buffer_state YY_PROTO(( void ));
YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer ) #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
YY_BUFFER_STATE yy_scan_buffer YY_PROTO((char *base, yy_size_t size)); YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
YY_BUFFER_STATE yy_scan_string YY_PROTO((yyconst char *yy_str)); YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
YY_BUFFER_STATE yy_scan_bytes YY_PROTO((yyconst char *bytes, int len)); YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
static void *yy_flex_alloc YY_PROTO((yy_size_t)); static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
static void *yy_flex_realloc YY_PROTO((void *, yy_size_t)); static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
static void yy_flex_free YY_PROTO((void *)); static void yy_flex_free YY_PROTO(( void * ));
#define yy_new_buffer yy_create_buffer #define yy_new_buffer yy_create_buffer
...@@ -271,16 +264,15 @@ static void yy_flex_free YY_PROTO((void *)); ...@@ -271,16 +264,15 @@ static void yy_flex_free YY_PROTO((void *));
#define YY_USES_REJECT #define YY_USES_REJECT
typedef unsigned char YY_CHAR; typedef unsigned char YY_CHAR;
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
typedef int yy_state_type; typedef int yy_state_type;
extern char *yytext; extern char *yytext;
#define yytext_ptr yytext #define yytext_ptr yytext
static yy_state_type yy_get_previous_state YY_PROTO((void)); static yy_state_type yy_get_previous_state YY_PROTO(( void ));
static yy_state_type yy_try_NUL_trans YY_PROTO((yy_state_type current_state)); static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
static int yy_get_next_buffer YY_PROTO((void)); static int yy_get_next_buffer YY_PROTO(( void ));
static void yy_fatal_error YY_PROTO((yyconst char msg[])); static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
/* Done after the current pattern has been matched and before the /* Done after the current pattern has been matched and before the
* corresponding action - sets up yytext. * corresponding action - sets up yytext.
...@@ -292,251 +284,250 @@ static void yy_fatal_error YY_PROTO((yyconst char msg[])); ...@@ -292,251 +284,250 @@ static void yy_fatal_error YY_PROTO((yyconst char msg[]));
*yy_cp = '\0'; \ *yy_cp = '\0'; \
yy_c_buf_p = yy_cp; yy_c_buf_p = yy_cp;
#define YY_NUM_RULES 41 #define YY_NUM_RULES 42
#define YY_END_OF_BUFFER 42 #define YY_END_OF_BUFFER 43
static yyconst short int yy_acclist[177] = static yyconst short int yy_acclist[184] =
{0, { 0,
10, 10, 6, 6, 24, 24, 9, 9, 25, 25, 10, 10, 6, 6, 24, 24, 9, 9, 25, 25,
18, 18, 42, 40, 41, 39, 40, 41, 39, 41, 18, 18, 43, 41, 42, 40, 41, 42, 40, 42,
31, 40, 41, 22, 40, 41, 29, 31, 40, 41, 32, 41, 42, 22, 41, 42, 29, 30, 32, 41,
15, 40, 41, 29, 40, 41, 29, 31, 40, 41, 42, 15, 41, 42, 29, 30, 41, 42, 29, 30,
29, 31, 40, 41, 29, 40, 41, 29, 31, 40, 32, 41, 42, 29, 30, 32, 41, 42, 29, 30,
41, 36, 40, 41, 16418, 29, 31, 40, 41, 38, 41, 42, 29, 30, 32, 41, 42, 37, 41, 42,
40, 41, 16417, 38, 40, 41, 16417, 38, 40, 41, 16419, 29, 30, 32, 41, 42, 39, 41, 42,16418,
16417, 10, 41, 8, 41, 3, 6, 41, 3, 6, 39, 41, 42,16418, 39, 41, 42,16418, 10, 42,
41, 3, 41, 6, 41, 24, 41, 23, 41, 9, 8, 42, 3, 6, 42, 3, 6, 42, 3, 42,
41, 14, 41, 41, 25, 41, 26, 41, 18, 41, 6, 42, 24, 42, 23, 42, 9, 42, 14, 42,
16, 41, 41, 31, 31, 31, 32, 31, 31, 36, 42, 25, 42, 26, 42, 18, 42, 16, 42, 42,
16418, 37, 16419, 4, 31, 31, 37, 16419, 27, 31, 32, 32, 32, 33, 32, 32, 37,16419, 38,16420,
38, 16417, 7, 13, 10, 6, 6, 5, 24, 9, 4, 32, 32, 38,16420, 27, 32, 39,16418, 7,
25, 18, 17, 20, 19, 20, 30, 28, 30, 28, 13, 10, 6, 6, 5, 24, 9, 25, 18, 17,
30, 32, 28, 1, 31, 31, 28, 30, 4, 31, 20, 19, 20, 31, 28, 31, 28, 31, 33, 28,
4, 31, 4, 31, 8226, 37, 16419, 37, 16419, 8225, 1, 32, 32, 28, 31, 4, 32, 4, 32, 4,
12, 5, 11, 21, 30, 8227, 37, 16419, 2, 4, 32, 8227, 38,16420, 38,16420, 8226, 12, 5, 11,
31, 30, 2, 2, 2, 2 21, 31, 8228, 38,16420, 2, 4, 32, 31, 2,
}; 2, 2, 2
} ;
static yyconst short int yy_accept[135] = static yyconst short int yy_accept[135] =
{0, { 0,
1, 1, 1, 2, 3, 4, 5, 6, 7, 8, 1, 1, 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 16, 19, 21, 24, 9, 10, 11, 12, 13, 14, 16, 19, 21, 24,
27, 31, 34, 37, 41, 45, 48, 52, 56, 60, 27, 32, 35, 39, 44, 49, 53, 58, 62, 67,
64, 68, 72, 74, 76, 79, 82, 84, 86, 88, 71, 75, 79, 81, 83, 86, 89, 91, 93, 95,
90, 92, 94, 95, 97, 99, 101, 103, 104, 105, 97, 99, 101, 102, 104, 106, 108, 110, 111, 112,
106, 106, 107, 108, 108, 109, 110, 110, 112, 114, 113, 113, 114, 115, 115, 116, 117, 117, 119, 121,
116, 117, 117, 117, 119, 119, 121, 121, 121, 123, 123, 124, 124, 124, 126, 126, 128, 128, 128, 130,
124, 125, 126, 126, 126, 127, 128, 128, 128, 129, 131, 132, 133, 133, 133, 134, 135, 135, 135, 136,
130, 131, 131, 131, 132, 133, 133, 133, 134, 135, 137, 138, 138, 138, 139, 140, 140, 140, 141, 142,
137, 138, 140, 143, 144, 144, 145, 146, 147, 149, 144, 145, 147, 150, 151, 151, 152, 153, 154, 156,
149, 149, 149, 149, 151, 153, 155, 156, 158, 158, 156, 156, 156, 156, 158, 160, 162, 163, 165, 165,
160, 161, 161, 161, 162, 163, 163, 163, 164, 164, 167, 168, 168, 168, 169, 170, 170, 170, 171, 171,
164, 165, 166, 167, 167, 169, 169, 172, 173, 174, 171, 172, 173, 174, 174, 176, 176, 179, 180, 181,
175, 176, 177, 177 182, 183, 184, 184
}; } ;
static yyconst int yy_ec[256] = static yyconst int yy_ec[256] =
{0, { 0,
1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 2, 4, 5, 4, 6, 4, 4, 7, 8, 1, 2, 4, 5, 4, 6, 4, 4, 7, 8,
8, 9, 10, 8, 11, 12, 13, 14, 14, 14, 8, 9, 10, 8, 11, 12, 13, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 15, 8, 16, 14, 14, 14, 14, 14, 14, 14, 15, 8, 16,
16, 16, 4, 4, 17, 18, 17, 17, 19, 17, 16, 16, 4, 4, 17, 18, 17, 17, 19, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 20, 17, 17, 17, 17, 17, 17, 17, 17, 17, 20, 17, 17,
8, 21, 8, 4, 17, 4, 17, 18, 17, 17, 8, 21, 8, 4, 17, 4, 17, 18, 17, 17,
19, 17, 17, 17, 17, 17, 17, 17, 17, 17, 19, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 20, 17, 17, 17, 17, 17, 17, 17, 17, 17, 20,
17, 17, 1, 16, 1, 4, 1, 17, 17, 17, 17, 17, 1, 16, 1, 4, 1, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17 17, 17, 17, 17, 17
}; } ;
static yyconst int yy_meta[22] = static yyconst int yy_meta[22] =
{0, { 0,
1, 2, 3, 4, 5, 4, 6, 1, 7, 8, 1, 2, 3, 4, 5, 4, 6, 1, 7, 8,
9, 10, 4, 11, 4, 4, 2, 2, 11, 2, 9, 10, 4, 11, 4, 4, 2, 2, 11, 2,
12 12
}; } ;
static yyconst short int yy_base[153] = static yyconst short int yy_base[153] =
{0, { 0,
0, 0, 368, 361, 18, 31, 350, 343, 339, 338, 0, 0, 368, 361, 18, 31, 350, 343, 339, 338,
46, 48, 18, 31, 344, 451, 451, 451, 332, 451, 46, 48, 18, 31, 344, 451, 451, 451, 332, 451,
58, 451, 51, 12, 44, 71, 23, 84, 327, 64, 58, 451, 51, 12, 44, 71, 23, 84, 327, 64,
102, 329, 0, 61, 0, 110, 67, 0, 0, 451, 102, 329, 0, 61, 0, 110, 67, 0, 0, 451,
0, 68, 451, 75, 451, 0, 81, 328, 247, 78, 0, 68, 451, 75, 451, 0, 81, 328, 247, 78,
91, 31, 242, 67, 234, 126, 228, 0, 146, 162, 91, 31, 242, 67, 234, 126, 228, 0, 146, 162,
85, 104, 0, 226, 140, 222, 150, 0, 211, 451, 85, 104, 0, 226, 140, 222, 150, 0, 211, 451,
451, 0, 98, 115, 0, 0, 99, 174, 153, 0, 451, 0, 98, 115, 0, 0, 99, 174, 153, 0,
0, 108, 156, 167, 0, 177, 179, 451, 451, 451, 0, 108, 156, 167, 0, 177, 179, 451, 451, 451,
451, 451, 153, 451, 183, 451, 196, 162, 0, 211, 451, 451, 153, 451, 183, 451, 196, 162, 0, 211,
0, 174, 155, 219, 111, 189, 451, 0, 77, 196, 0, 174, 155, 219, 111, 189, 451, 0, 77, 196,
451, 214, 217, 451, 188, 224, 234, 451, 236, 242, 451, 214, 217, 451, 188, 224, 234, 451, 236, 242,
451, 0, 451, 54, 51, 195, 244, 21, 248, 250, 451, 0, 451, 54, 51, 195, 244, 21, 248, 250,
252, 258, 451, 261, 273, 285, 297, 309, 321, 330, 252, 258, 451, 261, 273, 285, 297, 309, 321, 330,
338, 349, 361, 370, 379, 391, 403, 414, 426, 431, 338, 349, 361, 370, 379, 391, 403, 414, 426, 431,
435, 439 435, 439
}; } ;
static yyconst short int yy_def[153] = static yyconst short int yy_def[153] =
{0, { 0,
133, 1, 134, 134, 135, 135, 136, 136, 137, 137, 133, 1, 134, 134, 135, 135, 136, 136, 137, 137,
138, 138, 139, 139, 133, 133, 133, 133, 140, 133, 138, 138, 139, 139, 133, 133, 133, 133, 140, 133,
140, 133, 133, 21, 21, 133, 24, 133, 24, 141, 140, 133, 133, 21, 21, 133, 24, 133, 24, 141,
141, 31, 142, 133, 143, 143, 144, 36, 145, 133, 141, 31, 142, 133, 143, 143, 144, 36, 145, 133,
146, 133, 133, 133, 133, 147, 133, 148, 140, 140, 146, 133, 133, 133, 133, 147, 133, 148, 140, 140,
133, 50, 133, 133, 52, 133, 133, 28, 133, 149, 133, 50, 133, 133, 52, 133, 133, 28, 133, 149,
56, 133, 150, 59, 133, 140, 133, 151, 31, 133, 56, 133, 150, 59, 133, 140, 133, 151, 31, 133,
133, 142, 133, 133, 143, 36, 144, 144, 144, 145, 133, 142, 133, 133, 143, 36, 144, 144, 144, 145,
146, 133, 133, 133, 147, 133, 133, 133, 133, 133, 146, 133, 133, 133, 147, 133, 133, 133, 133, 133,
133, 133, 133, 133, 56, 133, 95, 97, 95, 133, 133, 133, 133, 133, 56, 133, 95, 97, 95, 133,
152, 133, 149, 149, 104, 104, 133, 64, 133, 64, 152, 133, 149, 149, 104, 104, 133, 64, 133, 64,
133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
133, 95, 133, 133, 110, 149, 104, 149, 149, 149, 133, 95, 133, 133, 110, 149, 104, 149, 149, 149,
133, 133, 0, 133, 133, 133, 133, 133, 133, 133, 133, 133, 0, 133, 133, 133, 133, 133, 133, 133,
133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
133, 133 133, 133
}; } ;
static yyconst short int yy_nxt[473] = static yyconst short int yy_nxt[473] =
{0, { 0,
16, 17, 18, 19, 20, 21, 22, 23, 24, 24, 16, 17, 18, 19, 20, 21, 22, 23, 24, 24,
25, 26, 27, 28, 29, 24, 30, 31, 30, 32, 25, 26, 27, 28, 29, 24, 30, 31, 30, 32,
16, 36, 55, 36, 47, 133, 37, 36, 36, 126, 16, 36, 55, 36, 47, 133, 37, 36, 36, 126,
38, 60, 36, 36, 36, 61, 36, 47, 48, 37, 38, 60, 36, 36, 36, 61, 36, 47, 48, 37,
36, 36, 92, 38, 93, 36, 36, 44, 44, 44, 36, 36, 92, 38, 93, 36, 36, 44, 44, 44,
44, 48, 51, 51, 56, 57, 45, 58, 45, 51, 44, 48, 51, 51, 56, 57, 45, 58, 45, 51,
51, 54, 73, 74, 125, 67, 67, 125, 52, 82, 51, 54, 73, 74, 125, 67, 67, 125, 52, 82,
83, 53, 51, 51, 68, 77, 84, 84, 94, 79, 83, 53, 51, 51, 68, 77, 84, 84, 94, 79,
94, 54, 86, 87, 59, 62, 62, 88, 50, 91, 94, 54, 86, 87, 59, 62, 62, 88, 50, 91,
110, 91, 51, 51, 63, 64, 95, 58, 95, 73, 110, 91, 51, 51, 63, 64, 95, 58, 95, 73,
74, 54, 65, 67, 67, 62, 62, 77, 70, 82, 74, 54, 65, 67, 67, 62, 62, 77, 70, 82,
83, 79, 68, 76, 63, 76, 112, 113, 77, 76, 83, 79, 68, 76, 63, 76, 112, 113, 77, 76,
76, 114, 76, 127, 76, 76, 95, 95, 96, 97, 76, 114, 76, 127, 76, 76, 95, 95, 96, 97,
95, 97, 95, 95, 97, 97, 98, 99, 97, 99, 95, 97, 95, 95, 97, 97, 98, 99, 97, 99,
97, 97, 95, 95, 95, 95, 95, 100, 100, 109, 97, 97, 95, 95, 95, 95, 95, 100, 100, 109,
109, 67, 67, 110, 115, 115, 101, 116, 117, 59, 109, 67, 67, 110, 115, 115, 101, 116, 117, 59,
68, 77, 118, 126, 102, 104, 53, 104, 84, 84, 68, 77, 118, 126, 102, 104, 53, 104, 84, 84,
105, 104, 106, 122, 104, 122, 104, 104, 86, 87, 105, 104, 106, 122, 104, 122, 104, 104, 86, 87,
119, 120, 77, 124, 124, 121, 95, 125, 95, 115, 119, 120, 77, 124, 124, 121, 95, 125, 95, 115,
115, 95, 95, 95, 95, 95, 95, 95, 95, 97, 115, 95, 95, 95, 95, 95, 95, 95, 95, 97,
128, 97, 128, 126, 97, 97, 98, 129, 97, 110, 128, 97, 128, 126, 97, 97, 98, 129, 97, 110,
97, 97, 100, 100, 133, 112, 113, 133, 112, 113, 97, 97, 100, 100, 133, 112, 113, 133, 112, 113,
114, 101, 104, 114, 104, 116, 117, 105, 104, 106, 114, 101, 104, 114, 104, 116, 117, 105, 104, 106,
118, 104, 50, 104, 104, 116, 117, 119, 120, 108, 118, 104, 50, 104, 104, 116, 117, 119, 120, 108,
118, 59, 121, 119, 120, 130, 131, 92, 121, 130, 118, 59, 121, 119, 120, 130, 131, 92, 121, 130,
131, 130, 131, 132, 131, 53, 126, 50, 126, 132, 131, 130, 131, 132, 131, 53, 126, 50, 126, 132,
131, 33, 33, 33, 33, 33, 33, 33, 33, 33, 131, 33, 33, 33, 33, 33, 33, 33, 33, 33,
33, 33, 33, 35, 35, 35, 35, 35, 35, 35, 33, 33, 33, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 39, 39, 39, 39, 39, 35, 35, 35, 35, 35, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 39, 39, 41, 41, 41, 39, 39, 39, 39, 39, 39, 39, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 43, 41, 41, 41, 41, 41, 41, 41, 41, 41, 43,
43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
43, 46, 46, 46, 46, 46, 46, 46, 46, 46, 43, 46, 46, 46, 46, 46, 46, 46, 46, 46,
46, 46, 46, 49, 90, 71, 49, 49, 49, 69, 46, 46, 46, 49, 90, 71, 49, 49, 49, 69,
69, 66, 50, 133, 42, 42, 69, 40, 69, 72, 69, 66, 50, 133, 42, 42, 69, 40, 69, 72,
72, 72, 72, 72, 40, 72, 72, 72, 72, 72, 72, 72, 72, 72, 40, 72, 72, 72, 72, 72,
72, 75, 75, 75, 75, 75, 75, 34, 75, 75, 72, 75, 75, 75, 75, 75, 75, 34, 75, 75,
75, 75, 75, 78, 34, 133, 78, 78, 78, 80, 75, 75, 75, 78, 34, 133, 78, 78, 78, 80,
80, 80, 80, 133, 80, 80, 80, 80, 80, 80, 80, 80, 80, 133, 80, 80, 80, 80, 80, 80,
80, 81, 81, 81, 81, 81, 133, 81, 81, 81, 80, 81, 81, 81, 81, 81, 133, 81, 81, 81,
81, 81, 81, 85, 85, 85, 85, 85, 133, 85, 81, 81, 81, 85, 85, 85, 85, 85, 133, 85,
85, 85, 85, 85, 89, 89, 89, 89, 89, 89, 85, 85, 85, 85, 89, 89, 89, 89, 89, 89,
89, 89, 89, 89, 89, 89, 103, 103, 133, 103, 89, 89, 89, 89, 89, 89, 103, 103, 133, 103,
103, 103, 103, 103, 103, 103, 103, 103, 107, 107, 103, 103, 103, 103, 103, 103, 103, 103, 107, 107,
107, 107, 111, 111, 111, 111, 123, 123, 123, 123, 107, 107, 111, 111, 111, 111, 123, 123, 123, 123,
15, 133, 133, 133, 133, 133, 133, 133, 133, 133, 15, 133, 133, 133, 133, 133, 133, 133, 133, 133,
133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
133, 133 133, 133
}; } ;
static yyconst short int yy_chk[473] = static yyconst short int yy_chk[473] =
{0, { 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 5, 24, 5, 13, 24, 5, 5, 5, 128, 1, 5, 24, 5, 13, 24, 5, 5, 5, 128,
5, 27, 5, 5, 6, 27, 6, 14, 13, 6, 5, 27, 5, 5, 6, 27, 6, 14, 13, 6,
6, 6, 52, 6, 52, 6, 6, 11, 11, 12, 6, 6, 52, 6, 52, 6, 6, 11, 11, 12,
12, 14, 23, 23, 25, 25, 11, 25, 12, 21, 12, 14, 23, 23, 25, 25, 11, 25, 12, 21,
21, 23, 34, 34, 125, 30, 30, 124, 21, 42, 21, 23, 34, 34, 125, 30, 30, 124, 21, 42,
42, 21, 26, 26, 30, 37, 44, 44, 54, 37, 42, 21, 26, 26, 30, 37, 44, 44, 54, 37,
54, 26, 47, 47, 26, 28, 28, 47, 50, 50, 54, 26, 47, 47, 26, 28, 28, 47, 50, 50,
109, 50, 51, 51, 28, 28, 61, 28, 61, 73, 109, 50, 51, 51, 28, 28, 61, 28, 61, 73,
73, 51, 28, 31, 31, 62, 62, 77, 31, 82, 73, 51, 28, 31, 31, 62, 62, 77, 31, 82,
82, 77, 31, 36, 62, 36, 74, 74, 36, 36, 82, 77, 31, 36, 62, 36, 74, 74, 36, 36,
36, 74, 36, 105, 36, 36, 56, 56, 56, 56, 36, 74, 36, 105, 36, 36, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 59, 59, 65, 56, 56, 56, 56, 56, 56, 56, 59, 59, 65,
65, 67, 67, 65, 79, 79, 59, 83, 83, 59, 65, 67, 67, 65, 79, 79, 59, 83, 83, 59,
67, 79, 83, 103, 59, 60, 93, 60, 84, 84, 67, 79, 83, 103, 59, 60, 93, 60, 84, 84,
60, 60, 60, 98, 60, 98, 60, 60, 86, 86, 60, 60, 60, 98, 60, 98, 60, 60, 86, 86,
87, 87, 78, 102, 102, 87, 95, 102, 95, 115, 87, 87, 78, 102, 102, 87, 95, 102, 95, 115,
115, 95, 95, 95, 95, 95, 95, 95, 95, 97, 115, 95, 95, 95, 95, 95, 95, 95, 95, 97,
106, 97, 106, 126, 97, 97, 97, 126, 97, 110, 106, 97, 106, 126, 97, 97, 97, 126, 97, 110,
97, 97, 100, 100, 110, 112, 112, 69, 113, 113, 97, 97, 100, 100, 110, 112, 112, 69, 113, 113,
112, 100, 104, 113, 104, 116, 116, 104, 104, 104, 112, 100, 104, 113, 104, 116, 116, 104, 104, 104,
116, 104, 66, 104, 104, 117, 117, 119, 119, 64, 116, 104, 66, 104, 104, 117, 117, 119, 119, 64,
117, 57, 119, 120, 120, 127, 127, 55, 120, 129, 117, 57, 119, 120, 120, 127, 127, 55, 120, 129,
129, 130, 130, 131, 131, 53, 129, 49, 130, 132, 129, 130, 130, 131, 131, 53, 129, 49, 130, 132,
132, 134, 134, 134, 134, 134, 134, 134, 134, 134, 132, 134, 134, 134, 134, 134, 134, 134, 134, 134,
134, 134, 134, 135, 135, 135, 135, 135, 135, 135, 134, 134, 134, 135, 135, 135, 135, 135, 135, 135,
135, 135, 135, 135, 135, 136, 136, 136, 136, 136, 135, 135, 135, 135, 135, 136, 136, 136, 136, 136,
136, 136, 136, 136, 136, 136, 136, 137, 137, 137, 136, 136, 136, 136, 136, 136, 136, 137, 137, 137,
137, 137, 137, 137, 137, 137, 137, 137, 137, 138, 137, 137, 137, 137, 137, 137, 137, 137, 137, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
138, 139, 139, 139, 139, 139, 139, 139, 139, 139, 138, 139, 139, 139, 139, 139, 139, 139, 139, 139,
139, 139, 139, 140, 48, 32, 140, 140, 140, 141, 139, 139, 139, 140, 48, 32, 140, 140, 140, 141,
141, 29, 19, 15, 10, 9, 141, 8, 141, 142, 141, 29, 19, 15, 10, 9, 141, 8, 141, 142,
142, 142, 142, 142, 7, 142, 142, 142, 142, 142, 142, 142, 142, 142, 7, 142, 142, 142, 142, 142,
142, 143, 143, 143, 143, 143, 143, 4, 143, 143, 142, 143, 143, 143, 143, 143, 143, 4, 143, 143,
143, 143, 143, 144, 3, 0, 144, 144, 144, 145, 143, 143, 143, 144, 3, 0, 144, 144, 144, 145,
145, 145, 145, 0, 145, 145, 145, 145, 145, 145, 145, 145, 145, 0, 145, 145, 145, 145, 145, 145,
145, 146, 146, 146, 146, 146, 0, 146, 146, 146, 145, 146, 146, 146, 146, 146, 0, 146, 146, 146,
146, 146, 146, 147, 147, 147, 147, 147, 0, 147, 146, 146, 146, 147, 147, 147, 147, 147, 0, 147,
147, 147, 147, 147, 148, 148, 148, 148, 148, 148, 147, 147, 147, 147, 148, 148, 148, 148, 148, 148,
148, 148, 148, 148, 148, 148, 149, 149, 0, 149, 148, 148, 148, 148, 148, 148, 149, 149, 0, 149,
149, 149, 149, 149, 149, 149, 149, 149, 150, 150, 149, 149, 149, 149, 149, 149, 149, 149, 150, 150,
150, 150, 151, 151, 151, 151, 152, 152, 152, 152, 150, 150, 151, 151, 151, 151, 152, 152, 152, 152,
133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
133, 133 133, 133
}; } ;
static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
*yy_state_ptr;
static char *yy_full_match; static char *yy_full_match;
static int yy_lp; static int yy_lp;
static int yy_looking_for_trail_begin = 0; static int yy_looking_for_trail_begin = 0;
static int yy_full_lp; static int yy_full_lp;
static int *yy_full_state; static int *yy_full_state;
#define YY_TRAILING_MASK 0x2000 #define YY_TRAILING_MASK 0x2000
#define YY_TRAILING_HEAD_MASK 0x4000 #define YY_TRAILING_HEAD_MASK 0x4000
#define REJECT \ #define REJECT \
...@@ -552,8 +543,7 @@ goto find_rule; \ ...@@ -552,8 +543,7 @@ goto find_rule; \
#define yymore() yymore_used_but_not_detected #define yymore() yymore_used_but_not_detected
#define YY_MORE_ADJ 0 #define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET #define YY_RESTORE_YY_MORE_OFFSET
char *yytext; char *yytext;
#line 1 "scan.l" #line 1 "scan.l"
#define INITIAL 0 #define INITIAL 0
#line 2 "scan.l" #line 2 "scan.l"
...@@ -566,7 +556,7 @@ char *yytext; ...@@ -566,7 +556,7 @@ char *yytext;
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/scan.c,v 1.27 1998/09/01 04:30:41 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/parser/Attic/scan.c,v 1.28 1998/09/15 02:25:09 scrappy Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -576,7 +566,7 @@ char *yytext; ...@@ -576,7 +566,7 @@ char *yytext;
#include <math.h> #include <math.h>
#else #else
#include <stdlib.h> #include <stdlib.h>
#endif /* __linux__ */ #endif /* __linux__ */
#include <string.h> #include <string.h>
#include <errno.h> #include <errno.h>
...@@ -596,29 +586,26 @@ static char *parseCh; ...@@ -596,29 +586,26 @@ static char *parseCh;
/* some versions of lex define this as a macro */ /* some versions of lex define this as a macro */
#if defined(yywrap) #if defined(yywrap)
#undef yywrap #undef yywrap
#endif /* yywrap */ #endif /* yywrap */
#if defined(FLEX_SCANNER) #if defined(FLEX_SCANNER)
/* MAX_PARSE_BUFFER is defined in miscadmin.h */ /* MAX_PARSE_BUFFER is defined in miscadmin.h */
#define YYLMAX MAX_PARSE_BUFFER #define YYLMAX MAX_PARSE_BUFFER
#define YY_NO_UNPUT #define YY_NO_UNPUT
extern int myinput(char *buf, int max); extern int myinput(char* buf, int max);
#undef YY_INPUT #undef YY_INPUT
#define YY_INPUT(buf,result,max) {result = myinput(buf,max);} #define YY_INPUT(buf,result,max) {result = myinput(buf,max);}
#else #else
#undef input #undef input
int input(); int input();
#undef unput #undef unput
void unput(char); void unput(char);
#endif /* FLEX_SCANNER */
#endif /* FLEX_SCANNER */
extern YYSTYPE yylval; extern YYSTYPE yylval;
int llen; int llen;
char literal[MAX_PARSE_BUFFER]; char literal[MAX_PARSE_BUFFER];
/* OK, here is a short description of lex/flex rules behavior. /* OK, here is a short description of lex/flex rules behavior.
* The longest pattern which matches an input string is always chosen. * The longest pattern which matches an input string is always chosen.
...@@ -628,18 +615,18 @@ char literal[MAX_PARSE_BUFFER]; ...@@ -628,18 +615,18 @@ char literal[MAX_PARSE_BUFFER];
* *
* Exclusive states change parsing rules while the state is active. * Exclusive states change parsing rules while the state is active.
* There are exclusive states for quoted strings, extended comments, * There are exclusive states for quoted strings, extended comments,
* and to eliminate parsing troubles for numeric strings. * and to eliminate parsing troubles for numeric strings.
* Exclusive states: * Exclusive states:
* <xb> binary numeric string - thomas 1997-11-16 * <xb> binary numeric string - thomas 1997-11-16
* <xc> extended C-style comments - tgl 1997-07-12 * <xc> extended C-style comments - tgl 1997-07-12
* <xd> delimited identifiers (double-quoted identifiers) - tgl 1997-10-27 * <xd> delimited identifiers (double-quoted identifiers) - tgl 1997-10-27
* <xh> hexadecimal numeric string - thomas 1997-11-16 * <xh> hexadecimal numeric string - thomas 1997-11-16
* <xm> numeric strings with embedded minus sign - tgl 1997-09-05 * <xm> numeric strings with embedded minus sign - tgl 1997-09-05
* <xq> quoted strings - tgl 1997-07-30 * <xq> quoted strings - tgl 1997-07-30
* *
* The "extended comment" syntax closely resembles allowable operator syntax. * The "extended comment" syntax closely resembles allowable operator syntax.
* So, when in condition <xc>, only strings which would terminate the * So, when in condition <xc>, only strings which would terminate the
* "extended comment" trigger any action other than "ignore". * "extended comment" trigger any action other than "ignore".
* Be sure to match _any_ candidate comment, including those with appended * Be sure to match _any_ candidate comment, including those with appended
* operator-like symbols. - thomas 1997-07-14 * operator-like symbols. - thomas 1997-07-14
*/ */
...@@ -677,14 +664,14 @@ real [\-]?{digit}+\.{digit}+([Ee][-+]?{digit}+)? ...@@ -677,14 +664,14 @@ real [\-]?{digit}+\.{digit}+([Ee][-+]?{digit}+)?
* So, put comments here. tgl - 1997-09-08 * So, put comments here. tgl - 1997-09-08
* *
* Quoted strings must allow some special characters such as single-quote * Quoted strings must allow some special characters such as single-quote
* and newline. * and newline.
* Embedded single-quotes are implemented both in the SQL/92-standard * Embedded single-quotes are implemented both in the SQL/92-standard
* style of two adjacent single quotes "''" and in the Postgres/Java style * style of two adjacent single quotes "''" and in the Postgres/Java style
* of escaped-quote "\'". * of escaped-quote "\'".
* Other embedded escaped characters are matched explicitly and the leading * Other embedded escaped characters are matched explicitly and the leading
* backslash is dropped from the string. - thomas 1997-09-24 * backslash is dropped from the string. - thomas 1997-09-24
*/ */
#line 674 "lex.yy.c" #line 675 "lex.yy.c"
/* Macros after this point can all be overridden by user definitions in /* Macros after this point can all be overridden by user definitions in
* section 1. * section 1.
...@@ -692,55 +679,44 @@ real [\-]?{digit}+\.{digit}+([Ee][-+]?{digit}+)? ...@@ -692,55 +679,44 @@ real [\-]?{digit}+\.{digit}+([Ee][-+]?{digit}+)?
#ifndef YY_SKIP_YYWRAP #ifndef YY_SKIP_YYWRAP
#ifdef __cplusplus #ifdef __cplusplus
extern "C" int yywrap YY_PROTO((void)); extern "C" int yywrap YY_PROTO(( void ));
#else #else
extern int yywrap YY_PROTO((void)); extern int yywrap YY_PROTO(( void ));
#endif #endif
#endif #endif
#ifndef YY_NO_UNPUT #ifndef YY_NO_UNPUT
static void yyunput YY_PROTO((int c, char *buf_ptr)); static void yyunput YY_PROTO(( int c, char *buf_ptr ));
#endif #endif
#ifndef yytext_ptr #ifndef yytext_ptr
static void yy_flex_strncpy YY_PROTO((char *, yyconst char *, int)); static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
#endif #endif
#ifdef YY_NEED_STRLEN #ifdef YY_NEED_STRLEN
static int yy_flex_strlen YY_PROTO((yyconst char *)); static int yy_flex_strlen YY_PROTO(( yyconst char * ));
#endif #endif
#ifndef YY_NO_INPUT #ifndef YY_NO_INPUT
#ifdef __cplusplus #ifdef __cplusplus
static int yyinput YY_PROTO((void)); static int yyinput YY_PROTO(( void ));
#else #else
static int input YY_PROTO((void)); static int input YY_PROTO(( void ));
#endif #endif
#endif #endif
#if YY_STACK_USED #if YY_STACK_USED
static int yy_start_stack_ptr = 0; static int yy_start_stack_ptr = 0;
static int yy_start_stack_depth = 0; static int yy_start_stack_depth = 0;
static int *yy_start_stack = 0; static int *yy_start_stack = 0;
#ifndef YY_NO_PUSH_STATE #ifndef YY_NO_PUSH_STATE
static void yy_push_state YY_PROTO((int new_state)); static void yy_push_state YY_PROTO(( int new_state ));
#endif #endif
#ifndef YY_NO_POP_STATE #ifndef YY_NO_POP_STATE
static void yy_pop_state YY_PROTO((void)); static void yy_pop_state YY_PROTO(( void ));
#endif #endif
#ifndef YY_NO_TOP_STATE #ifndef YY_NO_TOP_STATE
static int yy_top_state YY_PROTO((void)); static int yy_top_state YY_PROTO(( void ));
#endif #endif
#else #else
...@@ -787,7 +763,7 @@ YY_MALLOC_DECL ...@@ -787,7 +763,7 @@ YY_MALLOC_DECL
{ \ { \
int c = '*', n; \ int c = '*', n; \
for ( n = 0; n < max_size && \ for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \ buf[n] = (char) c; \
if ( c == '\n' ) \ if ( c == '\n' ) \
buf[n++] = (char) c; \ buf[n++] = (char) c; \
...@@ -841,50 +817,48 @@ YY_MALLOC_DECL ...@@ -841,50 +817,48 @@ YY_MALLOC_DECL
YY_USER_ACTION YY_USER_ACTION
YY_DECL YY_DECL
{ {
register yy_state_type yy_current_state; register yy_state_type yy_current_state;
register char *yy_cp, register char *yy_cp, *yy_bp;
*yy_bp;
register int yy_act; register int yy_act;
#line 179 "scan.l" #line 179 "scan.l"
#line 827 "lex.yy.c" #line 828 "lex.yy.c"
if (yy_init) if ( yy_init )
{ {
yy_init = 0; yy_init = 0;
#ifdef YY_USER_INIT #ifdef YY_USER_INIT
YY_USER_INIT; YY_USER_INIT;
#endif #endif
if (!yy_start) if ( ! yy_start )
yy_start = 1; /* first start state */ yy_start = 1; /* first start state */
if (!yyin) if ( ! yyin )
yyin = stdin; yyin = stdin;
if (!yyout) if ( ! yyout )
yyout = stdout; yyout = stdout;
if (!yy_current_buffer) if ( ! yy_current_buffer )
yy_current_buffer = yy_current_buffer =
yy_create_buffer(yyin, YY_BUF_SIZE); yy_create_buffer( yyin, YY_BUF_SIZE );
yy_load_buffer_state(); yy_load_buffer_state();
} }
while (1) /* loops until end-of-file is reached */ while ( 1 ) /* loops until end-of-file is reached */
{ {
yy_cp = yy_c_buf_p; yy_cp = yy_c_buf_p;
/* Support of yytext. */ /* Support of yytext. */
*yy_cp = yy_hold_char; *yy_cp = yy_hold_char;
/* /* yy_bp points to the position in yy_ch_buf of the start of
* yy_bp points to the position in yy_ch_buf of the start of the * the current run.
* current run.
*/ */
yy_bp = yy_cp; yy_bp = yy_cp;
...@@ -893,456 +867,453 @@ YY_DECL ...@@ -893,456 +867,453 @@ YY_DECL
*yy_state_ptr++ = yy_current_state; *yy_state_ptr++ = yy_current_state;
yy_match: yy_match:
do do
{
register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state)
{ {
register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state]; yy_current_state = (int) yy_def[yy_current_state];
if (yy_current_state >= 134) if ( yy_current_state >= 134 )
yy_c = yy_meta[(unsigned int) yy_c]; yy_c = yy_meta[(unsigned int) yy_c];
} }
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
*yy_state_ptr++ = yy_current_state; *yy_state_ptr++ = yy_current_state;
++yy_cp; ++yy_cp;
} }
while (yy_base[yy_current_state] != 451); while ( yy_base[yy_current_state] != 451 );
yy_find_action: yy_find_action:
yy_current_state = *--yy_state_ptr; yy_current_state = *--yy_state_ptr;
yy_lp = yy_accept[yy_current_state]; yy_lp = yy_accept[yy_current_state];
find_rule: /* we branch to this label when backing up */ find_rule: /* we branch to this label when backing up */
for (;;) /* until we find what rule we matched */ for ( ; ; ) /* until we find what rule we matched */
{
if (yy_lp && yy_lp < yy_accept[yy_current_state + 1])
{ {
yy_act = yy_acclist[yy_lp]; if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
if (yy_act & YY_TRAILING_HEAD_MASK ||
yy_looking_for_trail_begin)
{ {
if (yy_act == yy_looking_for_trail_begin) yy_act = yy_acclist[yy_lp];
if ( yy_act & YY_TRAILING_HEAD_MASK ||
yy_looking_for_trail_begin )
{ {
if ( yy_act == yy_looking_for_trail_begin )
{
yy_looking_for_trail_begin = 0; yy_looking_for_trail_begin = 0;
yy_act &= ~YY_TRAILING_HEAD_MASK; yy_act &= ~YY_TRAILING_HEAD_MASK;
break; break;
}
} }
} else if ( yy_act & YY_TRAILING_MASK )
else if (yy_act & YY_TRAILING_MASK) {
{
yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK; yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK;
yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK; yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK;
} }
else else
{ {
yy_full_match = yy_cp; yy_full_match = yy_cp;
yy_full_state = yy_state_ptr; yy_full_state = yy_state_ptr;
yy_full_lp = yy_lp; yy_full_lp = yy_lp;
break; break;
} }
++yy_lp; ++yy_lp;
goto find_rule; goto find_rule;
} }
--yy_cp; --yy_cp;
yy_current_state = *--yy_state_ptr; yy_current_state = *--yy_state_ptr;
yy_lp = yy_accept[yy_current_state]; yy_lp = yy_accept[yy_current_state];
} }
YY_DO_BEFORE_ACTION; YY_DO_BEFORE_ACTION;
do_action: /* This label is used only to access EOF do_action: /* This label is used only to access EOF actions. */
* actions. */
switch (yy_act) switch ( yy_act )
{ /* beginning of action switch */ { /* beginning of action switch */
case 1: case 1:
YY_RULE_SETUP YY_RULE_SETUP
#line 180 "scan.l" #line 180 "scan.l"
{ /* ignore */ { /* ignore */ }
} YY_BREAK
YY_BREAK case 2:
case 2: YY_RULE_SETUP
YY_RULE_SETUP
#line 182 "scan.l" #line 182 "scan.l"
{ /* ignore */ { /* ignore */ }
} YY_BREAK
YY_BREAK case 3:
case 3:
#line 185 "scan.l" #line 185 "scan.l"
case 4: case 4:
YY_RULE_SETUP YY_RULE_SETUP
#line 185 "scan.l" #line 185 "scan.l"
BEGIN(xc); { BEGIN(xc); }
YY_BREAK YY_BREAK
case 5: case 5:
YY_RULE_SETUP YY_RULE_SETUP
#line 187 "scan.l" #line 187 "scan.l"
BEGIN(INITIAL); { BEGIN(INITIAL); }
YY_BREAK YY_BREAK
case 6: case 6:
YY_RULE_SETUP YY_RULE_SETUP
#line 189 "scan.l" #line 189 "scan.l"
{ /* ignore */ { /* ignore */ }
} YY_BREAK
YY_BREAK case 7:
case 7: YY_RULE_SETUP
YY_RULE_SETUP
#line 191 "scan.l" #line 191 "scan.l"
{ {
BEGIN(xb); BEGIN(xb);
llen = 0; llen = 0;
*literal = '\0'; *literal = '\0';
} }
YY_BREAK YY_BREAK
case 8: case 8:
YY_RULE_SETUP YY_RULE_SETUP
#line 196 "scan.l" #line 196 "scan.l"
{ {
char *endptr; char* endptr;
BEGIN(INITIAL); BEGIN(INITIAL);
errno = 0; errno = 0;
yylval.ival = strtol((char *) literal, &endptr, 2); yylval.ival = strtol((char *)literal,&endptr,2);
if (*endptr != '\0' || errno == ERANGE) if (*endptr != '\0' || errno == ERANGE)
elog(ERROR, "Bad binary integer input '%s'", literal); elog(ERROR,"Bad binary integer input '%s'",literal);
return ICONST; return ICONST;
} }
YY_BREAK YY_BREAK
case 9: case 9:
#line 207 "scan.l" #line 207 "scan.l"
case 10: case 10:
YY_RULE_SETUP YY_RULE_SETUP
#line 207 "scan.l" #line 207 "scan.l"
{ {
if ((llen + yyleng) > (MAX_PARSE_BUFFER - 1)) if ((llen+yyleng) > (MAX_PARSE_BUFFER - 1))
elog(ERROR, "quoted string parse buffer of %d chars exceeded", MAX_PARSE_BUFFER); elog(ERROR,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
memcpy(literal + llen, yytext, yyleng + 1); memcpy(literal+llen, yytext, yyleng+1);
llen += yyleng; llen += yyleng;
} }
YY_BREAK YY_BREAK
case 11: case 11:
#line 214 "scan.l" #line 214 "scan.l"
case 12: case 12:
YY_RULE_SETUP YY_RULE_SETUP
#line 214 "scan.l" #line 214 "scan.l"
{ {
} }
YY_BREAK YY_BREAK
case 13: case 13:
YY_RULE_SETUP YY_RULE_SETUP
#line 217 "scan.l" #line 217 "scan.l"
{ {
BEGIN(xh); BEGIN(xh);
llen = 0; llen = 0;
*literal = '\0'; *literal = '\0';
} }
YY_BREAK YY_BREAK
case 14: case 14:
YY_RULE_SETUP YY_RULE_SETUP
#line 222 "scan.l" #line 222 "scan.l"
{ {
char *endptr; char* endptr;
BEGIN(INITIAL); BEGIN(INITIAL);
errno = 0; errno = 0;
yylval.ival = strtol((char *) literal, &endptr, 16); yylval.ival = strtol((char *)literal,&endptr,16);
if (*endptr != '\0' || errno == ERANGE) if (*endptr != '\0' || errno == ERANGE)
elog(ERROR, "Bad hexadecimal integer input '%s'", literal); elog(ERROR,"Bad hexadecimal integer input '%s'",literal);
return ICONST; return ICONST;
} }
YY_BREAK YY_BREAK
case 15: case 15:
YY_RULE_SETUP YY_RULE_SETUP
#line 233 "scan.l" #line 233 "scan.l"
{ {
BEGIN(xq); BEGIN(xq);
llen = 0; llen = 0;
*literal = '\0'; *literal = '\0';
} }
YY_BREAK YY_BREAK
case 16: case 16:
YY_RULE_SETUP YY_RULE_SETUP
#line 238 "scan.l" #line 238 "scan.l"
{ {
BEGIN(INITIAL); BEGIN(INITIAL);
yylval.str = pstrdup(scanstr(literal)); yylval.str = pstrdup(scanstr(literal));
return SCONST; return SCONST;
} }
YY_BREAK YY_BREAK
case 17: case 17:
#line 244 "scan.l" #line 244 "scan.l"
case 18: case 18:
YY_RULE_SETUP YY_RULE_SETUP
#line 244 "scan.l" #line 244 "scan.l"
{ {
if ((llen + yyleng) > (MAX_PARSE_BUFFER - 1)) if ((llen+yyleng) > (MAX_PARSE_BUFFER - 1))
elog(ERROR, "quoted string parse buffer of %d chars exceeded", MAX_PARSE_BUFFER); elog(ERROR,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
memcpy(literal + llen, yytext, yyleng + 1); memcpy(literal+llen, yytext, yyleng+1);
llen += yyleng; llen += yyleng;
} }
YY_BREAK YY_BREAK
case 19: case 19:
YY_RULE_SETUP YY_RULE_SETUP
#line 250 "scan.l" #line 250 "scan.l"
{ {
if ((llen + yyleng - 1) > (MAX_PARSE_BUFFER - 1)) if ((llen+yyleng-1) > (MAX_PARSE_BUFFER - 1))
elog(ERROR, "quoted string parse buffer of %d chars exceeded", MAX_PARSE_BUFFER); elog(ERROR,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
memcpy(literal + llen, yytext, yyleng + 1); memcpy(literal+llen, yytext, yyleng+1);
*(literal + llen) = '\''; *(literal+llen) = '\'';
llen += yyleng; llen += yyleng;
} }
YY_BREAK YY_BREAK
case 20: case 20:
YY_RULE_SETUP YY_RULE_SETUP
#line 258 "scan.l" #line 258 "scan.l"
{ {
if ((llen + yyleng - 1) > (MAX_PARSE_BUFFER - 1)) if ((llen+yyleng-1) > (MAX_PARSE_BUFFER - 1))
elog(ERROR, "quoted string parse buffer of %d chars exceeded", MAX_PARSE_BUFFER); elog(ERROR,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
memcpy(literal + llen, yytext, yyleng + 1); memcpy(literal+llen, yytext, yyleng+1);
llen += yyleng; llen += yyleng;
} }
YY_BREAK YY_BREAK
case 21: case 21:
YY_RULE_SETUP YY_RULE_SETUP
#line 264 "scan.l" #line 264 "scan.l"
{ {
} }
YY_BREAK YY_BREAK
case 22: case 22:
YY_RULE_SETUP YY_RULE_SETUP
#line 268 "scan.l" #line 268 "scan.l"
{ {
BEGIN(xd); BEGIN(xd);
llen = 0; llen = 0;
*literal = '\0'; *literal = '\0';
} }
YY_BREAK YY_BREAK
case 23: case 23:
YY_RULE_SETUP YY_RULE_SETUP
#line 273 "scan.l" #line 273 "scan.l"
{ {
BEGIN(INITIAL); BEGIN(INITIAL);
yylval.str = pstrdup(literal); yylval.str = pstrdup(literal);
return IDENT; return IDENT;
} }
YY_BREAK YY_BREAK
case 24: case 24:
YY_RULE_SETUP YY_RULE_SETUP
#line 278 "scan.l" #line 278 "scan.l"
{ {
if ((llen + yyleng) > (MAX_PARSE_BUFFER - 1)) if ((llen+yyleng) > (MAX_PARSE_BUFFER - 1))
elog(ERROR, "quoted string parse buffer of %d chars exceeded", MAX_PARSE_BUFFER); elog(ERROR,"quoted string parse buffer of %d chars exceeded",MAX_PARSE_BUFFER);
memcpy(literal + llen, yytext, yyleng + 1); memcpy(literal+llen, yytext, yyleng+1);
llen += yyleng; llen += yyleng;
} }
YY_BREAK YY_BREAK
case 25: case 25:
YY_RULE_SETUP YY_RULE_SETUP
#line 286 "scan.l" #line 286 "scan.l"
{ /* ignore */ { /* ignore */ }
} YY_BREAK
YY_BREAK case 26:
case 26: YY_RULE_SETUP
YY_RULE_SETUP
#line 287 "scan.l" #line 287 "scan.l"
{ {
BEGIN(INITIAL); BEGIN(INITIAL);
return yytext[0]; return yytext[0];
} }
YY_BREAK YY_BREAK
case 27: case 27:
YY_RULE_SETUP YY_RULE_SETUP
#line 293 "scan.l" #line 293 "scan.l"
return TYPECAST; { return TYPECAST; }
YY_BREAK YY_BREAK
case 28: case 28:
*yy_cp = yy_hold_char; /* undo effects of setting up *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
* yytext */ yy_c_buf_p = yy_cp = yy_bp + 1;
yy_c_buf_p = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP
YY_RULE_SETUP
#line 295 "scan.l" #line 295 "scan.l"
{ {
BEGIN(xm); BEGIN(xm);
return yytext[0]; return yytext[0];
} }
YY_BREAK YY_BREAK
case 29: case 29:
YY_RULE_SETUP YY_RULE_SETUP
#line 299 "scan.l" #line 299 "scan.l"
return yytext[0]; { return yytext[0]; }
return yytext[0]; YY_BREAK
YY_BREAK case 30:
case 30: YY_RULE_SETUP
*yy_cp = yy_hold_char; /* undo effects of setting up
* yytext */
yy_c_buf_p = yy_cp -= 2;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
#line 300 "scan.l" #line 300 "scan.l"
{ { return yytext[0]; }
yylval.str = pstrdup((char *) yytext); YY_BREAK
case 31:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp -= 2;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
#line 301 "scan.l"
{
yylval.str = pstrdup((char*)yytext);
return Op; return Op;
} }
YY_BREAK YY_BREAK
case 31: case 32:
YY_RULE_SETUP YY_RULE_SETUP
#line 304 "scan.l" #line 305 "scan.l"
{ {
if (strcmp((char *) yytext, "!=") == 0) if (strcmp((char*)yytext,"!=") == 0)
yylval.str = pstrdup("<>"); /* compatability */ yylval.str = pstrdup("<>"); /* compatability */
else else
yylval.str = pstrdup((char *) yytext); yylval.str = pstrdup((char*)yytext);
return Op; return Op;
} }
YY_BREAK YY_BREAK
case 32: case 33:
YY_RULE_SETUP YY_RULE_SETUP
#line 311 "scan.l" #line 312 "scan.l"
{ {
yylval.ival = atoi((char *) &yytext[1]); yylval.ival = atoi((char*)&yytext[1]);
return PARAM; return PARAM;
} }
YY_BREAK YY_BREAK
case 33: case 34:
YY_RULE_SETUP YY_RULE_SETUP
#line 317 "scan.l" #line 318 "scan.l"
{ {
int i; int i;
ScanKeyword *keyword; ScanKeyword *keyword;
BEGIN(xm); BEGIN(xm);
for (i = 0; yytext[i]; i++) for(i = 0; yytext[i]; i++)
if (isascii((unsigned char) yytext[i]) && if (isascii((unsigned char)yytext[i]) &&
isupper(yytext[i])) isupper(yytext[i]))
yytext[i] = tolower(yytext[i]); yytext[i] = tolower(yytext[i]);
if (i >= NAMEDATALEN) if (i >= NAMEDATALEN)
yytext[NAMEDATALEN - 1] = '\0'; yytext[NAMEDATALEN-1] = '\0';
keyword = ScanKeywordLookup((char *) yytext); keyword = ScanKeywordLookup((char*)yytext);
if (keyword != NULL) if (keyword != NULL) {
return keyword->value; return keyword->value;
}
else else
{ {
yylval.str = pstrdup((char *) yytext); yylval.str = pstrdup((char*)yytext);
return IDENT; return IDENT;
} }
} }
YY_BREAK YY_BREAK
case 34: case 35:
YY_RULE_SETUP YY_RULE_SETUP
#line 339 "scan.l" #line 340 "scan.l"
{ {
char *endptr; char* endptr;
BEGIN(xm); BEGIN(xm);
errno = 0; errno = 0;
yylval.ival = strtol((char *) yytext, &endptr, 10); yylval.ival = strtol((char *)yytext,&endptr,10);
if (*endptr != '\0' || errno == ERANGE) if (*endptr != '\0' || errno == ERANGE)
{ {
errno = 0; errno = 0;
yylval.dval = strtod(((char *) yytext), &endptr); yylval.dval = strtod(((char *)yytext),&endptr);
if (*endptr != '\0' || errno == ERANGE) if (*endptr != '\0' || errno == ERANGE)
elog(ERROR, "Bad integer input '%s'", yytext); elog(ERROR,"Bad integer input '%s'",yytext);
CheckFloat8Val(yylval.dval); CheckFloat8Val(yylval.dval);
elog(NOTICE, "Integer input '%s' is out of range; promoted to float", yytext); elog(NOTICE,"Integer input '%s' is out of range; promoted to float", yytext);
return FCONST; return FCONST;
} }
return ICONST; return ICONST;
} }
YY_BREAK YY_BREAK
case 35: case 36:
YY_RULE_SETUP YY_RULE_SETUP
#line 357 "scan.l" #line 358 "scan.l"
{ {
char *endptr; char* endptr;
BEGIN(xm); BEGIN(xm);
errno = 0; errno = 0;
yylval.dval = strtod(((char *) yytext), &endptr); yylval.dval = strtod(((char *)yytext),&endptr);
if (*endptr != '\0' || errno == ERANGE) if (*endptr != '\0' || errno == ERANGE)
elog(ERROR, "Bad float8 input '%s'", yytext); elog(ERROR,"Bad float8 input '%s'",yytext);
CheckFloat8Val(yylval.dval); CheckFloat8Val(yylval.dval);
return FCONST; return FCONST;
} }
YY_BREAK YY_BREAK
case 36: case 37:
YY_RULE_SETUP YY_RULE_SETUP
#line 368 "scan.l" #line 369 "scan.l"
{ {
char *endptr; char* endptr;
errno = 0; errno = 0;
yylval.ival = strtol((char *) yytext, &endptr, 10); yylval.ival = strtol((char *)yytext,&endptr,10);
if (*endptr != '\0' || errno == ERANGE) if (*endptr != '\0' || errno == ERANGE)
{ {
errno = 0; errno = 0;
yylval.dval = strtod(((char *) yytext), &endptr); yylval.dval = strtod(((char *)yytext),&endptr);
if (*endptr != '\0' || errno == ERANGE) if (*endptr != '\0' || errno == ERANGE)
elog(ERROR, "Bad integer input '%s'", yytext); elog(ERROR,"Bad integer input '%s'",yytext);
CheckFloat8Val(yylval.dval); CheckFloat8Val(yylval.dval);
elog(NOTICE, "Integer input '%s' is out of range; promoted to float", yytext); elog(NOTICE,"Integer input '%s' is out of range; promoted to float", yytext);
return FCONST; return FCONST;
} }
return ICONST; return ICONST;
} }
YY_BREAK YY_BREAK
case 37: case 38:
YY_RULE_SETUP YY_RULE_SETUP
#line 385 "scan.l" #line 386 "scan.l"
{ {
char *endptr; char* endptr;
errno = 0; errno = 0;
yylval.dval = strtod((char *) yytext, &endptr); yylval.dval = strtod((char *)yytext,&endptr);
if (*endptr != '\0' || errno == ERANGE) if (*endptr != '\0' || errno == ERANGE)
elog(ERROR, "Bad float input '%s'", yytext); elog(ERROR,"Bad float input '%s'",yytext);
CheckFloat8Val(yylval.dval); CheckFloat8Val(yylval.dval);
return FCONST; return FCONST;
} }
YY_BREAK YY_BREAK
case 38: case 39:
YY_RULE_SETUP YY_RULE_SETUP
#line 397 "scan.l" #line 398 "scan.l"
{ {
int i; int i;
ScanKeyword *keyword; ScanKeyword *keyword;
for (i = 0; yytext[i]; i++) for(i = 0; yytext[i]; i++)
if (isascii((unsigned char) yytext[i]) && if (isascii((unsigned char)yytext[i]) &&
isupper(yytext[i])) isupper(yytext[i]))
yytext[i] = tolower(yytext[i]); yytext[i] = tolower(yytext[i]);
if (i >= NAMEDATALEN) if (i >= NAMEDATALEN)
yytext[NAMEDATALEN - 1] = '\0'; yytext[NAMEDATALEN-1] = '\0';
keyword = ScanKeywordLookup((char *) yytext); keyword = ScanKeywordLookup((char*)yytext);
if (keyword != NULL) if (keyword != NULL) {
return keyword->value; return keyword->value;
}
else else
{ {
yylval.str = pstrdup((char *) yytext); yylval.str = pstrdup((char*)yytext);
return IDENT; return IDENT;
} }
} }
YY_BREAK YY_BREAK
case 39: case 40:
YY_RULE_SETUP YY_RULE_SETUP
#line 418 "scan.l" #line 419 "scan.l"
{ /* ignore */ { /* ignore */ }
} YY_BREAK
YY_BREAK case 41:
case 40: YY_RULE_SETUP
YY_RULE_SETUP #line 421 "scan.l"
#line 420 "scan.l" { return yytext[0]; }
return (yytext[0]); YY_BREAK
YY_BREAK case 42:
case 41: YY_RULE_SETUP
YY_RULE_SETUP #line 423 "scan.l"
#line 422 "scan.l" ECHO;
ECHO; YY_BREAK
YY_BREAK #line 1317 "lex.yy.c"
#line 1311 "lex.yy.c"
case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(xb): case YY_STATE_EOF(xb):
case YY_STATE_EOF(xc): case YY_STATE_EOF(xc):
...@@ -1352,143 +1323,134 @@ do_action: /* This label is used only to access EOF ...@@ -1352,143 +1323,134 @@ do_action: /* This label is used only to access EOF
case YY_STATE_EOF(xq): case YY_STATE_EOF(xq):
yyterminate(); yyterminate();
case YY_END_OF_BUFFER: case YY_END_OF_BUFFER:
{ {
/* Amount of text matched not including the EOB char. */ /* Amount of text matched not including the EOB char. */
int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
/* Undo the effects of YY_DO_BEFORE_ACTION. */ /* Undo the effects of YY_DO_BEFORE_ACTION. */
*yy_cp = yy_hold_char; *yy_cp = yy_hold_char;
YY_RESTORE_YY_MORE_OFFSET YY_RESTORE_YY_MORE_OFFSET
if (yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW) if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
{ {
/* We're scanning a new file or input source. It's
* possible that this happened because the user
* just pointed yyin at a new source and called
* yylex(). If so, then we have to assure
* consistency between yy_current_buffer and our
* globals. Here is the right place to do so, because
* this is the first action (other than possibly a
* back-up) that will match for the new input source.
*/
yy_n_chars = yy_current_buffer->yy_n_chars;
yy_current_buffer->yy_input_file = yyin;
yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
}
/* /* Note that here we test for yy_c_buf_p "<=" to the position
* We're scanning a new file or input source. It's * of the first EOB in the buffer, since yy_c_buf_p will
* possible that this happened because the user * already have been incremented past the NUL character
* just pointed yyin at a new source and called * (since all states make transitions on EOB to the
* yylex(). If so, then we have to assure * end-of-buffer state). Contrast this with the test
* consistency between yy_current_buffer and our * in input().
* globals. Here is the right place to do so, */
* because this is the first action (other than if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
* possibly a back-up) that will match for the new { /* This was really a NUL. */
* input source. yy_state_type yy_next_state;
*/
yy_n_chars = yy_current_buffer->yy_n_chars;
yy_current_buffer->yy_input_file = yyin;
yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
}
/* yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
* Note that here we test for yy_c_buf_p "<=" to the
* position of the first EOB in the buffer, since
* yy_c_buf_p will already have been incremented past
* the NUL character (since all states make
* transitions on EOB to the end-of-buffer state).
* Contrast this with the test in input().
*/
if (yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars])
{ /* This was really a NUL. */
yy_state_type yy_next_state;
yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state();
yy_current_state = yy_get_previous_state(); /* Okay, we're now positioned to make the NUL
* transition. We couldn't have
* yy_get_previous_state() go ahead and do it
* for us because it doesn't know how to deal
* with the possibility of jamming (and we don't
* want to build jamming into it because then it
* will run more slowly).
*/
/* yy_next_state = yy_try_NUL_trans( yy_current_state );
* Okay, we're now positioned to make the NUL
* transition. We couldn't have
* yy_get_previous_state() go ahead and do it for
* us because it doesn't know how to deal with the
* possibility of jamming (and we don't want to
* build jamming into it because then it will run
* more slowly).
*/
yy_next_state = yy_try_NUL_trans(yy_current_state); yy_bp = yytext_ptr + YY_MORE_ADJ;
yy_bp = yytext_ptr + YY_MORE_ADJ; if ( yy_next_state )
{
/* Consume the NUL. */
yy_cp = ++yy_c_buf_p;
yy_current_state = yy_next_state;
goto yy_match;
}
if (yy_next_state) else
{ {
/* Consume the NUL. */ yy_cp = yy_c_buf_p;
yy_cp = ++yy_c_buf_p; goto yy_find_action;
yy_current_state = yy_next_state; }
goto yy_match; }
}
else else switch ( yy_get_next_buffer() )
{ {
yy_cp = yy_c_buf_p; case EOB_ACT_END_OF_FILE:
goto yy_find_action; {
} yy_did_buffer_switch_on_eof = 0;
if ( yywrap() )
{
/* Note: because we've taken care in
* yy_get_next_buffer() to have set up
* yytext, we can now set up
* yy_c_buf_p so that if some total
* hoser (like flex itself) wants to
* call the scanner after we return the
* YY_NULL, it'll still work - another
* YY_NULL will get returned.
*/
yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
yy_act = YY_STATE_EOF(YY_START);
goto do_action;
} }
else else
switch (yy_get_next_buffer()) {
{ if ( ! yy_did_buffer_switch_on_eof )
case EOB_ACT_END_OF_FILE: YY_NEW_FILE;
{ }
yy_did_buffer_switch_on_eof = 0; break;
if (yywrap())
{
/*
* Note: because we've taken care
* in yy_get_next_buffer() to have
* set up yytext, we can now set
* up yy_c_buf_p so that if some
* total hoser (like flex itself)
* wants to call the scanner after
* we return the YY_NULL, it'll
* still work - another YY_NULL
* will get returned.
*/
yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
yy_act = YY_STATE_EOF(YY_START);
goto do_action;
}
else
{
if (!yy_did_buffer_switch_on_eof)
YY_NEW_FILE;
}
break;
}
case EOB_ACT_CONTINUE_SCAN:
yy_c_buf_p =
yytext_ptr + yy_amount_of_matched_text;
yy_current_state = yy_get_previous_state();
yy_cp = yy_c_buf_p;
yy_bp = yytext_ptr + YY_MORE_ADJ;
goto yy_match;
case EOB_ACT_LAST_MATCH:
yy_c_buf_p =
&yy_current_buffer->yy_ch_buf[yy_n_chars];
yy_current_state = yy_get_previous_state();
yy_cp = yy_c_buf_p;
yy_bp = yytext_ptr + YY_MORE_ADJ;
goto yy_find_action;
}
break;
} }
default: case EOB_ACT_CONTINUE_SCAN:
YY_FATAL_ERROR( yy_c_buf_p =
"fatal flex scanner internal error--no action found"); yytext_ptr + yy_amount_of_matched_text;
} /* end of action switch */
} /* end of scanning one token */ yy_current_state = yy_get_previous_state();
} /* end of yylex */
yy_cp = yy_c_buf_p;
yy_bp = yytext_ptr + YY_MORE_ADJ;
goto yy_match;
case EOB_ACT_LAST_MATCH:
yy_c_buf_p =
&yy_current_buffer->yy_ch_buf[yy_n_chars];
yy_current_state = yy_get_previous_state();
yy_cp = yy_c_buf_p;
yy_bp = yytext_ptr + YY_MORE_ADJ;
goto yy_find_action;
}
break;
}
default:
YY_FATAL_ERROR(
"fatal flex scanner internal error--no action found" );
} /* end of action switch */
} /* end of scanning one token */
} /* end of yylex */
/* yy_get_next_buffer - try to read in a new buffer /* yy_get_next_buffer - try to read in a new buffer
...@@ -1499,131 +1461,122 @@ do_action: /* This label is used only to access EOF ...@@ -1499,131 +1461,122 @@ do_action: /* This label is used only to access EOF
* EOB_ACT_END_OF_FILE - end of file * EOB_ACT_END_OF_FILE - end of file
*/ */
static int static int yy_get_next_buffer()
yy_get_next_buffer() {
{
register char *dest = yy_current_buffer->yy_ch_buf; register char *dest = yy_current_buffer->yy_ch_buf;
register char *source = yytext_ptr; register char *source = yytext_ptr;
register int number_to_move, register int number_to_move, i;
i; int ret_val;
int ret_val;
if (yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1]) if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
YY_FATAL_ERROR( YY_FATAL_ERROR(
"fatal flex scanner internal error--end of buffer missed"); "fatal flex scanner internal error--end of buffer missed" );
if (yy_current_buffer->yy_fill_buffer == 0)
{ /* Don't try to fill the buffer, so this
* is an EOF. */
if (yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1)
{
/* if ( yy_current_buffer->yy_fill_buffer == 0 )
* We matched a single character, the EOB, so treat this as a { /* Don't try to fill the buffer, so this is an EOF. */
* final EOF. if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
{
/* We matched a single character, the EOB, so
* treat this as a final EOF.
*/ */
return EOB_ACT_END_OF_FILE; return EOB_ACT_END_OF_FILE;
} }
else else
{ {
/* We matched some text prior to the EOB, first
/* * process it.
* We matched some text prior to the EOB, first process it.
*/ */
return EOB_ACT_LAST_MATCH; return EOB_ACT_LAST_MATCH;
}
} }
}
/* Try to read more data. */ /* Try to read more data. */
/* First move last chars to start of buffer. */ /* First move last chars to start of buffer. */
number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1; number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
for (i = 0; i < number_to_move; ++i) for ( i = 0; i < number_to_move; ++i )
*(dest++) = *(source++); *(dest++) = *(source++);
if (yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING) if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
/* don't do the read, it's not guaranteed to return an EOF,
/* * just force an EOF
* don't do the read, it's not guaranteed to return an EOF, just
* force an EOF
*/ */
yy_current_buffer->yy_n_chars = yy_n_chars = 0; yy_current_buffer->yy_n_chars = yy_n_chars = 0;
else else
{ {
int num_to_read = int num_to_read =
yy_current_buffer->yy_buf_size - number_to_move - 1; yy_current_buffer->yy_buf_size - number_to_move - 1;
while (num_to_read <= 0) while ( num_to_read <= 0 )
{ /* Not enough room in the buffer - grow { /* Not enough room in the buffer - grow it. */
* it. */
#ifdef YY_USES_REJECT #ifdef YY_USES_REJECT
YY_FATAL_ERROR( YY_FATAL_ERROR(
"input buffer overflow, can't enlarge buffer because scanner uses REJECT"); "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
#else #else
/* just a shorter name for the current buffer */ /* just a shorter name for the current buffer */
YY_BUFFER_STATE b = yy_current_buffer; YY_BUFFER_STATE b = yy_current_buffer;
int yy_c_buf_p_offset = int yy_c_buf_p_offset =
(int) (yy_c_buf_p - b->yy_ch_buf); (int) (yy_c_buf_p - b->yy_ch_buf);
if (b->yy_is_our_buffer) if ( b->yy_is_our_buffer )
{ {
int new_size = b->yy_buf_size * 2; int new_size = b->yy_buf_size * 2;
if (new_size <= 0) if ( new_size <= 0 )
b->yy_buf_size += b->yy_buf_size / 8; b->yy_buf_size += b->yy_buf_size / 8;
else else
b->yy_buf_size *= 2; b->yy_buf_size *= 2;
b->yy_ch_buf = (char *) b->yy_ch_buf = (char *)
/* Include room in for 2 EOB chars. */ /* Include room in for 2 EOB chars. */
yy_flex_realloc((void *) b->yy_ch_buf, yy_flex_realloc( (void *) b->yy_ch_buf,
b->yy_buf_size + 2); b->yy_buf_size + 2 );
} }
else else
/* Can't grow it, we don't own it. */ /* Can't grow it, we don't own it. */
b->yy_ch_buf = 0; b->yy_ch_buf = 0;
if (!b->yy_ch_buf) if ( ! b->yy_ch_buf )
YY_FATAL_ERROR( YY_FATAL_ERROR(
"fatal error - scanner input buffer overflow"); "fatal error - scanner input buffer overflow" );
yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
num_to_read = yy_current_buffer->yy_buf_size - num_to_read = yy_current_buffer->yy_buf_size -
number_to_move - 1; number_to_move - 1;
#endif #endif
} }
if (num_to_read > YY_READ_BUF_SIZE) if ( num_to_read > YY_READ_BUF_SIZE )
num_to_read = YY_READ_BUF_SIZE; num_to_read = YY_READ_BUF_SIZE;
/* Read in more data. */ /* Read in more data. */
YY_INPUT((&yy_current_buffer->yy_ch_buf[number_to_move]), YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
yy_n_chars, num_to_read); yy_n_chars, num_to_read );
yy_current_buffer->yy_n_chars = yy_n_chars; yy_current_buffer->yy_n_chars = yy_n_chars;
} }
if (yy_n_chars == 0) if ( yy_n_chars == 0 )
{
if (number_to_move == YY_MORE_ADJ)
{ {
if ( number_to_move == YY_MORE_ADJ )
{
ret_val = EOB_ACT_END_OF_FILE; ret_val = EOB_ACT_END_OF_FILE;
yyrestart(yyin); yyrestart( yyin );
} }
else else
{ {
ret_val = EOB_ACT_LAST_MATCH; ret_val = EOB_ACT_LAST_MATCH;
yy_current_buffer->yy_buffer_status = yy_current_buffer->yy_buffer_status =
YY_BUFFER_EOF_PENDING; YY_BUFFER_EOF_PENDING;
}
} }
}
else else
ret_val = EOB_ACT_CONTINUE_SCAN; ret_val = EOB_ACT_CONTINUE_SCAN;
...@@ -1635,14 +1588,13 @@ yy_get_next_buffer() ...@@ -1635,14 +1588,13 @@ yy_get_next_buffer()
yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
return ret_val; return ret_val;
} }
/* yy_get_previous_state - get the state just before the EOB char was reached */ /* yy_get_previous_state - get the state just before the EOB char was reached */
static yy_state_type static yy_state_type yy_get_previous_state()
yy_get_previous_state() {
{
register yy_state_type yy_current_state; register yy_state_type yy_current_state;
register char *yy_cp; register char *yy_cp;
...@@ -1650,22 +1602,21 @@ yy_get_previous_state() ...@@ -1650,22 +1602,21 @@ yy_get_previous_state()
yy_state_ptr = yy_state_buf; yy_state_ptr = yy_state_buf;
*yy_state_ptr++ = yy_current_state; *yy_state_ptr++ = yy_current_state;
for (yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp) for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
{
register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state)
{ {
register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state]; yy_current_state = (int) yy_def[yy_current_state];
if (yy_current_state >= 134) if ( yy_current_state >= 134 )
yy_c = yy_meta[(unsigned int) yy_c]; yy_c = yy_meta[(unsigned int) yy_c];
} }
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
*yy_state_ptr++ = yy_current_state; *yy_state_ptr++ = yy_current_state;
} }
return yy_current_state; return yy_current_state;
} }
/* yy_try_NUL_trans - try to make a transition on the NUL character /* yy_try_NUL_trans - try to make a transition on the NUL character
...@@ -1675,61 +1626,54 @@ yy_get_previous_state() ...@@ -1675,61 +1626,54 @@ yy_get_previous_state()
*/ */
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
static yy_state_type static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
yy_try_NUL_trans(yy_state_type yy_current_state)
#else #else
static yy_state_type static yy_state_type yy_try_NUL_trans( yy_current_state )
yy_try_NUL_trans(yy_current_state)
yy_state_type yy_current_state; yy_state_type yy_current_state;
#endif #endif
{ {
register int yy_is_jam; register int yy_is_jam;
register YY_CHAR yy_c = 1; register YY_CHAR yy_c = 1;
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) {
{
yy_current_state = (int) yy_def[yy_current_state]; yy_current_state = (int) yy_def[yy_current_state];
if (yy_current_state >= 134) if ( yy_current_state >= 134 )
yy_c = yy_meta[(unsigned int) yy_c]; yy_c = yy_meta[(unsigned int) yy_c];
} }
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
yy_is_jam = (yy_current_state == 133); yy_is_jam = (yy_current_state == 133);
if (!yy_is_jam) if ( ! yy_is_jam )
*yy_state_ptr++ = yy_current_state; *yy_state_ptr++ = yy_current_state;
return yy_is_jam ? 0 : yy_current_state; return yy_is_jam ? 0 : yy_current_state;
} }
#ifndef YY_NO_UNPUT #ifndef YY_NO_UNPUT
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
static void static void yyunput( int c, register char *yy_bp )
yyunput(int c, register char *yy_bp)
#else #else
static void static void yyunput( c, yy_bp )
yyunput(c, yy_bp) int c;
int c;
register char *yy_bp; register char *yy_bp;
#endif #endif
{ {
register char *yy_cp = yy_c_buf_p; register char *yy_cp = yy_c_buf_p;
/* undo effects of setting up yytext */ /* undo effects of setting up yytext */
*yy_cp = yy_hold_char; *yy_cp = yy_hold_char;
if (yy_cp < yy_current_buffer->yy_ch_buf + 2) if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
{ /* need to shift things up to make room */ { /* need to shift things up to make room */
/* +2 for EOB chars. */ /* +2 for EOB chars. */
register int number_to_move = yy_n_chars + 2; register int number_to_move = yy_n_chars + 2;
register char *dest = &yy_current_buffer->yy_ch_buf[ register char *dest = &yy_current_buffer->yy_ch_buf[
yy_current_buffer->yy_buf_size + 2]; yy_current_buffer->yy_buf_size + 2];
register char *source = register char *source =
&yy_current_buffer->yy_ch_buf[number_to_move]; &yy_current_buffer->yy_ch_buf[number_to_move];
while (source > yy_current_buffer->yy_ch_buf) while ( source > yy_current_buffer->yy_ch_buf )
*--dest = *--source; *--dest = *--source;
yy_cp += (int) (dest - source); yy_cp += (int) (dest - source);
...@@ -1737,9 +1681,9 @@ register char *yy_bp; ...@@ -1737,9 +1681,9 @@ register char *yy_bp;
yy_current_buffer->yy_n_chars = yy_current_buffer->yy_n_chars =
yy_n_chars = yy_current_buffer->yy_buf_size; yy_n_chars = yy_current_buffer->yy_buf_size;
if (yy_cp < yy_current_buffer->yy_ch_buf + 2) if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
YY_FATAL_ERROR("flex scanner push-back overflow"); YY_FATAL_ERROR( "flex scanner push-back overflow" );
} }
*--yy_cp = (char) c; *--yy_cp = (char) c;
...@@ -1747,235 +1691,209 @@ register char *yy_bp; ...@@ -1747,235 +1691,209 @@ register char *yy_bp;
yytext_ptr = yy_bp; yytext_ptr = yy_bp;
yy_hold_char = *yy_cp; yy_hold_char = *yy_cp;
yy_c_buf_p = yy_cp; yy_c_buf_p = yy_cp;
} }
#endif /* ifndef YY_NO_UNPUT */
#endif /* ifndef YY_NO_UNPUT */
#ifdef __cplusplus #ifdef __cplusplus
static int static int yyinput()
yyinput()
#else #else
static int static int input()
input()
#endif #endif
{ {
int c; int c;
*yy_c_buf_p = yy_hold_char; *yy_c_buf_p = yy_hold_char;
if (*yy_c_buf_p == YY_END_OF_BUFFER_CHAR) if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
{ {
/* yy_c_buf_p now points to the character we want to return.
/* * If this occurs *before* the EOB characters, then it's a
* yy_c_buf_p now points to the character we want to return. If * valid NUL; if not, then we've hit the end of the buffer.
* this occurs *before* the EOB characters, then it's a valid NUL;
* if not, then we've hit the end of the buffer.
*/ */
if (yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars]) if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
/* This was really a NUL. */ /* This was really a NUL. */
*yy_c_buf_p = '\0'; *yy_c_buf_p = '\0';
else else
{ /* need more input */ { /* need more input */
int offset = yy_c_buf_p - yytext_ptr; int offset = yy_c_buf_p - yytext_ptr;
++yy_c_buf_p; ++yy_c_buf_p;
switch (yy_get_next_buffer()) switch ( yy_get_next_buffer() )
{ {
case EOB_ACT_LAST_MATCH: case EOB_ACT_LAST_MATCH:
/* This happens because yy_g_n_b()
/* * sees that we've accumulated a
* This happens because yy_g_n_b() sees that we've * token and flags that we need to
* accumulated a token and flags that we need to try * try matching the token before
* matching the token before proceeding. But for * proceeding. But for input(),
* input(), there's no matching to consider. So * there's no matching to consider.
* convert the EOB_ACT_LAST_MATCH to * So convert the EOB_ACT_LAST_MATCH
* EOB_ACT_END_OF_FILE. * to EOB_ACT_END_OF_FILE.
*/ */
/* Reset buffer status. */ /* Reset buffer status. */
yyrestart(yyin); yyrestart( yyin );
/* fall through */ /* fall through */
case EOB_ACT_END_OF_FILE: case EOB_ACT_END_OF_FILE:
{ {
if (yywrap()) if ( yywrap() )
return EOF; return EOF;
if (!yy_did_buffer_switch_on_eof) if ( ! yy_did_buffer_switch_on_eof )
YY_NEW_FILE; YY_NEW_FILE;
#ifdef __cplusplus #ifdef __cplusplus
return yyinput(); return yyinput();
#else #else
return input(); return input();
#endif #endif
} }
case EOB_ACT_CONTINUE_SCAN: case EOB_ACT_CONTINUE_SCAN:
yy_c_buf_p = yytext_ptr + offset; yy_c_buf_p = yytext_ptr + offset;
break; break;
}
} }
} }
}
c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */ c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
*yy_c_buf_p = '\0'; /* preserve yytext */ *yy_c_buf_p = '\0'; /* preserve yytext */
yy_hold_char = *++yy_c_buf_p; yy_hold_char = *++yy_c_buf_p;
return c; return c;
} }
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
void void yyrestart( FILE *input_file )
yyrestart(FILE *input_file)
#else #else
void void yyrestart( input_file )
yyrestart(input_file) FILE *input_file;
FILE *input_file;
#endif #endif
{ {
if (!yy_current_buffer) if ( ! yy_current_buffer )
yy_current_buffer = yy_create_buffer(yyin, YY_BUF_SIZE); yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
yy_init_buffer(yy_current_buffer, input_file); yy_init_buffer( yy_current_buffer, input_file );
yy_load_buffer_state(); yy_load_buffer_state();
} }
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
void void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
yy_switch_to_buffer(YY_BUFFER_STATE new_buffer)
#else #else
void void yy_switch_to_buffer( new_buffer )
yy_switch_to_buffer(new_buffer)
YY_BUFFER_STATE new_buffer; YY_BUFFER_STATE new_buffer;
#endif #endif
{ {
if (yy_current_buffer == new_buffer) if ( yy_current_buffer == new_buffer )
return; return;
if (yy_current_buffer) if ( yy_current_buffer )
{ {
/* Flush out information for old buffer. */ /* Flush out information for old buffer. */
*yy_c_buf_p = yy_hold_char; *yy_c_buf_p = yy_hold_char;
yy_current_buffer->yy_buf_pos = yy_c_buf_p; yy_current_buffer->yy_buf_pos = yy_c_buf_p;
yy_current_buffer->yy_n_chars = yy_n_chars; yy_current_buffer->yy_n_chars = yy_n_chars;
} }
yy_current_buffer = new_buffer; yy_current_buffer = new_buffer;
yy_load_buffer_state(); yy_load_buffer_state();
/* /* We don't actually know whether we did this switch during
* We don't actually know whether we did this switch during EOF * EOF (yywrap()) processing, but the only time this flag
* (yywrap()) processing, but the only time this flag is looked at is * is looked at is after yywrap() is called, so it's safe
* after yywrap() is called, so it's safe to go ahead and always set * to go ahead and always set it.
* it.
*/ */
yy_did_buffer_switch_on_eof = 1; yy_did_buffer_switch_on_eof = 1;
} }
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
void void yy_load_buffer_state( void )
yy_load_buffer_state(void)
#else #else
void void yy_load_buffer_state()
yy_load_buffer_state()
#endif #endif
{ {
yy_n_chars = yy_current_buffer->yy_n_chars; yy_n_chars = yy_current_buffer->yy_n_chars;
yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
yyin = yy_current_buffer->yy_input_file; yyin = yy_current_buffer->yy_input_file;
yy_hold_char = *yy_c_buf_p; yy_hold_char = *yy_c_buf_p;
} }
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
YY_BUFFER_STATE YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
yy_create_buffer(FILE *file, int size)
#else #else
YY_BUFFER_STATE YY_BUFFER_STATE yy_create_buffer( file, size )
yy_create_buffer(file, size) FILE *file;
FILE *file; int size;
int size;
#endif #endif
{ {
YY_BUFFER_STATE b; YY_BUFFER_STATE b;
b = (YY_BUFFER_STATE) yy_flex_alloc(sizeof(struct yy_buffer_state)); b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
if (!b) if ( ! b )
YY_FATAL_ERROR("out of dynamic memory in yy_create_buffer()"); YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
b->yy_buf_size = size; b->yy_buf_size = size;
/* /* yy_ch_buf has to be 2 characters longer than the size given because
* yy_ch_buf has to be 2 characters longer than the size given because
* we need to put in 2 end-of-buffer characters. * we need to put in 2 end-of-buffer characters.
*/ */
b->yy_ch_buf = (char *) yy_flex_alloc(b->yy_buf_size + 2); b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
if (!b->yy_ch_buf) if ( ! b->yy_ch_buf )
YY_FATAL_ERROR("out of dynamic memory in yy_create_buffer()"); YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
b->yy_is_our_buffer = 1; b->yy_is_our_buffer = 1;
yy_init_buffer(b, file); yy_init_buffer( b, file );
return b; return b;
} }
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
void void yy_delete_buffer( YY_BUFFER_STATE b )
yy_delete_buffer(YY_BUFFER_STATE b)
#else #else
void void yy_delete_buffer( b )
yy_delete_buffer(b)
YY_BUFFER_STATE b; YY_BUFFER_STATE b;
#endif #endif
{ {
if (!b) if ( ! b )
return; return;
if (b == yy_current_buffer) if ( b == yy_current_buffer )
yy_current_buffer = (YY_BUFFER_STATE) 0; yy_current_buffer = (YY_BUFFER_STATE) 0;
if (b->yy_is_our_buffer) if ( b->yy_is_our_buffer )
yy_flex_free((void *) b->yy_ch_buf); yy_flex_free( (void *) b->yy_ch_buf );
yy_flex_free((void *) b); yy_flex_free( (void *) b );
} }
#ifndef YY_ALWAYS_INTERACTIVE #ifndef YY_ALWAYS_INTERACTIVE
#ifndef YY_NEVER_INTERACTIVE #ifndef YY_NEVER_INTERACTIVE
extern int isatty YY_PROTO((int)); extern int isatty YY_PROTO(( int ));
#endif #endif
#endif #endif
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
void void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
yy_init_buffer(YY_BUFFER_STATE b, FILE *file)
#else #else
void void yy_init_buffer( b, file )
yy_init_buffer(b, file)
YY_BUFFER_STATE b; YY_BUFFER_STATE b;
FILE *file; FILE *file;
#endif #endif
{ {
yy_flush_buffer(b); yy_flush_buffer( b );
b->yy_input_file = file; b->yy_input_file = file;
b->yy_fill_buffer = 1; b->yy_fill_buffer = 1;
...@@ -1986,32 +1904,28 @@ FILE *file; ...@@ -1986,32 +1904,28 @@ FILE *file;
#if YY_NEVER_INTERACTIVE #if YY_NEVER_INTERACTIVE
b->yy_is_interactive = 0; b->yy_is_interactive = 0;
#else #else
b->yy_is_interactive = file ? (isatty(fileno(file)) > 0) : 0; b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
#endif #endif
#endif #endif
} }
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
void void yy_flush_buffer( YY_BUFFER_STATE b )
yy_flush_buffer(YY_BUFFER_STATE b)
#else #else
void void yy_flush_buffer( b )
yy_flush_buffer(b)
YY_BUFFER_STATE b; YY_BUFFER_STATE b;
#endif #endif
{ {
if (!b) if ( ! b )
return; return;
b->yy_n_chars = 0; b->yy_n_chars = 0;
/* /* We always need two end-of-buffer characters. The first causes
* We always need two end-of-buffer characters. The first causes a * a transition to the end-of-buffer state. The second causes
* transition to the end-of-buffer state. The second causes a jam in * a jam in that state.
* that state.
*/ */
b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
...@@ -2021,34 +1935,31 @@ YY_BUFFER_STATE b; ...@@ -2021,34 +1935,31 @@ YY_BUFFER_STATE b;
b->yy_at_bol = 1; b->yy_at_bol = 1;
b->yy_buffer_status = YY_BUFFER_NEW; b->yy_buffer_status = YY_BUFFER_NEW;
if (b == yy_current_buffer) if ( b == yy_current_buffer )
yy_load_buffer_state(); yy_load_buffer_state();
} }
#ifndef YY_NO_SCAN_BUFFER #ifndef YY_NO_SCAN_BUFFER
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
YY_BUFFER_STATE YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
yy_scan_buffer(char *base, yy_size_t size)
#else #else
YY_BUFFER_STATE YY_BUFFER_STATE yy_scan_buffer( base, size )
yy_scan_buffer(base, size) char *base;
char *base; yy_size_t size;
yy_size_t size;
#endif #endif
{ {
YY_BUFFER_STATE b; YY_BUFFER_STATE b;
if (size < 2 || if ( size < 2 ||
base[size - 2] != YY_END_OF_BUFFER_CHAR || base[size-2] != YY_END_OF_BUFFER_CHAR ||
base[size - 1] != YY_END_OF_BUFFER_CHAR) base[size-1] != YY_END_OF_BUFFER_CHAR )
/* They forgot to leave room for the EOB's. */ /* They forgot to leave room for the EOB's. */
return 0; return 0;
b = (YY_BUFFER_STATE) yy_flex_alloc(sizeof(struct yy_buffer_state)); b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
if (!b) if ( ! b )
YY_FATAL_ERROR("out of dynamic memory in yy_scan_buffer()"); YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
b->yy_buf_pos = b->yy_ch_buf = base; b->yy_buf_pos = b->yy_ch_buf = base;
...@@ -2060,138 +1971,119 @@ yy_size_t size; ...@@ -2060,138 +1971,119 @@ yy_size_t size;
b->yy_fill_buffer = 0; b->yy_fill_buffer = 0;
b->yy_buffer_status = YY_BUFFER_NEW; b->yy_buffer_status = YY_BUFFER_NEW;
yy_switch_to_buffer(b); yy_switch_to_buffer( b );
return b; return b;
} }
#endif #endif
#ifndef YY_NO_SCAN_STRING #ifndef YY_NO_SCAN_STRING
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
YY_BUFFER_STATE YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
yy_scan_string(yyconst char *yy_str)
#else #else
YY_BUFFER_STATE YY_BUFFER_STATE yy_scan_string( yy_str )
yy_scan_string(yy_str)
yyconst char *yy_str; yyconst char *yy_str;
#endif #endif
{ {
int len; int len;
for ( len = 0; yy_str[len]; ++len )
for (len = 0; yy_str[len]; ++len)
; ;
return yy_scan_bytes(yy_str, len); return yy_scan_bytes( yy_str, len );
} }
#endif #endif
#ifndef YY_NO_SCAN_BYTES #ifndef YY_NO_SCAN_BYTES
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
YY_BUFFER_STATE YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
yy_scan_bytes(yyconst char *bytes, int len)
#else #else
YY_BUFFER_STATE YY_BUFFER_STATE yy_scan_bytes( bytes, len )
yy_scan_bytes(bytes, len)
yyconst char *bytes; yyconst char *bytes;
int len; int len;
#endif #endif
{ {
YY_BUFFER_STATE b; YY_BUFFER_STATE b;
char *buf; char *buf;
yy_size_t n; yy_size_t n;
int i; int i;
/* Get memory for full buffer, including space for trailing EOB's. */ /* Get memory for full buffer, including space for trailing EOB's. */
n = len + 2; n = len + 2;
buf = (char *) yy_flex_alloc(n); buf = (char *) yy_flex_alloc( n );
if (!buf) if ( ! buf )
YY_FATAL_ERROR("out of dynamic memory in yy_scan_bytes()"); YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
for (i = 0; i < len; ++i) for ( i = 0; i < len; ++i )
buf[i] = bytes[i]; buf[i] = bytes[i];
buf[len] = buf[len + 1] = YY_END_OF_BUFFER_CHAR; buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
b = yy_scan_buffer(buf, n); b = yy_scan_buffer( buf, n );
if (!b) if ( ! b )
YY_FATAL_ERROR("bad buffer in yy_scan_bytes()"); YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
/* /* It's okay to grow etc. this buffer, and we should throw it
* It's okay to grow etc. this buffer, and we should throw it away * away when we're done.
* when we're done.
*/ */
b->yy_is_our_buffer = 1; b->yy_is_our_buffer = 1;
return b; return b;
} }
#endif #endif
#ifndef YY_NO_PUSH_STATE #ifndef YY_NO_PUSH_STATE
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
static void static void yy_push_state( int new_state )
yy_push_state(int new_state)
#else #else
static void static void yy_push_state( new_state )
yy_push_state(new_state) int new_state;
int new_state;
#endif #endif
{
if (yy_start_stack_ptr >= yy_start_stack_depth)
{ {
yy_size_t new_size; if ( yy_start_stack_ptr >= yy_start_stack_depth )
{
yy_size_t new_size;
yy_start_stack_depth += YY_START_STACK_INCR; yy_start_stack_depth += YY_START_STACK_INCR;
new_size = yy_start_stack_depth * sizeof(int); new_size = yy_start_stack_depth * sizeof( int );
if (!yy_start_stack) if ( ! yy_start_stack )
yy_start_stack = (int *) yy_flex_alloc(new_size); yy_start_stack = (int *) yy_flex_alloc( new_size );
else else
yy_start_stack = (int *) yy_flex_realloc( yy_start_stack = (int *) yy_flex_realloc(
(void *) yy_start_stack, new_size); (void *) yy_start_stack, new_size );
if (!yy_start_stack) if ( ! yy_start_stack )
YY_FATAL_ERROR( YY_FATAL_ERROR(
"out of memory expanding start-condition stack"); "out of memory expanding start-condition stack" );
} }
yy_start_stack[yy_start_stack_ptr++] = YY_START; yy_start_stack[yy_start_stack_ptr++] = YY_START;
BEGIN(new_state); BEGIN(new_state);
} }
#endif #endif
#ifndef YY_NO_POP_STATE #ifndef YY_NO_POP_STATE
static void static void yy_pop_state()
yy_pop_state() {
{ if ( --yy_start_stack_ptr < 0 )
if (--yy_start_stack_ptr < 0) YY_FATAL_ERROR( "start-condition stack underflow" );
YY_FATAL_ERROR("start-condition stack underflow");
BEGIN(yy_start_stack[yy_start_stack_ptr]); BEGIN(yy_start_stack[yy_start_stack_ptr]);
} }
#endif #endif
#ifndef YY_NO_TOP_STATE #ifndef YY_NO_TOP_STATE
static int static int yy_top_state()
yy_top_state() {
{
return yy_start_stack[yy_start_stack_ptr - 1]; return yy_start_stack[yy_start_stack_ptr - 1];
} }
#endif #endif
#ifndef YY_EXIT_FAILURE #ifndef YY_EXIT_FAILURE
...@@ -2199,18 +2091,15 @@ yy_top_state() ...@@ -2199,18 +2091,15 @@ yy_top_state()
#endif #endif
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
static void static void yy_fatal_error( yyconst char msg[] )
yy_fatal_error(yyconst char msg[])
#else #else
static void static void yy_fatal_error( msg )
yy_fatal_error(msg) char msg[];
char msg[];
#endif #endif
{ {
(void) fprintf(stderr, "%s\n", msg); (void) fprintf( stderr, "%s\n", msg );
exit(YY_EXIT_FAILURE); exit( YY_EXIT_FAILURE );
} }
...@@ -2234,117 +2123,93 @@ char msg[]; ...@@ -2234,117 +2123,93 @@ char msg[];
#ifndef yytext_ptr #ifndef yytext_ptr
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
static void static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
yy_flex_strncpy(char *s1, yyconst char *s2, int n)
#else #else
static void static void yy_flex_strncpy( s1, s2, n )
yy_flex_strncpy(s1, s2, n) char *s1;
char *s1;
yyconst char *s2; yyconst char *s2;
int n; int n;
#endif #endif
{ {
register int i; register int i;
for ( i = 0; i < n; ++i )
for (i = 0; i < n; ++i)
s1[i] = s2[i]; s1[i] = s2[i];
} }
#endif #endif
#ifdef YY_NEED_STRLEN #ifdef YY_NEED_STRLEN
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
static int static int yy_flex_strlen( yyconst char *s )
yy_flex_strlen(yyconst char *s)
#else #else
static int static int yy_flex_strlen( s )
yy_flex_strlen(s)
yyconst char *s; yyconst char *s;
#endif #endif
{ {
register int n; register int n;
for ( n = 0; s[n]; ++n )
for (n = 0; s[n]; ++n)
; ;
return n; return n;
} }
#endif #endif
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
static void * static void *yy_flex_alloc( yy_size_t size )
yy_flex_alloc(yy_size_t size)
#else #else
static void * static void *yy_flex_alloc( size )
yy_flex_alloc(size) yy_size_t size;
yy_size_t size;
#endif #endif
{ {
return (void *) malloc(size); return (void *) malloc( size );
} }
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
static void * static void *yy_flex_realloc( void *ptr, yy_size_t size )
yy_flex_realloc(void *ptr, yy_size_t size)
#else #else
static void * static void *yy_flex_realloc( ptr, size )
yy_flex_realloc(ptr, size) void *ptr;
void *ptr; yy_size_t size;
yy_size_t size;
#endif #endif
{ {
/* The cast to (char *) in the following accommodates both
/* * implementations that use char* generic pointers, and those
* The cast to (char *) in the following accommodates both * that use void* generic pointers. It works with the latter
* implementations that use char* generic pointers, and those that use * because both ANSI C and C++ allow castless assignment from
* void* generic pointers. It works with the latter because both ANSI * any pointer type to void*, and deal with argument conversions
* C and C++ allow castless assignment from any pointer type to void*, * as though doing an assignment.
* and deal with argument conversions as though doing an assignment.
*/ */
return (void *) realloc((char *) ptr, size); return (void *) realloc( (char *) ptr, size );
} }
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
static void static void yy_flex_free( void *ptr )
yy_flex_free(void *ptr)
#else #else
static void static void yy_flex_free( ptr )
yy_flex_free(ptr) void *ptr;
void *ptr;
#endif #endif
{ {
free(ptr); free( ptr );
} }
#if YY_MAIN #if YY_MAIN
int int main()
main() {
{
yylex(); yylex();
return 0; return 0;
} }
#endif #endif
#line 422 "scan.l" #line 423 "scan.l"
void void yyerror(char message[])
yyerror(char message[])
{ {
elog(ERROR, "parser: %s at or near \"%s\"", message, yytext); elog(ERROR, "parser: %s at or near \"%s\"", message, yytext);
} }
int int yywrap()
yywrap()
{ {
return (1); return(1);
} }
/* /*
...@@ -2354,18 +2219,15 @@ yywrap() ...@@ -2354,18 +2219,15 @@ yywrap()
void void
init_io() init_io()
{ {
/* it's important to set this to NULL
/* because input()/myinput() checks the non-nullness of parseCh
* it's important to set this to NULL because input()/myinput() checks to know when to pass the string to lex/flex */
* the non-nullness of parseCh to know when to pass the string to
* lex/flex
*/
parseCh = NULL; parseCh = NULL;
#if defined(FLEX_SCANNER) #if defined(FLEX_SCANNER)
if (YY_CURRENT_BUFFER) if (YY_CURRENT_BUFFER)
yy_flush_buffer(YY_CURRENT_BUFFER); yy_flush_buffer(YY_CURRENT_BUFFER);
#endif /* FLEX_SCANNER */ #endif /* FLEX_SCANNER */
BEGIN INITIAL; BEGIN INITIAL;
} }
#if !defined(FLEX_SCANNER) #if !defined(FLEX_SCANNER)
...@@ -2376,12 +2238,12 @@ input() ...@@ -2376,12 +2238,12 @@ input()
if (parseCh == NULL) if (parseCh == NULL)
{ {
parseCh = parseString; parseCh = parseString;
return (*parseCh++); return(*parseCh++);
} }
else if (*parseCh == '\0') else if (*parseCh == '\0')
return (0); return(0);
else else
return (*parseCh++); return(*parseCh++);
} }
/* undo lex input from a string instead of from stdin */ /* undo lex input from a string instead of from stdin */
...@@ -2393,16 +2255,14 @@ unput(char c) ...@@ -2393,16 +2255,14 @@ unput(char c)
else if (c != 0) else if (c != 0)
*--parseCh = c; *--parseCh = c;
} }
#endif /* !defined(FLEX_SCANNER) */
#endif /* !defined(FLEX_SCANNER) */
#ifdef FLEX_SCANNER #ifdef FLEX_SCANNER
/* input routine for flex to read input from a string instead of a file */ /* input routine for flex to read input from a string instead of a file */
int int
myinput(char *buf, int max) myinput(char* buf, int max)
{ {
int len, int len, copylen;
copylen;
if (parseCh == NULL) if (parseCh == NULL)
{ {
...@@ -2418,7 +2278,7 @@ myinput(char *buf, int max) ...@@ -2418,7 +2278,7 @@ myinput(char *buf, int max)
return copylen; return copylen;
} }
else else
return 0; /* end of string */ return 0; /* end of string */
} }
#endif /* FLEX_SCANNER */
#endif /* FLEX_SCANNER */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment