Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
672bc164
Commit
672bc164
authored
Sep 15, 1998
by
Marc G. Fournier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
parent
e70798db
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
1033 additions
and
1186 deletions
+1033
-1186
README-1ST
README-1ST
+0
-13
src/backend/parser/gram.c
src/backend/parser/gram.c
+4
-4
src/backend/parser/scan.c
src/backend/parser/scan.c
+1029
-1169
No files found.
README-1ST
deleted
100644 → 0
View file @
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 |
+----------------------------+-----------------+----------------------+
src/backend/parser/gram.c
View file @
672bc164
...
@@ -230,7 +230,7 @@
...
@@ -230,7 +230,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/gram.c,v 2.3
5 1998/09/13 04:20:16 thomas
Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/gram.c,v 2.3
6 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
;
...
...
src/backend/parser/scan.c
View file @
672bc164
/* 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.2
7 1998/09/01 04:30:41 momjian
Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/scan.c,v 1.2
8 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.2
7 1998/09/01 04:30:41 momjian
Exp $
* $Header: /cvsroot/pgsql/src/backend/parser/Attic/scan.c,v 1.2
8 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 67
4
"lex.yy.c"
#line 67
5
"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 82
7
"lex.yy.c"
#line 82
8
"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 30
4
"scan.l"
#line 30
5
"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 31
1
"scan.l"
#line 31
2
"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 31
7
"scan.l"
#line 31
8
"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 3
39
"scan.l"
#line 3
40
"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 35
7
"scan.l"
#line 35
8
"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 36
8
"scan.l"
#line 36
9
"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 38
5
"scan.l"
#line 38
6
"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 39
7
"scan.l"
#line 39
8
"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 42
2
"scan.l"
#line 42
3
"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 */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment