ebb 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +10 -44
- data/Rakefile +123 -0
- data/ext/ebb.c +794 -0
- data/ext/ebb.h +130 -0
- data/ext/ebb_ffi.c +575 -0
- data/ext/ebb_request_parser.c +5339 -0
- data/ext/ebb_request_parser.h +97 -0
- data/ext/ebb_request_parser.rl +513 -0
- data/{src → ext}/extconf.rb +12 -8
- data/ext/rbtree.c +408 -0
- data/ext/rbtree.h +54 -0
- data/lib/ebb.rb +311 -0
- data/lib/ebb/version.rb +4 -0
- data/libev/ev++.h +803 -0
- data/libev/ev.c +24 -6
- data/libev/ev.h +4 -0
- data/libev/ev_select.c +50 -15
- data/libev/ev_vars.h +3 -0
- data/libev/ev_win32.c +3 -0
- data/libev/ev_wrap.h +2 -0
- data/libev/event.c +403 -0
- data/libev/event.h +152 -0
- metadata +26 -40
- data/benchmark/application.rb +0 -93
- data/benchmark/server_test.rb +0 -193
- data/bin/ebb_rails +0 -4
- data/ruby_lib/ebb.rb +0 -257
- data/ruby_lib/ebb/runner.rb +0 -134
- data/ruby_lib/ebb/runner/rails.rb +0 -31
- data/ruby_lib/rack/adapter/rails.rb +0 -159
- data/src/ebb.c +0 -627
- data/src/ebb.h +0 -102
- data/src/ebb_ruby.c +0 -306
- data/src/parser.c +0 -2860
- data/src/parser.h +0 -53
- data/test/basic_test.rb +0 -46
- data/test/ebb_rails_test.rb +0 -34
- data/test/env_test.rb +0 -110
- data/test/helper.rb +0 -138
data/src/ebb.h
DELETED
@@ -1,102 +0,0 @@
|
|
1
|
-
/* The Ebb Web Server
|
2
|
-
* Copyright (c) 2008 Ry Dahl. This software is released under the MIT
|
3
|
-
* License. See README file for details.
|
4
|
-
*/
|
5
|
-
#ifndef ebb_h
|
6
|
-
#define ebb_h
|
7
|
-
#define EV_STANDALONE 1
|
8
|
-
#include <ev.h>
|
9
|
-
#include <sys/socket.h>
|
10
|
-
#include <netinet/in.h>
|
11
|
-
#include <glib.h>
|
12
|
-
#include "parser.h"
|
13
|
-
|
14
|
-
typedef struct ebb_server ebb_server;
|
15
|
-
typedef struct ebb_client ebb_client;
|
16
|
-
#define EBB_VERSION "0.2.1"
|
17
|
-
#define EBB_BUFFERSIZE (1024 * (80 + 33))
|
18
|
-
#define EBB_MAX_CLIENTS 1024
|
19
|
-
#define EBB_TIMEOUT 30.0
|
20
|
-
#define EBB_MAX_ENV 500
|
21
|
-
#define EBB_TCP_COMMON \
|
22
|
-
unsigned open : 1; \
|
23
|
-
int fd; \
|
24
|
-
struct sockaddr_in sockaddr;
|
25
|
-
|
26
|
-
/*** Ebb Client ***/
|
27
|
-
void ebb_client_close(ebb_client*);
|
28
|
-
/* user MUST call this function on each client passed by the request_cb */
|
29
|
-
void ebb_client_release(ebb_client*);
|
30
|
-
int ebb_client_read(ebb_client *client, char *buffer, int length);
|
31
|
-
void ebb_client_write_status(ebb_client*, int status, const char *reason_phrase);
|
32
|
-
void ebb_client_write_header(ebb_client*, const char *field, const char *value);
|
33
|
-
void ebb_client_write_body(ebb_client*, const char *data, int length);
|
34
|
-
/* int ebb_client_should_keep_alive(ebb_client*); */
|
35
|
-
|
36
|
-
struct ebb_env_item {
|
37
|
-
int type;
|
38
|
-
int field_length;
|
39
|
-
int value_length;
|
40
|
-
const char *field;
|
41
|
-
const char *value;
|
42
|
-
};
|
43
|
-
|
44
|
-
struct ebb_client {
|
45
|
-
EBB_TCP_COMMON
|
46
|
-
char *ip;
|
47
|
-
unsigned int in_use : 1;
|
48
|
-
|
49
|
-
ebb_server *server;
|
50
|
-
http_parser parser;
|
51
|
-
|
52
|
-
char *request_buffer;
|
53
|
-
ev_io read_watcher;
|
54
|
-
size_t read;
|
55
|
-
|
56
|
-
char *body_head;
|
57
|
-
size_t body_head_len;
|
58
|
-
|
59
|
-
ev_io write_watcher;
|
60
|
-
GString *response_buffer;
|
61
|
-
size_t written;
|
62
|
-
|
63
|
-
ev_timer timeout_watcher;
|
64
|
-
unsigned int keep_alive : 1;
|
65
|
-
unsigned int status_written : 1;
|
66
|
-
unsigned int headers_written : 1;
|
67
|
-
unsigned int body_written : 1;
|
68
|
-
|
69
|
-
/* the ENV structure */
|
70
|
-
int env_size;
|
71
|
-
struct ebb_env_item env[EBB_MAX_ENV];
|
72
|
-
};
|
73
|
-
|
74
|
-
/*** Ebb Server ***/
|
75
|
-
|
76
|
-
typedef void (*ebb_request_cb)(ebb_client*, void*);
|
77
|
-
|
78
|
-
ebb_server* ebb_server_alloc(void);
|
79
|
-
void ebb_server_free(ebb_server*);
|
80
|
-
void ebb_server_init( ebb_server *server
|
81
|
-
, struct ev_loop *loop
|
82
|
-
, ebb_request_cb request_cb
|
83
|
-
, void *request_cb_data
|
84
|
-
);
|
85
|
-
int ebb_server_listen_on_fd(ebb_server*, const int sfd);
|
86
|
-
int ebb_server_listen_on_port(ebb_server*, const int port);
|
87
|
-
int ebb_server_listen_on_unix_socket(ebb_server*, const char *socketpath);
|
88
|
-
void ebb_server_unlisten(ebb_server*);
|
89
|
-
int ebb_server_clients_in_use_p(ebb_server*);
|
90
|
-
|
91
|
-
struct ebb_server {
|
92
|
-
EBB_TCP_COMMON
|
93
|
-
char *port;
|
94
|
-
char *socketpath;
|
95
|
-
ev_io request_watcher;
|
96
|
-
ebb_client clients[EBB_MAX_CLIENTS];
|
97
|
-
struct ev_loop *loop;
|
98
|
-
void *request_cb_data;
|
99
|
-
ebb_request_cb request_cb;
|
100
|
-
};
|
101
|
-
|
102
|
-
#endif
|
data/src/ebb_ruby.c
DELETED
@@ -1,306 +0,0 @@
|
|
1
|
-
/* A ruby binding to the ebb web server
|
2
|
-
* Copyright (c) 2008 Ry Dahl. This software is released under the MIT
|
3
|
-
* License. See README file for details.
|
4
|
-
*/
|
5
|
-
#include <ruby.h>
|
6
|
-
#include <rubyio.h>
|
7
|
-
#include <rubysig.h>
|
8
|
-
#include <assert.h>
|
9
|
-
#include <fcntl.h>
|
10
|
-
#include <ebb.h>
|
11
|
-
#include <ev.h>
|
12
|
-
|
13
|
-
static VALUE cClient;
|
14
|
-
static VALUE waiting_clients;
|
15
|
-
|
16
|
-
static VALUE global_fragment;
|
17
|
-
static VALUE global_path_info;
|
18
|
-
static VALUE global_query_string;
|
19
|
-
static VALUE global_request_body;
|
20
|
-
static VALUE global_request_method;
|
21
|
-
static VALUE global_request_path;
|
22
|
-
static VALUE global_request_uri;
|
23
|
-
static VALUE global_server_port;
|
24
|
-
static VALUE global_content_length;
|
25
|
-
static VALUE global_content_type;
|
26
|
-
static VALUE global_http_client_ip;
|
27
|
-
static VALUE global_http_prefix;
|
28
|
-
static VALUE global_http_version;
|
29
|
-
|
30
|
-
|
31
|
-
/* You don't want to run more than one server per Ruby VM. Really
|
32
|
-
* I'm making this explicit by not defining a Ebb::Server class but instead
|
33
|
-
* initializing a single server and single event loop on module load.
|
34
|
-
*/
|
35
|
-
static ebb_server *server;
|
36
|
-
struct ev_loop *loop;
|
37
|
-
struct ev_idle idle_watcher;
|
38
|
-
|
39
|
-
/* Variables with a leading underscore are C-level variables */
|
40
|
-
|
41
|
-
#define ASCII_UPPER(ch) ('a' <= ch && ch <= 'z' ? ch - 'a' + 'A' : ch)
|
42
|
-
#ifndef RSTRING_PTR
|
43
|
-
# define RSTRING_PTR(s) (RSTRING(s)->ptr)
|
44
|
-
# define RSTRING_LEN(s) (RSTRING(s)->len)
|
45
|
-
#endif
|
46
|
-
|
47
|
-
static void attach_idle_watcher()
|
48
|
-
{
|
49
|
-
if(!ev_is_active(&idle_watcher)) {
|
50
|
-
ev_idle_start (loop, &idle_watcher);
|
51
|
-
}
|
52
|
-
}
|
53
|
-
|
54
|
-
|
55
|
-
static void detach_idle_watcher()
|
56
|
-
{
|
57
|
-
ev_idle_stop(loop, &idle_watcher);
|
58
|
-
}
|
59
|
-
|
60
|
-
|
61
|
-
static void request_cb(ebb_client *client, void *data)
|
62
|
-
{
|
63
|
-
VALUE rb_client = Data_Wrap_Struct(cClient, 0, 0, client);
|
64
|
-
|
65
|
-
rb_iv_set(rb_client, "@fd", INT2FIX(client->fd));
|
66
|
-
rb_iv_set(rb_client, "@content_length", INT2FIX(client->parser.content_length));
|
67
|
-
if(client->body_head_len > 0)
|
68
|
-
rb_iv_set(rb_client, "@body_head", rb_str_new(client->body_head, client->body_head_len));
|
69
|
-
|
70
|
-
rb_ary_push(waiting_clients, rb_client);
|
71
|
-
attach_idle_watcher();
|
72
|
-
}
|
73
|
-
|
74
|
-
static VALUE server_listen_on_fd(VALUE _, VALUE sfd)
|
75
|
-
{
|
76
|
-
if(ebb_server_listen_on_fd(server, FIX2INT(sfd)) < 0)
|
77
|
-
rb_sys_fail("Problem listening on FD");
|
78
|
-
return Qnil;
|
79
|
-
}
|
80
|
-
|
81
|
-
static VALUE server_listen_on_port(VALUE _, VALUE port)
|
82
|
-
{
|
83
|
-
if(ebb_server_listen_on_port(server, FIX2INT(port)) < 0)
|
84
|
-
rb_sys_fail("Problem listening on port");
|
85
|
-
return Qnil;
|
86
|
-
}
|
87
|
-
|
88
|
-
static VALUE server_listen_on_unix_socket(VALUE _, VALUE socketfile)
|
89
|
-
{
|
90
|
-
if(ebb_server_listen_on_unix_socket(server, StringValuePtr(socketfile)) < 0)
|
91
|
-
rb_sys_fail("Problem listening on unix socket");
|
92
|
-
return Qnil;
|
93
|
-
}
|
94
|
-
|
95
|
-
|
96
|
-
static struct timeval idle_timeout = { 0, 50000 };
|
97
|
-
|
98
|
-
static void
|
99
|
-
idle_cb (struct ev_loop *loop, struct ev_idle *w, int revents) {
|
100
|
-
/* How to let other Ruby threads run while we're in this blocking C call */
|
101
|
-
|
102
|
-
/* TODO: For Ruby 1.9 I should use rb_thread_blocking_region() instead of
|
103
|
-
* this hacky idle_cb
|
104
|
-
*/
|
105
|
-
|
106
|
-
if(ebb_server_clients_in_use_p(server)) {
|
107
|
-
/* If ruby has control of any clients - that means there are some requests
|
108
|
-
* still being processed inside of threads. We need to allow Ruby some
|
109
|
-
* time to work on these threads so we call rb_thread_schedule()
|
110
|
-
* I don't use rb_thread_select() here because it is very slow.
|
111
|
-
*/
|
112
|
-
rb_thread_schedule();
|
113
|
-
|
114
|
-
} else if(!rb_thread_alone()) {
|
115
|
-
/* If no clients are in use, but there are still other Ruby threads then
|
116
|
-
* some other thread is running in the Ruby VM which is not a request.
|
117
|
-
* This is a sub-optimal situation and we solve it by calling
|
118
|
-
* rb_thread_select() to wait for the server fd to wake up.
|
119
|
-
* One should try to avoid entering this state.
|
120
|
-
*/
|
121
|
-
fd_set server_fd_set;
|
122
|
-
FD_ZERO(&server_fd_set);
|
123
|
-
FD_SET(server->fd, &server_fd_set);
|
124
|
-
rb_thread_select(server->fd+1, &server_fd_set, 0, 0, &idle_timeout);
|
125
|
-
} else {
|
126
|
-
/* Otherwise there are no other threads. We can detach the idle_watcher
|
127
|
-
* and allow the server_process_connections() to block until the
|
128
|
-
* server fd wakes up. Because we don't use rb_thread_select() this
|
129
|
-
* is quite fast.
|
130
|
-
*/
|
131
|
-
detach_idle_watcher();
|
132
|
-
}
|
133
|
-
}
|
134
|
-
|
135
|
-
static VALUE server_process_connections(VALUE _)
|
136
|
-
{
|
137
|
-
TRAP_BEG;
|
138
|
-
ev_loop(loop, EVLOOP_ONESHOT);
|
139
|
-
TRAP_END;
|
140
|
-
return Qnil;
|
141
|
-
}
|
142
|
-
|
143
|
-
|
144
|
-
static VALUE server_unlisten(VALUE _)
|
145
|
-
{
|
146
|
-
ebb_server_unlisten(server);
|
147
|
-
return Qnil;
|
148
|
-
}
|
149
|
-
|
150
|
-
static VALUE server_open(VALUE _)
|
151
|
-
{
|
152
|
-
return server->open ? Qtrue : Qfalse;
|
153
|
-
}
|
154
|
-
|
155
|
-
static VALUE server_waiting_clients(VALUE _)
|
156
|
-
{
|
157
|
-
return waiting_clients;
|
158
|
-
}
|
159
|
-
|
160
|
-
static VALUE env_field(struct ebb_env_item *item)
|
161
|
-
{
|
162
|
-
if(item->field) {
|
163
|
-
VALUE f = rb_str_new(NULL, RSTRING_LEN(global_http_prefix) + item->field_length);
|
164
|
-
memcpy( RSTRING_PTR(f)
|
165
|
-
, RSTRING_PTR(global_http_prefix)
|
166
|
-
, RSTRING_LEN(global_http_prefix)
|
167
|
-
);
|
168
|
-
int i;
|
169
|
-
for(i = 0; i < item->field_length; i++) {
|
170
|
-
char *ch = RSTRING_PTR(f) + RSTRING_LEN(global_http_prefix) + i;
|
171
|
-
*ch = item->field[i] == '-' ? '_' : ASCII_UPPER(item->field[i]);
|
172
|
-
}
|
173
|
-
return f;
|
174
|
-
}
|
175
|
-
switch(item->type) {
|
176
|
-
case MONGREL_CONTENT_LENGTH: return global_content_length;
|
177
|
-
case MONGREL_CONTENT_TYPE: return global_content_type;
|
178
|
-
case MONGREL_FRAGMENT: return global_fragment;
|
179
|
-
case MONGREL_HTTP_VERSION: return global_http_version;
|
180
|
-
case MONGREL_QUERY_STRING: return global_query_string;
|
181
|
-
case MONGREL_REQUEST_METHOD: return global_request_method;
|
182
|
-
case MONGREL_REQUEST_PATH: return global_request_path;
|
183
|
-
case MONGREL_REQUEST_URI: return global_request_uri;
|
184
|
-
}
|
185
|
-
fprintf(stderr, "Unknown environ type: %d", item->type);
|
186
|
-
assert(FALSE);
|
187
|
-
return Qnil;
|
188
|
-
}
|
189
|
-
|
190
|
-
|
191
|
-
static VALUE env_value(struct ebb_env_item *item)
|
192
|
-
{
|
193
|
-
if(item->value_length > 0)
|
194
|
-
return rb_str_new(item->value, item->value_length);
|
195
|
-
else
|
196
|
-
return Qnil;
|
197
|
-
}
|
198
|
-
|
199
|
-
|
200
|
-
static VALUE client_env(VALUE _, VALUE rb_client)
|
201
|
-
{
|
202
|
-
ebb_client *client;
|
203
|
-
VALUE field, value, env = rb_hash_new();
|
204
|
-
int i;
|
205
|
-
struct ebb_env_item *item;
|
206
|
-
|
207
|
-
Data_Get_Struct(rb_client, ebb_client, client);
|
208
|
-
for(i=0; i < client->env_size; i++) {
|
209
|
-
item = &client->env[i];
|
210
|
-
field = env_field(item);
|
211
|
-
value = env_value(item);
|
212
|
-
rb_hash_aset(env, field, value);
|
213
|
-
}
|
214
|
-
|
215
|
-
if(client->server->port)
|
216
|
-
rb_hash_aset(env, global_server_port, rb_str_new2(client->server->port));
|
217
|
-
|
218
|
-
if(client->ip)
|
219
|
-
rb_hash_aset(env, global_http_client_ip, rb_str_new2(client->ip));
|
220
|
-
|
221
|
-
rb_hash_aset(env, global_path_info, rb_hash_aref(env, global_request_path));
|
222
|
-
return env;
|
223
|
-
}
|
224
|
-
|
225
|
-
static VALUE client_write_status(VALUE _, VALUE client, VALUE status, VALUE reason_phrase)
|
226
|
-
{
|
227
|
-
ebb_client *_client;
|
228
|
-
Data_Get_Struct(client, ebb_client, _client);
|
229
|
-
ebb_client_write_status(_client, FIX2INT(status), StringValuePtr(reason_phrase));
|
230
|
-
return Qnil;
|
231
|
-
}
|
232
|
-
|
233
|
-
static VALUE client_write_header(VALUE _, VALUE client, VALUE field, VALUE value)
|
234
|
-
{
|
235
|
-
ebb_client *_client;
|
236
|
-
Data_Get_Struct(client, ebb_client, _client);
|
237
|
-
ebb_client_write_header(_client, StringValuePtr(field), StringValuePtr(value));
|
238
|
-
return Qnil;
|
239
|
-
}
|
240
|
-
|
241
|
-
static VALUE client_write_body(VALUE _, VALUE client, VALUE string)
|
242
|
-
{
|
243
|
-
ebb_client *_client;
|
244
|
-
Data_Get_Struct(client, ebb_client, _client);
|
245
|
-
ebb_client_write_body(_client, RSTRING_PTR(string), RSTRING_LEN(string));
|
246
|
-
return Qnil;
|
247
|
-
}
|
248
|
-
|
249
|
-
|
250
|
-
static VALUE client_release(VALUE _, VALUE rb_client)
|
251
|
-
{
|
252
|
-
ebb_client *client;
|
253
|
-
Data_Get_Struct(rb_client, ebb_client, client);
|
254
|
-
ebb_client_release(client);
|
255
|
-
return Qnil;
|
256
|
-
}
|
257
|
-
|
258
|
-
void Init_ebb_ext()
|
259
|
-
{
|
260
|
-
VALUE mEbb = rb_define_module("Ebb");
|
261
|
-
VALUE mFFI = rb_define_module_under(mEbb, "FFI");
|
262
|
-
|
263
|
-
rb_define_const(mFFI, "VERSION", rb_str_new2(EBB_VERSION));
|
264
|
-
|
265
|
-
/** Defines global strings in the init method. */
|
266
|
-
#define DEF_GLOBAL(N, val) global_##N = rb_obj_freeze(rb_str_new2(val)); rb_global_variable(&global_##N)
|
267
|
-
DEF_GLOBAL(content_length, "CONTENT_LENGTH");
|
268
|
-
DEF_GLOBAL(content_type, "CONTENT_TYPE");
|
269
|
-
DEF_GLOBAL(fragment, "FRAGMENT");
|
270
|
-
DEF_GLOBAL(path_info, "PATH_INFO");
|
271
|
-
DEF_GLOBAL(query_string, "QUERY_STRING");
|
272
|
-
DEF_GLOBAL(request_body, "REQUEST_BODY");
|
273
|
-
DEF_GLOBAL(request_method, "REQUEST_METHOD");
|
274
|
-
DEF_GLOBAL(request_path, "REQUEST_PATH");
|
275
|
-
DEF_GLOBAL(request_uri, "REQUEST_URI");
|
276
|
-
DEF_GLOBAL(server_port, "SERVER_PORT");
|
277
|
-
DEF_GLOBAL(http_client_ip, "HTTP_CLIENT_IP");
|
278
|
-
DEF_GLOBAL(http_prefix, "HTTP_");
|
279
|
-
DEF_GLOBAL(http_version, "HTTP_VERSION");
|
280
|
-
|
281
|
-
rb_define_singleton_method(mFFI, "server_process_connections", server_process_connections, 0);
|
282
|
-
rb_define_singleton_method(mFFI, "server_listen_on_fd", server_listen_on_fd, 1);
|
283
|
-
rb_define_singleton_method(mFFI, "server_listen_on_port", server_listen_on_port, 1);
|
284
|
-
rb_define_singleton_method(mFFI, "server_listen_on_unix_socket", server_listen_on_unix_socket, 1);
|
285
|
-
rb_define_singleton_method(mFFI, "server_unlisten", server_unlisten, 0);
|
286
|
-
rb_define_singleton_method(mFFI, "server_open?", server_open, 0);
|
287
|
-
rb_define_singleton_method(mFFI, "server_waiting_clients", server_waiting_clients, 0);
|
288
|
-
|
289
|
-
cClient = rb_define_class_under(mEbb, "Client", rb_cObject);
|
290
|
-
rb_define_singleton_method(mFFI, "client_write_status", client_write_status, 3);
|
291
|
-
rb_define_singleton_method(mFFI, "client_write_header", client_write_header, 3);
|
292
|
-
rb_define_singleton_method(mFFI, "client_write_body", client_write_body, 2);
|
293
|
-
rb_define_singleton_method(mFFI, "client_env", client_env, 1);
|
294
|
-
rb_define_singleton_method(mFFI, "client_release", client_release, 1);
|
295
|
-
|
296
|
-
/* initialize ebb_server */
|
297
|
-
loop = ev_default_loop (0);
|
298
|
-
|
299
|
-
ev_idle_init (&idle_watcher, idle_cb);
|
300
|
-
attach_idle_watcher();
|
301
|
-
|
302
|
-
server = ebb_server_alloc();
|
303
|
-
waiting_clients = rb_ary_new();
|
304
|
-
rb_iv_set(mFFI, "@waiting_clients", waiting_clients);
|
305
|
-
ebb_server_init(server, loop, request_cb, (void*)waiting_clients);
|
306
|
-
}
|
data/src/parser.c
DELETED
@@ -1,2860 +0,0 @@
|
|
1
|
-
#line 1 "src/parser.rl"
|
2
|
-
/**
|
3
|
-
* Copyright (c) 2005 Zed A. Shaw
|
4
|
-
* You can redistribute it and/or modify it under the same terms as Ruby.
|
5
|
-
*/
|
6
|
-
#include "parser.h"
|
7
|
-
#include <stdio.h>
|
8
|
-
#include <assert.h>
|
9
|
-
#include <stdlib.h>
|
10
|
-
#include <ctype.h>
|
11
|
-
#include <string.h>
|
12
|
-
|
13
|
-
#define TRUE 1
|
14
|
-
#define FALSE 0
|
15
|
-
#define LEN(AT, FPC) (FPC - buffer - parser->AT)
|
16
|
-
#define MARK(M,FPC) (parser->M = (FPC) - buffer)
|
17
|
-
#define PTR_TO(F) (buffer + parser->F)
|
18
|
-
/** machine **/
|
19
|
-
#line 139 "src/parser.rl"
|
20
|
-
|
21
|
-
|
22
|
-
/** Data **/
|
23
|
-
|
24
|
-
#line 25 "src/parser.c"
|
25
|
-
static const int http_parser_start = 1;
|
26
|
-
static const int http_parser_first_final = 118;
|
27
|
-
static const int http_parser_error = 0;
|
28
|
-
|
29
|
-
static const int http_parser_en_main = 1;
|
30
|
-
|
31
|
-
#line 143 "src/parser.rl"
|
32
|
-
|
33
|
-
/* returns TRUE if applied, FALSE if there was an error */
|
34
|
-
static int apply_element(http_parser *parser, int type, const char *begin, const char *end, int max_length)
|
35
|
-
{
|
36
|
-
int len = (int)(end-begin);
|
37
|
-
if(len > max_length) {
|
38
|
-
parser->overflow_error = TRUE;
|
39
|
-
return FALSE;
|
40
|
-
}
|
41
|
-
if(parser->on_element)
|
42
|
-
parser->on_element(parser->data, type, begin, len);
|
43
|
-
return TRUE;
|
44
|
-
}
|
45
|
-
|
46
|
-
static void set_content_length(http_parser *parser, const char *at, int length)
|
47
|
-
{
|
48
|
-
/* atoi_length - why isn't this in the statndard library? i hate c */
|
49
|
-
assert(parser->content_length == 0);
|
50
|
-
int i, mult;
|
51
|
-
for(mult=1, i=length-1; i>=0; i--, mult*=10)
|
52
|
-
parser->content_length += (at[i] - '0') * mult;
|
53
|
-
}
|
54
|
-
|
55
|
-
void http_parser_init(http_parser *parser) {
|
56
|
-
int cs = 0;
|
57
|
-
|
58
|
-
#line 59 "src/parser.c"
|
59
|
-
{
|
60
|
-
cs = http_parser_start;
|
61
|
-
}
|
62
|
-
#line 169 "src/parser.rl"
|
63
|
-
parser->cs = cs;
|
64
|
-
parser->overflow_error = FALSE;
|
65
|
-
parser->body_start = 0;
|
66
|
-
parser->content_length = 0;
|
67
|
-
parser->mark = 0;
|
68
|
-
parser->nread = 0;
|
69
|
-
parser->field_len = 0;
|
70
|
-
parser->field_start = 0;
|
71
|
-
parser->data = NULL;
|
72
|
-
parser->http_field = NULL;
|
73
|
-
}
|
74
|
-
|
75
|
-
|
76
|
-
/** exec **/
|
77
|
-
size_t http_parser_execute(http_parser *parser, const char *buffer, size_t len, size_t off) {
|
78
|
-
const char *p, *pe;
|
79
|
-
int cs = parser->cs;
|
80
|
-
|
81
|
-
assert(off <= len && "offset past end of buffer");
|
82
|
-
|
83
|
-
p = buffer+off;
|
84
|
-
pe = buffer+len;
|
85
|
-
|
86
|
-
/* Ragel 6 does not require this */
|
87
|
-
// assert(*pe == '\0' && "pointer does not end on NUL");
|
88
|
-
assert(pe - p == len - off && "pointers aren't same distance");
|
89
|
-
|
90
|
-
|
91
|
-
#line 92 "src/parser.c"
|
92
|
-
{
|
93
|
-
if ( p == pe )
|
94
|
-
goto _test_eof;
|
95
|
-
switch ( cs )
|
96
|
-
{
|
97
|
-
case 1:
|
98
|
-
switch( (*p) ) {
|
99
|
-
case 36: goto tr0;
|
100
|
-
case 95: goto tr0;
|
101
|
-
}
|
102
|
-
if ( (*p) < 48 ) {
|
103
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
104
|
-
goto tr0;
|
105
|
-
} else if ( (*p) > 57 ) {
|
106
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
107
|
-
goto tr0;
|
108
|
-
} else
|
109
|
-
goto tr0;
|
110
|
-
goto st0;
|
111
|
-
st0:
|
112
|
-
cs = 0;
|
113
|
-
goto _out;
|
114
|
-
tr0:
|
115
|
-
#line 21 "src/parser.rl"
|
116
|
-
{MARK(mark, p); }
|
117
|
-
goto st2;
|
118
|
-
st2:
|
119
|
-
if ( ++p == pe )
|
120
|
-
goto _test_eof2;
|
121
|
-
case 2:
|
122
|
-
#line 123 "src/parser.c"
|
123
|
-
switch( (*p) ) {
|
124
|
-
case 32: goto tr2;
|
125
|
-
case 36: goto st99;
|
126
|
-
case 95: goto st99;
|
127
|
-
}
|
128
|
-
if ( (*p) < 48 ) {
|
129
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
130
|
-
goto st99;
|
131
|
-
} else if ( (*p) > 57 ) {
|
132
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
133
|
-
goto st99;
|
134
|
-
} else
|
135
|
-
goto st99;
|
136
|
-
goto st0;
|
137
|
-
tr2:
|
138
|
-
#line 66 "src/parser.rl"
|
139
|
-
{
|
140
|
-
if(!apply_element(parser, MONGREL_REQUEST_METHOD, PTR_TO(mark), p, 1024))
|
141
|
-
{p++; cs = 3; goto _out;}
|
142
|
-
}
|
143
|
-
goto st3;
|
144
|
-
st3:
|
145
|
-
if ( ++p == pe )
|
146
|
-
goto _test_eof3;
|
147
|
-
case 3:
|
148
|
-
#line 149 "src/parser.c"
|
149
|
-
switch( (*p) ) {
|
150
|
-
case 42: goto tr4;
|
151
|
-
case 43: goto tr5;
|
152
|
-
case 47: goto tr6;
|
153
|
-
case 58: goto tr7;
|
154
|
-
}
|
155
|
-
if ( (*p) < 65 ) {
|
156
|
-
if ( 45 <= (*p) && (*p) <= 57 )
|
157
|
-
goto tr5;
|
158
|
-
} else if ( (*p) > 90 ) {
|
159
|
-
if ( 97 <= (*p) && (*p) <= 122 )
|
160
|
-
goto tr5;
|
161
|
-
} else
|
162
|
-
goto tr5;
|
163
|
-
goto st0;
|
164
|
-
tr4:
|
165
|
-
#line 21 "src/parser.rl"
|
166
|
-
{MARK(mark, p); }
|
167
|
-
goto st4;
|
168
|
-
st4:
|
169
|
-
if ( ++p == pe )
|
170
|
-
goto _test_eof4;
|
171
|
-
case 4:
|
172
|
-
#line 173 "src/parser.c"
|
173
|
-
switch( (*p) ) {
|
174
|
-
case 32: goto tr8;
|
175
|
-
case 35: goto tr9;
|
176
|
-
}
|
177
|
-
goto st0;
|
178
|
-
tr8:
|
179
|
-
#line 71 "src/parser.rl"
|
180
|
-
{
|
181
|
-
if(!apply_element(parser, MONGREL_REQUEST_URI, PTR_TO(mark), p, 12*1024))
|
182
|
-
{p++; cs = 5; goto _out;}
|
183
|
-
}
|
184
|
-
goto st5;
|
185
|
-
tr103:
|
186
|
-
#line 21 "src/parser.rl"
|
187
|
-
{MARK(mark, p); }
|
188
|
-
#line 51 "src/parser.rl"
|
189
|
-
{
|
190
|
-
if(!apply_element(parser, MONGREL_FRAGMENT, PTR_TO(mark), p, 10*1024))
|
191
|
-
{p++; cs = 5; goto _out;}
|
192
|
-
}
|
193
|
-
goto st5;
|
194
|
-
tr106:
|
195
|
-
#line 51 "src/parser.rl"
|
196
|
-
{
|
197
|
-
if(!apply_element(parser, MONGREL_FRAGMENT, PTR_TO(mark), p, 10*1024))
|
198
|
-
{p++; cs = 5; goto _out;}
|
199
|
-
}
|
200
|
-
goto st5;
|
201
|
-
tr114:
|
202
|
-
#line 61 "src/parser.rl"
|
203
|
-
{
|
204
|
-
if(!apply_element(parser, MONGREL_REQUEST_PATH, PTR_TO(mark), p, 1024))
|
205
|
-
{p++; cs = 5; goto _out;}
|
206
|
-
}
|
207
|
-
#line 71 "src/parser.rl"
|
208
|
-
{
|
209
|
-
if(!apply_element(parser, MONGREL_REQUEST_URI, PTR_TO(mark), p, 12*1024))
|
210
|
-
{p++; cs = 5; goto _out;}
|
211
|
-
}
|
212
|
-
goto st5;
|
213
|
-
tr125:
|
214
|
-
#line 76 "src/parser.rl"
|
215
|
-
{MARK(query_start, p); }
|
216
|
-
#line 77 "src/parser.rl"
|
217
|
-
{
|
218
|
-
if(!apply_element(parser, MONGREL_QUERY_STRING, PTR_TO(query_start), p, 10*1024))
|
219
|
-
{p++; cs = 5; goto _out;}
|
220
|
-
}
|
221
|
-
#line 71 "src/parser.rl"
|
222
|
-
{
|
223
|
-
if(!apply_element(parser, MONGREL_REQUEST_URI, PTR_TO(mark), p, 12*1024))
|
224
|
-
{p++; cs = 5; goto _out;}
|
225
|
-
}
|
226
|
-
goto st5;
|
227
|
-
tr129:
|
228
|
-
#line 77 "src/parser.rl"
|
229
|
-
{
|
230
|
-
if(!apply_element(parser, MONGREL_QUERY_STRING, PTR_TO(query_start), p, 10*1024))
|
231
|
-
{p++; cs = 5; goto _out;}
|
232
|
-
}
|
233
|
-
#line 71 "src/parser.rl"
|
234
|
-
{
|
235
|
-
if(!apply_element(parser, MONGREL_REQUEST_URI, PTR_TO(mark), p, 12*1024))
|
236
|
-
{p++; cs = 5; goto _out;}
|
237
|
-
}
|
238
|
-
goto st5;
|
239
|
-
st5:
|
240
|
-
if ( ++p == pe )
|
241
|
-
goto _test_eof5;
|
242
|
-
case 5:
|
243
|
-
#line 244 "src/parser.c"
|
244
|
-
if ( (*p) == 72 )
|
245
|
-
goto tr10;
|
246
|
-
goto st0;
|
247
|
-
tr10:
|
248
|
-
#line 21 "src/parser.rl"
|
249
|
-
{MARK(mark, p); }
|
250
|
-
goto st6;
|
251
|
-
st6:
|
252
|
-
if ( ++p == pe )
|
253
|
-
goto _test_eof6;
|
254
|
-
case 6:
|
255
|
-
#line 256 "src/parser.c"
|
256
|
-
if ( (*p) == 84 )
|
257
|
-
goto st7;
|
258
|
-
goto st0;
|
259
|
-
st7:
|
260
|
-
if ( ++p == pe )
|
261
|
-
goto _test_eof7;
|
262
|
-
case 7:
|
263
|
-
if ( (*p) == 84 )
|
264
|
-
goto st8;
|
265
|
-
goto st0;
|
266
|
-
st8:
|
267
|
-
if ( ++p == pe )
|
268
|
-
goto _test_eof8;
|
269
|
-
case 8:
|
270
|
-
if ( (*p) == 80 )
|
271
|
-
goto st9;
|
272
|
-
goto st0;
|
273
|
-
st9:
|
274
|
-
if ( ++p == pe )
|
275
|
-
goto _test_eof9;
|
276
|
-
case 9:
|
277
|
-
if ( (*p) == 47 )
|
278
|
-
goto st10;
|
279
|
-
goto st0;
|
280
|
-
st10:
|
281
|
-
if ( ++p == pe )
|
282
|
-
goto _test_eof10;
|
283
|
-
case 10:
|
284
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
285
|
-
goto st11;
|
286
|
-
goto st0;
|
287
|
-
st11:
|
288
|
-
if ( ++p == pe )
|
289
|
-
goto _test_eof11;
|
290
|
-
case 11:
|
291
|
-
if ( (*p) == 46 )
|
292
|
-
goto st12;
|
293
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
294
|
-
goto st11;
|
295
|
-
goto st0;
|
296
|
-
st12:
|
297
|
-
if ( ++p == pe )
|
298
|
-
goto _test_eof12;
|
299
|
-
case 12:
|
300
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
301
|
-
goto st13;
|
302
|
-
goto st0;
|
303
|
-
st13:
|
304
|
-
if ( ++p == pe )
|
305
|
-
goto _test_eof13;
|
306
|
-
case 13:
|
307
|
-
if ( (*p) == 13 )
|
308
|
-
goto tr18;
|
309
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
310
|
-
goto st13;
|
311
|
-
goto st0;
|
312
|
-
tr18:
|
313
|
-
#line 56 "src/parser.rl"
|
314
|
-
{
|
315
|
-
if(!apply_element(parser, MONGREL_HTTP_VERSION, PTR_TO(mark), p, 10))
|
316
|
-
{p++; cs = 14; goto _out;}
|
317
|
-
}
|
318
|
-
goto st14;
|
319
|
-
tr28:
|
320
|
-
#line 32 "src/parser.rl"
|
321
|
-
{ MARK(mark, p); }
|
322
|
-
#line 33 "src/parser.rl"
|
323
|
-
{
|
324
|
-
if(LEN(mark, p) > 80 * 1024) { parser->overflow_error = TRUE; {p++; cs = 14; goto _out;} }
|
325
|
-
if(parser->http_field != NULL) {
|
326
|
-
parser->http_field(parser->data, PTR_TO(field_start), parser->field_len, PTR_TO(mark), LEN(mark, p));
|
327
|
-
}
|
328
|
-
}
|
329
|
-
goto st14;
|
330
|
-
tr32:
|
331
|
-
#line 33 "src/parser.rl"
|
332
|
-
{
|
333
|
-
if(LEN(mark, p) > 80 * 1024) { parser->overflow_error = TRUE; {p++; cs = 14; goto _out;} }
|
334
|
-
if(parser->http_field != NULL) {
|
335
|
-
parser->http_field(parser->data, PTR_TO(field_start), parser->field_len, PTR_TO(mark), LEN(mark, p));
|
336
|
-
}
|
337
|
-
}
|
338
|
-
goto st14;
|
339
|
-
tr91:
|
340
|
-
#line 40 "src/parser.rl"
|
341
|
-
{
|
342
|
-
if(!apply_element(parser, MONGREL_CONTENT_LENGTH, PTR_TO(mark), p, 20))
|
343
|
-
{p++; cs = 14; goto _out;}
|
344
|
-
set_content_length(parser, PTR_TO(mark), LEN(mark, p));
|
345
|
-
}
|
346
|
-
goto st14;
|
347
|
-
tr98:
|
348
|
-
#line 21 "src/parser.rl"
|
349
|
-
{MARK(mark, p); }
|
350
|
-
#line 46 "src/parser.rl"
|
351
|
-
{
|
352
|
-
if(!apply_element(parser, MONGREL_CONTENT_TYPE, PTR_TO(mark), p, 10*1024))
|
353
|
-
{p++; cs = 14; goto _out;}
|
354
|
-
}
|
355
|
-
goto st14;
|
356
|
-
tr101:
|
357
|
-
#line 46 "src/parser.rl"
|
358
|
-
{
|
359
|
-
if(!apply_element(parser, MONGREL_CONTENT_TYPE, PTR_TO(mark), p, 10*1024))
|
360
|
-
{p++; cs = 14; goto _out;}
|
361
|
-
}
|
362
|
-
goto st14;
|
363
|
-
st14:
|
364
|
-
if ( ++p == pe )
|
365
|
-
goto _test_eof14;
|
366
|
-
case 14:
|
367
|
-
#line 368 "src/parser.c"
|
368
|
-
if ( (*p) == 10 )
|
369
|
-
goto st15;
|
370
|
-
goto st0;
|
371
|
-
st15:
|
372
|
-
if ( ++p == pe )
|
373
|
-
goto _test_eof15;
|
374
|
-
case 15:
|
375
|
-
switch( (*p) ) {
|
376
|
-
case 13: goto st16;
|
377
|
-
case 33: goto tr21;
|
378
|
-
case 67: goto tr22;
|
379
|
-
case 99: goto tr22;
|
380
|
-
case 124: goto tr21;
|
381
|
-
case 126: goto tr21;
|
382
|
-
}
|
383
|
-
if ( (*p) < 45 ) {
|
384
|
-
if ( (*p) > 39 ) {
|
385
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
386
|
-
goto tr21;
|
387
|
-
} else if ( (*p) >= 35 )
|
388
|
-
goto tr21;
|
389
|
-
} else if ( (*p) > 46 ) {
|
390
|
-
if ( (*p) < 65 ) {
|
391
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
392
|
-
goto tr21;
|
393
|
-
} else if ( (*p) > 90 ) {
|
394
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
395
|
-
goto tr21;
|
396
|
-
} else
|
397
|
-
goto tr21;
|
398
|
-
} else
|
399
|
-
goto tr21;
|
400
|
-
goto st0;
|
401
|
-
st16:
|
402
|
-
if ( ++p == pe )
|
403
|
-
goto _test_eof16;
|
404
|
-
case 16:
|
405
|
-
if ( (*p) == 10 )
|
406
|
-
goto tr23;
|
407
|
-
goto st0;
|
408
|
-
tr23:
|
409
|
-
#line 82 "src/parser.rl"
|
410
|
-
{
|
411
|
-
parser->body_start = p - buffer + 1;
|
412
|
-
{p++; cs = 118; goto _out;}
|
413
|
-
}
|
414
|
-
goto st118;
|
415
|
-
st118:
|
416
|
-
if ( ++p == pe )
|
417
|
-
goto _test_eof118;
|
418
|
-
case 118:
|
419
|
-
#line 420 "src/parser.c"
|
420
|
-
goto st0;
|
421
|
-
tr21:
|
422
|
-
#line 23 "src/parser.rl"
|
423
|
-
{ MARK(field_start, p); }
|
424
|
-
goto st17;
|
425
|
-
st17:
|
426
|
-
if ( ++p == pe )
|
427
|
-
goto _test_eof17;
|
428
|
-
case 17:
|
429
|
-
#line 430 "src/parser.c"
|
430
|
-
switch( (*p) ) {
|
431
|
-
case 33: goto st17;
|
432
|
-
case 58: goto tr25;
|
433
|
-
case 67: goto st40;
|
434
|
-
case 99: goto st40;
|
435
|
-
case 124: goto st17;
|
436
|
-
case 126: goto st17;
|
437
|
-
}
|
438
|
-
if ( (*p) < 45 ) {
|
439
|
-
if ( (*p) > 39 ) {
|
440
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
441
|
-
goto st17;
|
442
|
-
} else if ( (*p) >= 35 )
|
443
|
-
goto st17;
|
444
|
-
} else if ( (*p) > 46 ) {
|
445
|
-
if ( (*p) < 65 ) {
|
446
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
447
|
-
goto st17;
|
448
|
-
} else if ( (*p) > 90 ) {
|
449
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
450
|
-
goto st17;
|
451
|
-
} else
|
452
|
-
goto st17;
|
453
|
-
} else
|
454
|
-
goto st17;
|
455
|
-
goto st0;
|
456
|
-
tr25:
|
457
|
-
#line 24 "src/parser.rl"
|
458
|
-
{
|
459
|
-
parser->field_len = LEN(field_start, p);
|
460
|
-
if(parser->field_len > 256) {
|
461
|
-
parser->overflow_error = TRUE;
|
462
|
-
{p++; cs = 18; goto _out;}
|
463
|
-
}
|
464
|
-
}
|
465
|
-
goto st18;
|
466
|
-
tr29:
|
467
|
-
#line 32 "src/parser.rl"
|
468
|
-
{ MARK(mark, p); }
|
469
|
-
goto st18;
|
470
|
-
st18:
|
471
|
-
if ( ++p == pe )
|
472
|
-
goto _test_eof18;
|
473
|
-
case 18:
|
474
|
-
#line 475 "src/parser.c"
|
475
|
-
switch( (*p) ) {
|
476
|
-
case 13: goto tr28;
|
477
|
-
case 32: goto tr29;
|
478
|
-
case 67: goto tr30;
|
479
|
-
case 99: goto tr30;
|
480
|
-
}
|
481
|
-
goto tr27;
|
482
|
-
tr27:
|
483
|
-
#line 32 "src/parser.rl"
|
484
|
-
{ MARK(mark, p); }
|
485
|
-
goto st19;
|
486
|
-
st19:
|
487
|
-
if ( ++p == pe )
|
488
|
-
goto _test_eof19;
|
489
|
-
case 19:
|
490
|
-
#line 491 "src/parser.c"
|
491
|
-
switch( (*p) ) {
|
492
|
-
case 13: goto tr32;
|
493
|
-
case 67: goto st20;
|
494
|
-
case 99: goto st20;
|
495
|
-
}
|
496
|
-
goto st19;
|
497
|
-
tr30:
|
498
|
-
#line 32 "src/parser.rl"
|
499
|
-
{ MARK(mark, p); }
|
500
|
-
goto st20;
|
501
|
-
st20:
|
502
|
-
if ( ++p == pe )
|
503
|
-
goto _test_eof20;
|
504
|
-
case 20:
|
505
|
-
#line 506 "src/parser.c"
|
506
|
-
switch( (*p) ) {
|
507
|
-
case 13: goto tr32;
|
508
|
-
case 67: goto st20;
|
509
|
-
case 79: goto st21;
|
510
|
-
case 99: goto st20;
|
511
|
-
case 111: goto st21;
|
512
|
-
}
|
513
|
-
goto st19;
|
514
|
-
st21:
|
515
|
-
if ( ++p == pe )
|
516
|
-
goto _test_eof21;
|
517
|
-
case 21:
|
518
|
-
switch( (*p) ) {
|
519
|
-
case 13: goto tr32;
|
520
|
-
case 67: goto st20;
|
521
|
-
case 78: goto st22;
|
522
|
-
case 99: goto st20;
|
523
|
-
case 110: goto st22;
|
524
|
-
}
|
525
|
-
goto st19;
|
526
|
-
st22:
|
527
|
-
if ( ++p == pe )
|
528
|
-
goto _test_eof22;
|
529
|
-
case 22:
|
530
|
-
switch( (*p) ) {
|
531
|
-
case 13: goto tr32;
|
532
|
-
case 67: goto st20;
|
533
|
-
case 84: goto st23;
|
534
|
-
case 99: goto st20;
|
535
|
-
case 116: goto st23;
|
536
|
-
}
|
537
|
-
goto st19;
|
538
|
-
st23:
|
539
|
-
if ( ++p == pe )
|
540
|
-
goto _test_eof23;
|
541
|
-
case 23:
|
542
|
-
switch( (*p) ) {
|
543
|
-
case 13: goto tr32;
|
544
|
-
case 67: goto st20;
|
545
|
-
case 69: goto st24;
|
546
|
-
case 99: goto st20;
|
547
|
-
case 101: goto st24;
|
548
|
-
}
|
549
|
-
goto st19;
|
550
|
-
st24:
|
551
|
-
if ( ++p == pe )
|
552
|
-
goto _test_eof24;
|
553
|
-
case 24:
|
554
|
-
switch( (*p) ) {
|
555
|
-
case 13: goto tr32;
|
556
|
-
case 67: goto st20;
|
557
|
-
case 78: goto st25;
|
558
|
-
case 99: goto st20;
|
559
|
-
case 110: goto st25;
|
560
|
-
}
|
561
|
-
goto st19;
|
562
|
-
st25:
|
563
|
-
if ( ++p == pe )
|
564
|
-
goto _test_eof25;
|
565
|
-
case 25:
|
566
|
-
switch( (*p) ) {
|
567
|
-
case 13: goto tr32;
|
568
|
-
case 67: goto st20;
|
569
|
-
case 84: goto st26;
|
570
|
-
case 99: goto st20;
|
571
|
-
case 116: goto st26;
|
572
|
-
}
|
573
|
-
goto st19;
|
574
|
-
st26:
|
575
|
-
if ( ++p == pe )
|
576
|
-
goto _test_eof26;
|
577
|
-
case 26:
|
578
|
-
switch( (*p) ) {
|
579
|
-
case 13: goto tr32;
|
580
|
-
case 45: goto st27;
|
581
|
-
case 67: goto st20;
|
582
|
-
case 99: goto st20;
|
583
|
-
}
|
584
|
-
goto st19;
|
585
|
-
st27:
|
586
|
-
if ( ++p == pe )
|
587
|
-
goto _test_eof27;
|
588
|
-
case 27:
|
589
|
-
switch( (*p) ) {
|
590
|
-
case 13: goto tr32;
|
591
|
-
case 67: goto st20;
|
592
|
-
case 76: goto st28;
|
593
|
-
case 84: goto st36;
|
594
|
-
case 99: goto st20;
|
595
|
-
case 108: goto st28;
|
596
|
-
case 116: goto st36;
|
597
|
-
}
|
598
|
-
goto st19;
|
599
|
-
st28:
|
600
|
-
if ( ++p == pe )
|
601
|
-
goto _test_eof28;
|
602
|
-
case 28:
|
603
|
-
switch( (*p) ) {
|
604
|
-
case 13: goto tr32;
|
605
|
-
case 67: goto st20;
|
606
|
-
case 69: goto st29;
|
607
|
-
case 99: goto st20;
|
608
|
-
case 101: goto st29;
|
609
|
-
}
|
610
|
-
goto st19;
|
611
|
-
st29:
|
612
|
-
if ( ++p == pe )
|
613
|
-
goto _test_eof29;
|
614
|
-
case 29:
|
615
|
-
switch( (*p) ) {
|
616
|
-
case 13: goto tr32;
|
617
|
-
case 67: goto st20;
|
618
|
-
case 78: goto st30;
|
619
|
-
case 99: goto st20;
|
620
|
-
case 110: goto st30;
|
621
|
-
}
|
622
|
-
goto st19;
|
623
|
-
st30:
|
624
|
-
if ( ++p == pe )
|
625
|
-
goto _test_eof30;
|
626
|
-
case 30:
|
627
|
-
switch( (*p) ) {
|
628
|
-
case 13: goto tr32;
|
629
|
-
case 67: goto st20;
|
630
|
-
case 71: goto st31;
|
631
|
-
case 99: goto st20;
|
632
|
-
case 103: goto st31;
|
633
|
-
}
|
634
|
-
goto st19;
|
635
|
-
st31:
|
636
|
-
if ( ++p == pe )
|
637
|
-
goto _test_eof31;
|
638
|
-
case 31:
|
639
|
-
switch( (*p) ) {
|
640
|
-
case 13: goto tr32;
|
641
|
-
case 67: goto st20;
|
642
|
-
case 84: goto st32;
|
643
|
-
case 99: goto st20;
|
644
|
-
case 116: goto st32;
|
645
|
-
}
|
646
|
-
goto st19;
|
647
|
-
st32:
|
648
|
-
if ( ++p == pe )
|
649
|
-
goto _test_eof32;
|
650
|
-
case 32:
|
651
|
-
switch( (*p) ) {
|
652
|
-
case 13: goto tr32;
|
653
|
-
case 67: goto st20;
|
654
|
-
case 72: goto st33;
|
655
|
-
case 99: goto st20;
|
656
|
-
case 104: goto st33;
|
657
|
-
}
|
658
|
-
goto st19;
|
659
|
-
st33:
|
660
|
-
if ( ++p == pe )
|
661
|
-
goto _test_eof33;
|
662
|
-
case 33:
|
663
|
-
switch( (*p) ) {
|
664
|
-
case 13: goto tr32;
|
665
|
-
case 58: goto st34;
|
666
|
-
case 67: goto st20;
|
667
|
-
case 99: goto st20;
|
668
|
-
}
|
669
|
-
goto st19;
|
670
|
-
st34:
|
671
|
-
if ( ++p == pe )
|
672
|
-
goto _test_eof34;
|
673
|
-
case 34:
|
674
|
-
switch( (*p) ) {
|
675
|
-
case 13: goto tr32;
|
676
|
-
case 32: goto st34;
|
677
|
-
case 67: goto st20;
|
678
|
-
case 99: goto st20;
|
679
|
-
}
|
680
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
681
|
-
goto tr49;
|
682
|
-
goto st19;
|
683
|
-
tr49:
|
684
|
-
#line 21 "src/parser.rl"
|
685
|
-
{MARK(mark, p); }
|
686
|
-
goto st35;
|
687
|
-
tr70:
|
688
|
-
#line 32 "src/parser.rl"
|
689
|
-
{ MARK(mark, p); }
|
690
|
-
#line 21 "src/parser.rl"
|
691
|
-
{MARK(mark, p); }
|
692
|
-
goto st35;
|
693
|
-
st35:
|
694
|
-
if ( ++p == pe )
|
695
|
-
goto _test_eof35;
|
696
|
-
case 35:
|
697
|
-
#line 698 "src/parser.c"
|
698
|
-
switch( (*p) ) {
|
699
|
-
case 13: goto st0;
|
700
|
-
case 67: goto st20;
|
701
|
-
case 99: goto st20;
|
702
|
-
}
|
703
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
704
|
-
goto st35;
|
705
|
-
goto st19;
|
706
|
-
st36:
|
707
|
-
if ( ++p == pe )
|
708
|
-
goto _test_eof36;
|
709
|
-
case 36:
|
710
|
-
switch( (*p) ) {
|
711
|
-
case 13: goto tr32;
|
712
|
-
case 67: goto st20;
|
713
|
-
case 89: goto st37;
|
714
|
-
case 99: goto st20;
|
715
|
-
case 121: goto st37;
|
716
|
-
}
|
717
|
-
goto st19;
|
718
|
-
st37:
|
719
|
-
if ( ++p == pe )
|
720
|
-
goto _test_eof37;
|
721
|
-
case 37:
|
722
|
-
switch( (*p) ) {
|
723
|
-
case 13: goto tr32;
|
724
|
-
case 67: goto st20;
|
725
|
-
case 80: goto st38;
|
726
|
-
case 99: goto st20;
|
727
|
-
case 112: goto st38;
|
728
|
-
}
|
729
|
-
goto st19;
|
730
|
-
st38:
|
731
|
-
if ( ++p == pe )
|
732
|
-
goto _test_eof38;
|
733
|
-
case 38:
|
734
|
-
switch( (*p) ) {
|
735
|
-
case 13: goto tr32;
|
736
|
-
case 67: goto st20;
|
737
|
-
case 69: goto st39;
|
738
|
-
case 99: goto st20;
|
739
|
-
case 101: goto st39;
|
740
|
-
}
|
741
|
-
goto st19;
|
742
|
-
st39:
|
743
|
-
if ( ++p == pe )
|
744
|
-
goto _test_eof39;
|
745
|
-
case 39:
|
746
|
-
switch( (*p) ) {
|
747
|
-
case 13: goto tr32;
|
748
|
-
case 58: goto st0;
|
749
|
-
case 67: goto st20;
|
750
|
-
case 99: goto st20;
|
751
|
-
}
|
752
|
-
goto st19;
|
753
|
-
st40:
|
754
|
-
if ( ++p == pe )
|
755
|
-
goto _test_eof40;
|
756
|
-
case 40:
|
757
|
-
switch( (*p) ) {
|
758
|
-
case 33: goto st17;
|
759
|
-
case 58: goto tr25;
|
760
|
-
case 67: goto st40;
|
761
|
-
case 79: goto st41;
|
762
|
-
case 99: goto st40;
|
763
|
-
case 111: goto st41;
|
764
|
-
case 124: goto st17;
|
765
|
-
case 126: goto st17;
|
766
|
-
}
|
767
|
-
if ( (*p) < 45 ) {
|
768
|
-
if ( (*p) > 39 ) {
|
769
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
770
|
-
goto st17;
|
771
|
-
} else if ( (*p) >= 35 )
|
772
|
-
goto st17;
|
773
|
-
} else if ( (*p) > 46 ) {
|
774
|
-
if ( (*p) < 65 ) {
|
775
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
776
|
-
goto st17;
|
777
|
-
} else if ( (*p) > 90 ) {
|
778
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
779
|
-
goto st17;
|
780
|
-
} else
|
781
|
-
goto st17;
|
782
|
-
} else
|
783
|
-
goto st17;
|
784
|
-
goto st0;
|
785
|
-
st41:
|
786
|
-
if ( ++p == pe )
|
787
|
-
goto _test_eof41;
|
788
|
-
case 41:
|
789
|
-
switch( (*p) ) {
|
790
|
-
case 33: goto st17;
|
791
|
-
case 58: goto tr25;
|
792
|
-
case 67: goto st40;
|
793
|
-
case 78: goto st42;
|
794
|
-
case 99: goto st40;
|
795
|
-
case 110: goto st42;
|
796
|
-
case 124: goto st17;
|
797
|
-
case 126: goto st17;
|
798
|
-
}
|
799
|
-
if ( (*p) < 45 ) {
|
800
|
-
if ( (*p) > 39 ) {
|
801
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
802
|
-
goto st17;
|
803
|
-
} else if ( (*p) >= 35 )
|
804
|
-
goto st17;
|
805
|
-
} else if ( (*p) > 46 ) {
|
806
|
-
if ( (*p) < 65 ) {
|
807
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
808
|
-
goto st17;
|
809
|
-
} else if ( (*p) > 90 ) {
|
810
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
811
|
-
goto st17;
|
812
|
-
} else
|
813
|
-
goto st17;
|
814
|
-
} else
|
815
|
-
goto st17;
|
816
|
-
goto st0;
|
817
|
-
st42:
|
818
|
-
if ( ++p == pe )
|
819
|
-
goto _test_eof42;
|
820
|
-
case 42:
|
821
|
-
switch( (*p) ) {
|
822
|
-
case 33: goto st17;
|
823
|
-
case 58: goto tr25;
|
824
|
-
case 67: goto st40;
|
825
|
-
case 84: goto st43;
|
826
|
-
case 99: goto st40;
|
827
|
-
case 116: goto st43;
|
828
|
-
case 124: goto st17;
|
829
|
-
case 126: goto st17;
|
830
|
-
}
|
831
|
-
if ( (*p) < 45 ) {
|
832
|
-
if ( (*p) > 39 ) {
|
833
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
834
|
-
goto st17;
|
835
|
-
} else if ( (*p) >= 35 )
|
836
|
-
goto st17;
|
837
|
-
} else if ( (*p) > 46 ) {
|
838
|
-
if ( (*p) < 65 ) {
|
839
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
840
|
-
goto st17;
|
841
|
-
} else if ( (*p) > 90 ) {
|
842
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
843
|
-
goto st17;
|
844
|
-
} else
|
845
|
-
goto st17;
|
846
|
-
} else
|
847
|
-
goto st17;
|
848
|
-
goto st0;
|
849
|
-
st43:
|
850
|
-
if ( ++p == pe )
|
851
|
-
goto _test_eof43;
|
852
|
-
case 43:
|
853
|
-
switch( (*p) ) {
|
854
|
-
case 33: goto st17;
|
855
|
-
case 58: goto tr25;
|
856
|
-
case 67: goto st40;
|
857
|
-
case 69: goto st44;
|
858
|
-
case 99: goto st40;
|
859
|
-
case 101: goto st44;
|
860
|
-
case 124: goto st17;
|
861
|
-
case 126: goto st17;
|
862
|
-
}
|
863
|
-
if ( (*p) < 45 ) {
|
864
|
-
if ( (*p) > 39 ) {
|
865
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
866
|
-
goto st17;
|
867
|
-
} else if ( (*p) >= 35 )
|
868
|
-
goto st17;
|
869
|
-
} else if ( (*p) > 46 ) {
|
870
|
-
if ( (*p) < 65 ) {
|
871
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
872
|
-
goto st17;
|
873
|
-
} else if ( (*p) > 90 ) {
|
874
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
875
|
-
goto st17;
|
876
|
-
} else
|
877
|
-
goto st17;
|
878
|
-
} else
|
879
|
-
goto st17;
|
880
|
-
goto st0;
|
881
|
-
st44:
|
882
|
-
if ( ++p == pe )
|
883
|
-
goto _test_eof44;
|
884
|
-
case 44:
|
885
|
-
switch( (*p) ) {
|
886
|
-
case 33: goto st17;
|
887
|
-
case 58: goto tr25;
|
888
|
-
case 67: goto st40;
|
889
|
-
case 78: goto st45;
|
890
|
-
case 99: goto st40;
|
891
|
-
case 110: goto st45;
|
892
|
-
case 124: goto st17;
|
893
|
-
case 126: goto st17;
|
894
|
-
}
|
895
|
-
if ( (*p) < 45 ) {
|
896
|
-
if ( (*p) > 39 ) {
|
897
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
898
|
-
goto st17;
|
899
|
-
} else if ( (*p) >= 35 )
|
900
|
-
goto st17;
|
901
|
-
} else if ( (*p) > 46 ) {
|
902
|
-
if ( (*p) < 65 ) {
|
903
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
904
|
-
goto st17;
|
905
|
-
} else if ( (*p) > 90 ) {
|
906
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
907
|
-
goto st17;
|
908
|
-
} else
|
909
|
-
goto st17;
|
910
|
-
} else
|
911
|
-
goto st17;
|
912
|
-
goto st0;
|
913
|
-
st45:
|
914
|
-
if ( ++p == pe )
|
915
|
-
goto _test_eof45;
|
916
|
-
case 45:
|
917
|
-
switch( (*p) ) {
|
918
|
-
case 33: goto st17;
|
919
|
-
case 58: goto tr25;
|
920
|
-
case 67: goto st40;
|
921
|
-
case 84: goto st46;
|
922
|
-
case 99: goto st40;
|
923
|
-
case 116: goto st46;
|
924
|
-
case 124: goto st17;
|
925
|
-
case 126: goto st17;
|
926
|
-
}
|
927
|
-
if ( (*p) < 45 ) {
|
928
|
-
if ( (*p) > 39 ) {
|
929
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
930
|
-
goto st17;
|
931
|
-
} else if ( (*p) >= 35 )
|
932
|
-
goto st17;
|
933
|
-
} else if ( (*p) > 46 ) {
|
934
|
-
if ( (*p) < 65 ) {
|
935
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
936
|
-
goto st17;
|
937
|
-
} else if ( (*p) > 90 ) {
|
938
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
939
|
-
goto st17;
|
940
|
-
} else
|
941
|
-
goto st17;
|
942
|
-
} else
|
943
|
-
goto st17;
|
944
|
-
goto st0;
|
945
|
-
st46:
|
946
|
-
if ( ++p == pe )
|
947
|
-
goto _test_eof46;
|
948
|
-
case 46:
|
949
|
-
switch( (*p) ) {
|
950
|
-
case 33: goto st17;
|
951
|
-
case 45: goto st47;
|
952
|
-
case 46: goto st17;
|
953
|
-
case 58: goto tr25;
|
954
|
-
case 67: goto st40;
|
955
|
-
case 99: goto st40;
|
956
|
-
case 124: goto st17;
|
957
|
-
case 126: goto st17;
|
958
|
-
}
|
959
|
-
if ( (*p) < 48 ) {
|
960
|
-
if ( (*p) > 39 ) {
|
961
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
962
|
-
goto st17;
|
963
|
-
} else if ( (*p) >= 35 )
|
964
|
-
goto st17;
|
965
|
-
} else if ( (*p) > 57 ) {
|
966
|
-
if ( (*p) > 90 ) {
|
967
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
968
|
-
goto st17;
|
969
|
-
} else if ( (*p) >= 65 )
|
970
|
-
goto st17;
|
971
|
-
} else
|
972
|
-
goto st17;
|
973
|
-
goto st0;
|
974
|
-
st47:
|
975
|
-
if ( ++p == pe )
|
976
|
-
goto _test_eof47;
|
977
|
-
case 47:
|
978
|
-
switch( (*p) ) {
|
979
|
-
case 33: goto st17;
|
980
|
-
case 58: goto tr25;
|
981
|
-
case 67: goto st40;
|
982
|
-
case 76: goto st48;
|
983
|
-
case 84: goto st55;
|
984
|
-
case 99: goto st40;
|
985
|
-
case 108: goto st48;
|
986
|
-
case 116: goto st55;
|
987
|
-
case 124: goto st17;
|
988
|
-
case 126: goto st17;
|
989
|
-
}
|
990
|
-
if ( (*p) < 45 ) {
|
991
|
-
if ( (*p) > 39 ) {
|
992
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
993
|
-
goto st17;
|
994
|
-
} else if ( (*p) >= 35 )
|
995
|
-
goto st17;
|
996
|
-
} else if ( (*p) > 46 ) {
|
997
|
-
if ( (*p) < 65 ) {
|
998
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
999
|
-
goto st17;
|
1000
|
-
} else if ( (*p) > 90 ) {
|
1001
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1002
|
-
goto st17;
|
1003
|
-
} else
|
1004
|
-
goto st17;
|
1005
|
-
} else
|
1006
|
-
goto st17;
|
1007
|
-
goto st0;
|
1008
|
-
st48:
|
1009
|
-
if ( ++p == pe )
|
1010
|
-
goto _test_eof48;
|
1011
|
-
case 48:
|
1012
|
-
switch( (*p) ) {
|
1013
|
-
case 33: goto st17;
|
1014
|
-
case 58: goto tr25;
|
1015
|
-
case 67: goto st40;
|
1016
|
-
case 69: goto st49;
|
1017
|
-
case 99: goto st40;
|
1018
|
-
case 101: goto st49;
|
1019
|
-
case 124: goto st17;
|
1020
|
-
case 126: goto st17;
|
1021
|
-
}
|
1022
|
-
if ( (*p) < 45 ) {
|
1023
|
-
if ( (*p) > 39 ) {
|
1024
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1025
|
-
goto st17;
|
1026
|
-
} else if ( (*p) >= 35 )
|
1027
|
-
goto st17;
|
1028
|
-
} else if ( (*p) > 46 ) {
|
1029
|
-
if ( (*p) < 65 ) {
|
1030
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1031
|
-
goto st17;
|
1032
|
-
} else if ( (*p) > 90 ) {
|
1033
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1034
|
-
goto st17;
|
1035
|
-
} else
|
1036
|
-
goto st17;
|
1037
|
-
} else
|
1038
|
-
goto st17;
|
1039
|
-
goto st0;
|
1040
|
-
st49:
|
1041
|
-
if ( ++p == pe )
|
1042
|
-
goto _test_eof49;
|
1043
|
-
case 49:
|
1044
|
-
switch( (*p) ) {
|
1045
|
-
case 33: goto st17;
|
1046
|
-
case 58: goto tr25;
|
1047
|
-
case 67: goto st40;
|
1048
|
-
case 78: goto st50;
|
1049
|
-
case 99: goto st40;
|
1050
|
-
case 110: goto st50;
|
1051
|
-
case 124: goto st17;
|
1052
|
-
case 126: goto st17;
|
1053
|
-
}
|
1054
|
-
if ( (*p) < 45 ) {
|
1055
|
-
if ( (*p) > 39 ) {
|
1056
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1057
|
-
goto st17;
|
1058
|
-
} else if ( (*p) >= 35 )
|
1059
|
-
goto st17;
|
1060
|
-
} else if ( (*p) > 46 ) {
|
1061
|
-
if ( (*p) < 65 ) {
|
1062
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1063
|
-
goto st17;
|
1064
|
-
} else if ( (*p) > 90 ) {
|
1065
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1066
|
-
goto st17;
|
1067
|
-
} else
|
1068
|
-
goto st17;
|
1069
|
-
} else
|
1070
|
-
goto st17;
|
1071
|
-
goto st0;
|
1072
|
-
st50:
|
1073
|
-
if ( ++p == pe )
|
1074
|
-
goto _test_eof50;
|
1075
|
-
case 50:
|
1076
|
-
switch( (*p) ) {
|
1077
|
-
case 33: goto st17;
|
1078
|
-
case 58: goto tr25;
|
1079
|
-
case 67: goto st40;
|
1080
|
-
case 71: goto st51;
|
1081
|
-
case 99: goto st40;
|
1082
|
-
case 103: goto st51;
|
1083
|
-
case 124: goto st17;
|
1084
|
-
case 126: goto st17;
|
1085
|
-
}
|
1086
|
-
if ( (*p) < 45 ) {
|
1087
|
-
if ( (*p) > 39 ) {
|
1088
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1089
|
-
goto st17;
|
1090
|
-
} else if ( (*p) >= 35 )
|
1091
|
-
goto st17;
|
1092
|
-
} else if ( (*p) > 46 ) {
|
1093
|
-
if ( (*p) < 65 ) {
|
1094
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1095
|
-
goto st17;
|
1096
|
-
} else if ( (*p) > 90 ) {
|
1097
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1098
|
-
goto st17;
|
1099
|
-
} else
|
1100
|
-
goto st17;
|
1101
|
-
} else
|
1102
|
-
goto st17;
|
1103
|
-
goto st0;
|
1104
|
-
st51:
|
1105
|
-
if ( ++p == pe )
|
1106
|
-
goto _test_eof51;
|
1107
|
-
case 51:
|
1108
|
-
switch( (*p) ) {
|
1109
|
-
case 33: goto st17;
|
1110
|
-
case 58: goto tr25;
|
1111
|
-
case 67: goto st40;
|
1112
|
-
case 84: goto st52;
|
1113
|
-
case 99: goto st40;
|
1114
|
-
case 116: goto st52;
|
1115
|
-
case 124: goto st17;
|
1116
|
-
case 126: goto st17;
|
1117
|
-
}
|
1118
|
-
if ( (*p) < 45 ) {
|
1119
|
-
if ( (*p) > 39 ) {
|
1120
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1121
|
-
goto st17;
|
1122
|
-
} else if ( (*p) >= 35 )
|
1123
|
-
goto st17;
|
1124
|
-
} else if ( (*p) > 46 ) {
|
1125
|
-
if ( (*p) < 65 ) {
|
1126
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1127
|
-
goto st17;
|
1128
|
-
} else if ( (*p) > 90 ) {
|
1129
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1130
|
-
goto st17;
|
1131
|
-
} else
|
1132
|
-
goto st17;
|
1133
|
-
} else
|
1134
|
-
goto st17;
|
1135
|
-
goto st0;
|
1136
|
-
st52:
|
1137
|
-
if ( ++p == pe )
|
1138
|
-
goto _test_eof52;
|
1139
|
-
case 52:
|
1140
|
-
switch( (*p) ) {
|
1141
|
-
case 33: goto st17;
|
1142
|
-
case 58: goto tr25;
|
1143
|
-
case 67: goto st40;
|
1144
|
-
case 72: goto st53;
|
1145
|
-
case 99: goto st40;
|
1146
|
-
case 104: goto st53;
|
1147
|
-
case 124: goto st17;
|
1148
|
-
case 126: goto st17;
|
1149
|
-
}
|
1150
|
-
if ( (*p) < 45 ) {
|
1151
|
-
if ( (*p) > 39 ) {
|
1152
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1153
|
-
goto st17;
|
1154
|
-
} else if ( (*p) >= 35 )
|
1155
|
-
goto st17;
|
1156
|
-
} else if ( (*p) > 46 ) {
|
1157
|
-
if ( (*p) < 65 ) {
|
1158
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1159
|
-
goto st17;
|
1160
|
-
} else if ( (*p) > 90 ) {
|
1161
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1162
|
-
goto st17;
|
1163
|
-
} else
|
1164
|
-
goto st17;
|
1165
|
-
} else
|
1166
|
-
goto st17;
|
1167
|
-
goto st0;
|
1168
|
-
st53:
|
1169
|
-
if ( ++p == pe )
|
1170
|
-
goto _test_eof53;
|
1171
|
-
case 53:
|
1172
|
-
switch( (*p) ) {
|
1173
|
-
case 33: goto st17;
|
1174
|
-
case 58: goto tr68;
|
1175
|
-
case 67: goto st40;
|
1176
|
-
case 99: goto st40;
|
1177
|
-
case 124: goto st17;
|
1178
|
-
case 126: goto st17;
|
1179
|
-
}
|
1180
|
-
if ( (*p) < 45 ) {
|
1181
|
-
if ( (*p) > 39 ) {
|
1182
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1183
|
-
goto st17;
|
1184
|
-
} else if ( (*p) >= 35 )
|
1185
|
-
goto st17;
|
1186
|
-
} else if ( (*p) > 46 ) {
|
1187
|
-
if ( (*p) < 65 ) {
|
1188
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1189
|
-
goto st17;
|
1190
|
-
} else if ( (*p) > 90 ) {
|
1191
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1192
|
-
goto st17;
|
1193
|
-
} else
|
1194
|
-
goto st17;
|
1195
|
-
} else
|
1196
|
-
goto st17;
|
1197
|
-
goto st0;
|
1198
|
-
tr68:
|
1199
|
-
#line 24 "src/parser.rl"
|
1200
|
-
{
|
1201
|
-
parser->field_len = LEN(field_start, p);
|
1202
|
-
if(parser->field_len > 256) {
|
1203
|
-
parser->overflow_error = TRUE;
|
1204
|
-
{p++; cs = 54; goto _out;}
|
1205
|
-
}
|
1206
|
-
}
|
1207
|
-
goto st54;
|
1208
|
-
tr69:
|
1209
|
-
#line 32 "src/parser.rl"
|
1210
|
-
{ MARK(mark, p); }
|
1211
|
-
goto st54;
|
1212
|
-
st54:
|
1213
|
-
if ( ++p == pe )
|
1214
|
-
goto _test_eof54;
|
1215
|
-
case 54:
|
1216
|
-
#line 1217 "src/parser.c"
|
1217
|
-
switch( (*p) ) {
|
1218
|
-
case 13: goto tr28;
|
1219
|
-
case 32: goto tr69;
|
1220
|
-
case 67: goto tr30;
|
1221
|
-
case 99: goto tr30;
|
1222
|
-
}
|
1223
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1224
|
-
goto tr70;
|
1225
|
-
goto tr27;
|
1226
|
-
st55:
|
1227
|
-
if ( ++p == pe )
|
1228
|
-
goto _test_eof55;
|
1229
|
-
case 55:
|
1230
|
-
switch( (*p) ) {
|
1231
|
-
case 33: goto st17;
|
1232
|
-
case 58: goto tr25;
|
1233
|
-
case 67: goto st40;
|
1234
|
-
case 89: goto st56;
|
1235
|
-
case 99: goto st40;
|
1236
|
-
case 121: goto st56;
|
1237
|
-
case 124: goto st17;
|
1238
|
-
case 126: goto st17;
|
1239
|
-
}
|
1240
|
-
if ( (*p) < 45 ) {
|
1241
|
-
if ( (*p) > 39 ) {
|
1242
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1243
|
-
goto st17;
|
1244
|
-
} else if ( (*p) >= 35 )
|
1245
|
-
goto st17;
|
1246
|
-
} else if ( (*p) > 46 ) {
|
1247
|
-
if ( (*p) < 65 ) {
|
1248
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1249
|
-
goto st17;
|
1250
|
-
} else if ( (*p) > 90 ) {
|
1251
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1252
|
-
goto st17;
|
1253
|
-
} else
|
1254
|
-
goto st17;
|
1255
|
-
} else
|
1256
|
-
goto st17;
|
1257
|
-
goto st0;
|
1258
|
-
st56:
|
1259
|
-
if ( ++p == pe )
|
1260
|
-
goto _test_eof56;
|
1261
|
-
case 56:
|
1262
|
-
switch( (*p) ) {
|
1263
|
-
case 33: goto st17;
|
1264
|
-
case 58: goto tr25;
|
1265
|
-
case 67: goto st40;
|
1266
|
-
case 80: goto st57;
|
1267
|
-
case 99: goto st40;
|
1268
|
-
case 112: goto st57;
|
1269
|
-
case 124: goto st17;
|
1270
|
-
case 126: goto st17;
|
1271
|
-
}
|
1272
|
-
if ( (*p) < 45 ) {
|
1273
|
-
if ( (*p) > 39 ) {
|
1274
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1275
|
-
goto st17;
|
1276
|
-
} else if ( (*p) >= 35 )
|
1277
|
-
goto st17;
|
1278
|
-
} else if ( (*p) > 46 ) {
|
1279
|
-
if ( (*p) < 65 ) {
|
1280
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1281
|
-
goto st17;
|
1282
|
-
} else if ( (*p) > 90 ) {
|
1283
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1284
|
-
goto st17;
|
1285
|
-
} else
|
1286
|
-
goto st17;
|
1287
|
-
} else
|
1288
|
-
goto st17;
|
1289
|
-
goto st0;
|
1290
|
-
st57:
|
1291
|
-
if ( ++p == pe )
|
1292
|
-
goto _test_eof57;
|
1293
|
-
case 57:
|
1294
|
-
switch( (*p) ) {
|
1295
|
-
case 33: goto st17;
|
1296
|
-
case 58: goto tr25;
|
1297
|
-
case 67: goto st40;
|
1298
|
-
case 69: goto st58;
|
1299
|
-
case 99: goto st40;
|
1300
|
-
case 101: goto st58;
|
1301
|
-
case 124: goto st17;
|
1302
|
-
case 126: goto st17;
|
1303
|
-
}
|
1304
|
-
if ( (*p) < 45 ) {
|
1305
|
-
if ( (*p) > 39 ) {
|
1306
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1307
|
-
goto st17;
|
1308
|
-
} else if ( (*p) >= 35 )
|
1309
|
-
goto st17;
|
1310
|
-
} else if ( (*p) > 46 ) {
|
1311
|
-
if ( (*p) < 65 ) {
|
1312
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1313
|
-
goto st17;
|
1314
|
-
} else if ( (*p) > 90 ) {
|
1315
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1316
|
-
goto st17;
|
1317
|
-
} else
|
1318
|
-
goto st17;
|
1319
|
-
} else
|
1320
|
-
goto st17;
|
1321
|
-
goto st0;
|
1322
|
-
st58:
|
1323
|
-
if ( ++p == pe )
|
1324
|
-
goto _test_eof58;
|
1325
|
-
case 58:
|
1326
|
-
switch( (*p) ) {
|
1327
|
-
case 33: goto st17;
|
1328
|
-
case 67: goto st40;
|
1329
|
-
case 99: goto st40;
|
1330
|
-
case 124: goto st17;
|
1331
|
-
case 126: goto st17;
|
1332
|
-
}
|
1333
|
-
if ( (*p) < 45 ) {
|
1334
|
-
if ( (*p) > 39 ) {
|
1335
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1336
|
-
goto st17;
|
1337
|
-
} else if ( (*p) >= 35 )
|
1338
|
-
goto st17;
|
1339
|
-
} else if ( (*p) > 46 ) {
|
1340
|
-
if ( (*p) < 65 ) {
|
1341
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1342
|
-
goto st17;
|
1343
|
-
} else if ( (*p) > 90 ) {
|
1344
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1345
|
-
goto st17;
|
1346
|
-
} else
|
1347
|
-
goto st17;
|
1348
|
-
} else
|
1349
|
-
goto st17;
|
1350
|
-
goto st0;
|
1351
|
-
tr22:
|
1352
|
-
#line 23 "src/parser.rl"
|
1353
|
-
{ MARK(field_start, p); }
|
1354
|
-
goto st59;
|
1355
|
-
st59:
|
1356
|
-
if ( ++p == pe )
|
1357
|
-
goto _test_eof59;
|
1358
|
-
case 59:
|
1359
|
-
#line 1360 "src/parser.c"
|
1360
|
-
switch( (*p) ) {
|
1361
|
-
case 33: goto st17;
|
1362
|
-
case 58: goto tr25;
|
1363
|
-
case 67: goto st40;
|
1364
|
-
case 79: goto st60;
|
1365
|
-
case 99: goto st40;
|
1366
|
-
case 111: goto st60;
|
1367
|
-
case 124: goto st17;
|
1368
|
-
case 126: goto st17;
|
1369
|
-
}
|
1370
|
-
if ( (*p) < 45 ) {
|
1371
|
-
if ( (*p) > 39 ) {
|
1372
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1373
|
-
goto st17;
|
1374
|
-
} else if ( (*p) >= 35 )
|
1375
|
-
goto st17;
|
1376
|
-
} else if ( (*p) > 46 ) {
|
1377
|
-
if ( (*p) < 65 ) {
|
1378
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1379
|
-
goto st17;
|
1380
|
-
} else if ( (*p) > 90 ) {
|
1381
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1382
|
-
goto st17;
|
1383
|
-
} else
|
1384
|
-
goto st17;
|
1385
|
-
} else
|
1386
|
-
goto st17;
|
1387
|
-
goto st0;
|
1388
|
-
st60:
|
1389
|
-
if ( ++p == pe )
|
1390
|
-
goto _test_eof60;
|
1391
|
-
case 60:
|
1392
|
-
switch( (*p) ) {
|
1393
|
-
case 33: goto st17;
|
1394
|
-
case 58: goto tr25;
|
1395
|
-
case 67: goto st40;
|
1396
|
-
case 78: goto st61;
|
1397
|
-
case 99: goto st40;
|
1398
|
-
case 110: goto st61;
|
1399
|
-
case 124: goto st17;
|
1400
|
-
case 126: goto st17;
|
1401
|
-
}
|
1402
|
-
if ( (*p) < 45 ) {
|
1403
|
-
if ( (*p) > 39 ) {
|
1404
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1405
|
-
goto st17;
|
1406
|
-
} else if ( (*p) >= 35 )
|
1407
|
-
goto st17;
|
1408
|
-
} else if ( (*p) > 46 ) {
|
1409
|
-
if ( (*p) < 65 ) {
|
1410
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1411
|
-
goto st17;
|
1412
|
-
} else if ( (*p) > 90 ) {
|
1413
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1414
|
-
goto st17;
|
1415
|
-
} else
|
1416
|
-
goto st17;
|
1417
|
-
} else
|
1418
|
-
goto st17;
|
1419
|
-
goto st0;
|
1420
|
-
st61:
|
1421
|
-
if ( ++p == pe )
|
1422
|
-
goto _test_eof61;
|
1423
|
-
case 61:
|
1424
|
-
switch( (*p) ) {
|
1425
|
-
case 33: goto st17;
|
1426
|
-
case 58: goto tr25;
|
1427
|
-
case 67: goto st40;
|
1428
|
-
case 84: goto st62;
|
1429
|
-
case 99: goto st40;
|
1430
|
-
case 116: goto st62;
|
1431
|
-
case 124: goto st17;
|
1432
|
-
case 126: goto st17;
|
1433
|
-
}
|
1434
|
-
if ( (*p) < 45 ) {
|
1435
|
-
if ( (*p) > 39 ) {
|
1436
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1437
|
-
goto st17;
|
1438
|
-
} else if ( (*p) >= 35 )
|
1439
|
-
goto st17;
|
1440
|
-
} else if ( (*p) > 46 ) {
|
1441
|
-
if ( (*p) < 65 ) {
|
1442
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1443
|
-
goto st17;
|
1444
|
-
} else if ( (*p) > 90 ) {
|
1445
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1446
|
-
goto st17;
|
1447
|
-
} else
|
1448
|
-
goto st17;
|
1449
|
-
} else
|
1450
|
-
goto st17;
|
1451
|
-
goto st0;
|
1452
|
-
st62:
|
1453
|
-
if ( ++p == pe )
|
1454
|
-
goto _test_eof62;
|
1455
|
-
case 62:
|
1456
|
-
switch( (*p) ) {
|
1457
|
-
case 33: goto st17;
|
1458
|
-
case 58: goto tr25;
|
1459
|
-
case 67: goto st40;
|
1460
|
-
case 69: goto st63;
|
1461
|
-
case 99: goto st40;
|
1462
|
-
case 101: goto st63;
|
1463
|
-
case 124: goto st17;
|
1464
|
-
case 126: goto st17;
|
1465
|
-
}
|
1466
|
-
if ( (*p) < 45 ) {
|
1467
|
-
if ( (*p) > 39 ) {
|
1468
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1469
|
-
goto st17;
|
1470
|
-
} else if ( (*p) >= 35 )
|
1471
|
-
goto st17;
|
1472
|
-
} else if ( (*p) > 46 ) {
|
1473
|
-
if ( (*p) < 65 ) {
|
1474
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1475
|
-
goto st17;
|
1476
|
-
} else if ( (*p) > 90 ) {
|
1477
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1478
|
-
goto st17;
|
1479
|
-
} else
|
1480
|
-
goto st17;
|
1481
|
-
} else
|
1482
|
-
goto st17;
|
1483
|
-
goto st0;
|
1484
|
-
st63:
|
1485
|
-
if ( ++p == pe )
|
1486
|
-
goto _test_eof63;
|
1487
|
-
case 63:
|
1488
|
-
switch( (*p) ) {
|
1489
|
-
case 33: goto st17;
|
1490
|
-
case 58: goto tr25;
|
1491
|
-
case 67: goto st40;
|
1492
|
-
case 78: goto st64;
|
1493
|
-
case 99: goto st40;
|
1494
|
-
case 110: goto st64;
|
1495
|
-
case 124: goto st17;
|
1496
|
-
case 126: goto st17;
|
1497
|
-
}
|
1498
|
-
if ( (*p) < 45 ) {
|
1499
|
-
if ( (*p) > 39 ) {
|
1500
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1501
|
-
goto st17;
|
1502
|
-
} else if ( (*p) >= 35 )
|
1503
|
-
goto st17;
|
1504
|
-
} else if ( (*p) > 46 ) {
|
1505
|
-
if ( (*p) < 65 ) {
|
1506
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1507
|
-
goto st17;
|
1508
|
-
} else if ( (*p) > 90 ) {
|
1509
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1510
|
-
goto st17;
|
1511
|
-
} else
|
1512
|
-
goto st17;
|
1513
|
-
} else
|
1514
|
-
goto st17;
|
1515
|
-
goto st0;
|
1516
|
-
st64:
|
1517
|
-
if ( ++p == pe )
|
1518
|
-
goto _test_eof64;
|
1519
|
-
case 64:
|
1520
|
-
switch( (*p) ) {
|
1521
|
-
case 33: goto st17;
|
1522
|
-
case 58: goto tr25;
|
1523
|
-
case 67: goto st40;
|
1524
|
-
case 84: goto st65;
|
1525
|
-
case 99: goto st40;
|
1526
|
-
case 116: goto st65;
|
1527
|
-
case 124: goto st17;
|
1528
|
-
case 126: goto st17;
|
1529
|
-
}
|
1530
|
-
if ( (*p) < 45 ) {
|
1531
|
-
if ( (*p) > 39 ) {
|
1532
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1533
|
-
goto st17;
|
1534
|
-
} else if ( (*p) >= 35 )
|
1535
|
-
goto st17;
|
1536
|
-
} else if ( (*p) > 46 ) {
|
1537
|
-
if ( (*p) < 65 ) {
|
1538
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1539
|
-
goto st17;
|
1540
|
-
} else if ( (*p) > 90 ) {
|
1541
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1542
|
-
goto st17;
|
1543
|
-
} else
|
1544
|
-
goto st17;
|
1545
|
-
} else
|
1546
|
-
goto st17;
|
1547
|
-
goto st0;
|
1548
|
-
st65:
|
1549
|
-
if ( ++p == pe )
|
1550
|
-
goto _test_eof65;
|
1551
|
-
case 65:
|
1552
|
-
switch( (*p) ) {
|
1553
|
-
case 33: goto st17;
|
1554
|
-
case 45: goto st66;
|
1555
|
-
case 46: goto st17;
|
1556
|
-
case 58: goto tr25;
|
1557
|
-
case 67: goto st40;
|
1558
|
-
case 99: goto st40;
|
1559
|
-
case 124: goto st17;
|
1560
|
-
case 126: goto st17;
|
1561
|
-
}
|
1562
|
-
if ( (*p) < 48 ) {
|
1563
|
-
if ( (*p) > 39 ) {
|
1564
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1565
|
-
goto st17;
|
1566
|
-
} else if ( (*p) >= 35 )
|
1567
|
-
goto st17;
|
1568
|
-
} else if ( (*p) > 57 ) {
|
1569
|
-
if ( (*p) > 90 ) {
|
1570
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1571
|
-
goto st17;
|
1572
|
-
} else if ( (*p) >= 65 )
|
1573
|
-
goto st17;
|
1574
|
-
} else
|
1575
|
-
goto st17;
|
1576
|
-
goto st0;
|
1577
|
-
st66:
|
1578
|
-
if ( ++p == pe )
|
1579
|
-
goto _test_eof66;
|
1580
|
-
case 66:
|
1581
|
-
switch( (*p) ) {
|
1582
|
-
case 33: goto st17;
|
1583
|
-
case 58: goto tr25;
|
1584
|
-
case 67: goto st40;
|
1585
|
-
case 76: goto st67;
|
1586
|
-
case 84: goto st75;
|
1587
|
-
case 99: goto st40;
|
1588
|
-
case 108: goto st67;
|
1589
|
-
case 116: goto st75;
|
1590
|
-
case 124: goto st17;
|
1591
|
-
case 126: goto st17;
|
1592
|
-
}
|
1593
|
-
if ( (*p) < 45 ) {
|
1594
|
-
if ( (*p) > 39 ) {
|
1595
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1596
|
-
goto st17;
|
1597
|
-
} else if ( (*p) >= 35 )
|
1598
|
-
goto st17;
|
1599
|
-
} else if ( (*p) > 46 ) {
|
1600
|
-
if ( (*p) < 65 ) {
|
1601
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1602
|
-
goto st17;
|
1603
|
-
} else if ( (*p) > 90 ) {
|
1604
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1605
|
-
goto st17;
|
1606
|
-
} else
|
1607
|
-
goto st17;
|
1608
|
-
} else
|
1609
|
-
goto st17;
|
1610
|
-
goto st0;
|
1611
|
-
st67:
|
1612
|
-
if ( ++p == pe )
|
1613
|
-
goto _test_eof67;
|
1614
|
-
case 67:
|
1615
|
-
switch( (*p) ) {
|
1616
|
-
case 33: goto st17;
|
1617
|
-
case 58: goto tr25;
|
1618
|
-
case 67: goto st40;
|
1619
|
-
case 69: goto st68;
|
1620
|
-
case 99: goto st40;
|
1621
|
-
case 101: goto st68;
|
1622
|
-
case 124: goto st17;
|
1623
|
-
case 126: goto st17;
|
1624
|
-
}
|
1625
|
-
if ( (*p) < 45 ) {
|
1626
|
-
if ( (*p) > 39 ) {
|
1627
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1628
|
-
goto st17;
|
1629
|
-
} else if ( (*p) >= 35 )
|
1630
|
-
goto st17;
|
1631
|
-
} else if ( (*p) > 46 ) {
|
1632
|
-
if ( (*p) < 65 ) {
|
1633
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1634
|
-
goto st17;
|
1635
|
-
} else if ( (*p) > 90 ) {
|
1636
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1637
|
-
goto st17;
|
1638
|
-
} else
|
1639
|
-
goto st17;
|
1640
|
-
} else
|
1641
|
-
goto st17;
|
1642
|
-
goto st0;
|
1643
|
-
st68:
|
1644
|
-
if ( ++p == pe )
|
1645
|
-
goto _test_eof68;
|
1646
|
-
case 68:
|
1647
|
-
switch( (*p) ) {
|
1648
|
-
case 33: goto st17;
|
1649
|
-
case 58: goto tr25;
|
1650
|
-
case 67: goto st40;
|
1651
|
-
case 78: goto st69;
|
1652
|
-
case 99: goto st40;
|
1653
|
-
case 110: goto st69;
|
1654
|
-
case 124: goto st17;
|
1655
|
-
case 126: goto st17;
|
1656
|
-
}
|
1657
|
-
if ( (*p) < 45 ) {
|
1658
|
-
if ( (*p) > 39 ) {
|
1659
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1660
|
-
goto st17;
|
1661
|
-
} else if ( (*p) >= 35 )
|
1662
|
-
goto st17;
|
1663
|
-
} else if ( (*p) > 46 ) {
|
1664
|
-
if ( (*p) < 65 ) {
|
1665
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1666
|
-
goto st17;
|
1667
|
-
} else if ( (*p) > 90 ) {
|
1668
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1669
|
-
goto st17;
|
1670
|
-
} else
|
1671
|
-
goto st17;
|
1672
|
-
} else
|
1673
|
-
goto st17;
|
1674
|
-
goto st0;
|
1675
|
-
st69:
|
1676
|
-
if ( ++p == pe )
|
1677
|
-
goto _test_eof69;
|
1678
|
-
case 69:
|
1679
|
-
switch( (*p) ) {
|
1680
|
-
case 33: goto st17;
|
1681
|
-
case 58: goto tr25;
|
1682
|
-
case 67: goto st40;
|
1683
|
-
case 71: goto st70;
|
1684
|
-
case 99: goto st40;
|
1685
|
-
case 103: goto st70;
|
1686
|
-
case 124: goto st17;
|
1687
|
-
case 126: goto st17;
|
1688
|
-
}
|
1689
|
-
if ( (*p) < 45 ) {
|
1690
|
-
if ( (*p) > 39 ) {
|
1691
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1692
|
-
goto st17;
|
1693
|
-
} else if ( (*p) >= 35 )
|
1694
|
-
goto st17;
|
1695
|
-
} else if ( (*p) > 46 ) {
|
1696
|
-
if ( (*p) < 65 ) {
|
1697
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1698
|
-
goto st17;
|
1699
|
-
} else if ( (*p) > 90 ) {
|
1700
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1701
|
-
goto st17;
|
1702
|
-
} else
|
1703
|
-
goto st17;
|
1704
|
-
} else
|
1705
|
-
goto st17;
|
1706
|
-
goto st0;
|
1707
|
-
st70:
|
1708
|
-
if ( ++p == pe )
|
1709
|
-
goto _test_eof70;
|
1710
|
-
case 70:
|
1711
|
-
switch( (*p) ) {
|
1712
|
-
case 33: goto st17;
|
1713
|
-
case 58: goto tr25;
|
1714
|
-
case 67: goto st40;
|
1715
|
-
case 84: goto st71;
|
1716
|
-
case 99: goto st40;
|
1717
|
-
case 116: goto st71;
|
1718
|
-
case 124: goto st17;
|
1719
|
-
case 126: goto st17;
|
1720
|
-
}
|
1721
|
-
if ( (*p) < 45 ) {
|
1722
|
-
if ( (*p) > 39 ) {
|
1723
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1724
|
-
goto st17;
|
1725
|
-
} else if ( (*p) >= 35 )
|
1726
|
-
goto st17;
|
1727
|
-
} else if ( (*p) > 46 ) {
|
1728
|
-
if ( (*p) < 65 ) {
|
1729
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1730
|
-
goto st17;
|
1731
|
-
} else if ( (*p) > 90 ) {
|
1732
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1733
|
-
goto st17;
|
1734
|
-
} else
|
1735
|
-
goto st17;
|
1736
|
-
} else
|
1737
|
-
goto st17;
|
1738
|
-
goto st0;
|
1739
|
-
st71:
|
1740
|
-
if ( ++p == pe )
|
1741
|
-
goto _test_eof71;
|
1742
|
-
case 71:
|
1743
|
-
switch( (*p) ) {
|
1744
|
-
case 33: goto st17;
|
1745
|
-
case 58: goto tr25;
|
1746
|
-
case 67: goto st40;
|
1747
|
-
case 72: goto st72;
|
1748
|
-
case 99: goto st40;
|
1749
|
-
case 104: goto st72;
|
1750
|
-
case 124: goto st17;
|
1751
|
-
case 126: goto st17;
|
1752
|
-
}
|
1753
|
-
if ( (*p) < 45 ) {
|
1754
|
-
if ( (*p) > 39 ) {
|
1755
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1756
|
-
goto st17;
|
1757
|
-
} else if ( (*p) >= 35 )
|
1758
|
-
goto st17;
|
1759
|
-
} else if ( (*p) > 46 ) {
|
1760
|
-
if ( (*p) < 65 ) {
|
1761
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1762
|
-
goto st17;
|
1763
|
-
} else if ( (*p) > 90 ) {
|
1764
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1765
|
-
goto st17;
|
1766
|
-
} else
|
1767
|
-
goto st17;
|
1768
|
-
} else
|
1769
|
-
goto st17;
|
1770
|
-
goto st0;
|
1771
|
-
st72:
|
1772
|
-
if ( ++p == pe )
|
1773
|
-
goto _test_eof72;
|
1774
|
-
case 72:
|
1775
|
-
switch( (*p) ) {
|
1776
|
-
case 33: goto st17;
|
1777
|
-
case 58: goto tr88;
|
1778
|
-
case 67: goto st40;
|
1779
|
-
case 99: goto st40;
|
1780
|
-
case 124: goto st17;
|
1781
|
-
case 126: goto st17;
|
1782
|
-
}
|
1783
|
-
if ( (*p) < 45 ) {
|
1784
|
-
if ( (*p) > 39 ) {
|
1785
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1786
|
-
goto st17;
|
1787
|
-
} else if ( (*p) >= 35 )
|
1788
|
-
goto st17;
|
1789
|
-
} else if ( (*p) > 46 ) {
|
1790
|
-
if ( (*p) < 65 ) {
|
1791
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1792
|
-
goto st17;
|
1793
|
-
} else if ( (*p) > 90 ) {
|
1794
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1795
|
-
goto st17;
|
1796
|
-
} else
|
1797
|
-
goto st17;
|
1798
|
-
} else
|
1799
|
-
goto st17;
|
1800
|
-
goto st0;
|
1801
|
-
tr88:
|
1802
|
-
#line 24 "src/parser.rl"
|
1803
|
-
{
|
1804
|
-
parser->field_len = LEN(field_start, p);
|
1805
|
-
if(parser->field_len > 256) {
|
1806
|
-
parser->overflow_error = TRUE;
|
1807
|
-
{p++; cs = 73; goto _out;}
|
1808
|
-
}
|
1809
|
-
}
|
1810
|
-
goto st73;
|
1811
|
-
tr89:
|
1812
|
-
#line 32 "src/parser.rl"
|
1813
|
-
{ MARK(mark, p); }
|
1814
|
-
goto st73;
|
1815
|
-
st73:
|
1816
|
-
if ( ++p == pe )
|
1817
|
-
goto _test_eof73;
|
1818
|
-
case 73:
|
1819
|
-
#line 1820 "src/parser.c"
|
1820
|
-
switch( (*p) ) {
|
1821
|
-
case 13: goto tr28;
|
1822
|
-
case 32: goto tr89;
|
1823
|
-
case 67: goto tr30;
|
1824
|
-
case 99: goto tr30;
|
1825
|
-
}
|
1826
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1827
|
-
goto tr90;
|
1828
|
-
goto tr27;
|
1829
|
-
tr90:
|
1830
|
-
#line 21 "src/parser.rl"
|
1831
|
-
{MARK(mark, p); }
|
1832
|
-
#line 32 "src/parser.rl"
|
1833
|
-
{ MARK(mark, p); }
|
1834
|
-
goto st74;
|
1835
|
-
st74:
|
1836
|
-
if ( ++p == pe )
|
1837
|
-
goto _test_eof74;
|
1838
|
-
case 74:
|
1839
|
-
#line 1840 "src/parser.c"
|
1840
|
-
switch( (*p) ) {
|
1841
|
-
case 13: goto tr91;
|
1842
|
-
case 67: goto st20;
|
1843
|
-
case 99: goto st20;
|
1844
|
-
}
|
1845
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1846
|
-
goto st74;
|
1847
|
-
goto st19;
|
1848
|
-
st75:
|
1849
|
-
if ( ++p == pe )
|
1850
|
-
goto _test_eof75;
|
1851
|
-
case 75:
|
1852
|
-
switch( (*p) ) {
|
1853
|
-
case 33: goto st17;
|
1854
|
-
case 58: goto tr25;
|
1855
|
-
case 67: goto st40;
|
1856
|
-
case 89: goto st76;
|
1857
|
-
case 99: goto st40;
|
1858
|
-
case 121: goto st76;
|
1859
|
-
case 124: goto st17;
|
1860
|
-
case 126: goto st17;
|
1861
|
-
}
|
1862
|
-
if ( (*p) < 45 ) {
|
1863
|
-
if ( (*p) > 39 ) {
|
1864
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1865
|
-
goto st17;
|
1866
|
-
} else if ( (*p) >= 35 )
|
1867
|
-
goto st17;
|
1868
|
-
} else if ( (*p) > 46 ) {
|
1869
|
-
if ( (*p) < 65 ) {
|
1870
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1871
|
-
goto st17;
|
1872
|
-
} else if ( (*p) > 90 ) {
|
1873
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1874
|
-
goto st17;
|
1875
|
-
} else
|
1876
|
-
goto st17;
|
1877
|
-
} else
|
1878
|
-
goto st17;
|
1879
|
-
goto st0;
|
1880
|
-
st76:
|
1881
|
-
if ( ++p == pe )
|
1882
|
-
goto _test_eof76;
|
1883
|
-
case 76:
|
1884
|
-
switch( (*p) ) {
|
1885
|
-
case 33: goto st17;
|
1886
|
-
case 58: goto tr25;
|
1887
|
-
case 67: goto st40;
|
1888
|
-
case 80: goto st77;
|
1889
|
-
case 99: goto st40;
|
1890
|
-
case 112: goto st77;
|
1891
|
-
case 124: goto st17;
|
1892
|
-
case 126: goto st17;
|
1893
|
-
}
|
1894
|
-
if ( (*p) < 45 ) {
|
1895
|
-
if ( (*p) > 39 ) {
|
1896
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1897
|
-
goto st17;
|
1898
|
-
} else if ( (*p) >= 35 )
|
1899
|
-
goto st17;
|
1900
|
-
} else if ( (*p) > 46 ) {
|
1901
|
-
if ( (*p) < 65 ) {
|
1902
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1903
|
-
goto st17;
|
1904
|
-
} else if ( (*p) > 90 ) {
|
1905
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1906
|
-
goto st17;
|
1907
|
-
} else
|
1908
|
-
goto st17;
|
1909
|
-
} else
|
1910
|
-
goto st17;
|
1911
|
-
goto st0;
|
1912
|
-
st77:
|
1913
|
-
if ( ++p == pe )
|
1914
|
-
goto _test_eof77;
|
1915
|
-
case 77:
|
1916
|
-
switch( (*p) ) {
|
1917
|
-
case 33: goto st17;
|
1918
|
-
case 58: goto tr25;
|
1919
|
-
case 67: goto st40;
|
1920
|
-
case 69: goto st78;
|
1921
|
-
case 99: goto st40;
|
1922
|
-
case 101: goto st78;
|
1923
|
-
case 124: goto st17;
|
1924
|
-
case 126: goto st17;
|
1925
|
-
}
|
1926
|
-
if ( (*p) < 45 ) {
|
1927
|
-
if ( (*p) > 39 ) {
|
1928
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1929
|
-
goto st17;
|
1930
|
-
} else if ( (*p) >= 35 )
|
1931
|
-
goto st17;
|
1932
|
-
} else if ( (*p) > 46 ) {
|
1933
|
-
if ( (*p) < 65 ) {
|
1934
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1935
|
-
goto st17;
|
1936
|
-
} else if ( (*p) > 90 ) {
|
1937
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1938
|
-
goto st17;
|
1939
|
-
} else
|
1940
|
-
goto st17;
|
1941
|
-
} else
|
1942
|
-
goto st17;
|
1943
|
-
goto st0;
|
1944
|
-
st78:
|
1945
|
-
if ( ++p == pe )
|
1946
|
-
goto _test_eof78;
|
1947
|
-
case 78:
|
1948
|
-
switch( (*p) ) {
|
1949
|
-
case 33: goto st17;
|
1950
|
-
case 58: goto st79;
|
1951
|
-
case 67: goto st40;
|
1952
|
-
case 99: goto st40;
|
1953
|
-
case 124: goto st17;
|
1954
|
-
case 126: goto st17;
|
1955
|
-
}
|
1956
|
-
if ( (*p) < 45 ) {
|
1957
|
-
if ( (*p) > 39 ) {
|
1958
|
-
if ( 42 <= (*p) && (*p) <= 43 )
|
1959
|
-
goto st17;
|
1960
|
-
} else if ( (*p) >= 35 )
|
1961
|
-
goto st17;
|
1962
|
-
} else if ( (*p) > 46 ) {
|
1963
|
-
if ( (*p) < 65 ) {
|
1964
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
1965
|
-
goto st17;
|
1966
|
-
} else if ( (*p) > 90 ) {
|
1967
|
-
if ( 94 <= (*p) && (*p) <= 122 )
|
1968
|
-
goto st17;
|
1969
|
-
} else
|
1970
|
-
goto st17;
|
1971
|
-
} else
|
1972
|
-
goto st17;
|
1973
|
-
goto st0;
|
1974
|
-
tr99:
|
1975
|
-
#line 21 "src/parser.rl"
|
1976
|
-
{MARK(mark, p); }
|
1977
|
-
goto st79;
|
1978
|
-
st79:
|
1979
|
-
if ( ++p == pe )
|
1980
|
-
goto _test_eof79;
|
1981
|
-
case 79:
|
1982
|
-
#line 1983 "src/parser.c"
|
1983
|
-
switch( (*p) ) {
|
1984
|
-
case 13: goto tr98;
|
1985
|
-
case 32: goto tr99;
|
1986
|
-
}
|
1987
|
-
goto tr97;
|
1988
|
-
tr97:
|
1989
|
-
#line 21 "src/parser.rl"
|
1990
|
-
{MARK(mark, p); }
|
1991
|
-
goto st80;
|
1992
|
-
st80:
|
1993
|
-
if ( ++p == pe )
|
1994
|
-
goto _test_eof80;
|
1995
|
-
case 80:
|
1996
|
-
#line 1997 "src/parser.c"
|
1997
|
-
if ( (*p) == 13 )
|
1998
|
-
goto tr101;
|
1999
|
-
goto st80;
|
2000
|
-
tr9:
|
2001
|
-
#line 71 "src/parser.rl"
|
2002
|
-
{
|
2003
|
-
if(!apply_element(parser, MONGREL_REQUEST_URI, PTR_TO(mark), p, 12*1024))
|
2004
|
-
{p++; cs = 81; goto _out;}
|
2005
|
-
}
|
2006
|
-
goto st81;
|
2007
|
-
tr115:
|
2008
|
-
#line 61 "src/parser.rl"
|
2009
|
-
{
|
2010
|
-
if(!apply_element(parser, MONGREL_REQUEST_PATH, PTR_TO(mark), p, 1024))
|
2011
|
-
{p++; cs = 81; goto _out;}
|
2012
|
-
}
|
2013
|
-
#line 71 "src/parser.rl"
|
2014
|
-
{
|
2015
|
-
if(!apply_element(parser, MONGREL_REQUEST_URI, PTR_TO(mark), p, 12*1024))
|
2016
|
-
{p++; cs = 81; goto _out;}
|
2017
|
-
}
|
2018
|
-
goto st81;
|
2019
|
-
tr126:
|
2020
|
-
#line 76 "src/parser.rl"
|
2021
|
-
{MARK(query_start, p); }
|
2022
|
-
#line 77 "src/parser.rl"
|
2023
|
-
{
|
2024
|
-
if(!apply_element(parser, MONGREL_QUERY_STRING, PTR_TO(query_start), p, 10*1024))
|
2025
|
-
{p++; cs = 81; goto _out;}
|
2026
|
-
}
|
2027
|
-
#line 71 "src/parser.rl"
|
2028
|
-
{
|
2029
|
-
if(!apply_element(parser, MONGREL_REQUEST_URI, PTR_TO(mark), p, 12*1024))
|
2030
|
-
{p++; cs = 81; goto _out;}
|
2031
|
-
}
|
2032
|
-
goto st81;
|
2033
|
-
tr130:
|
2034
|
-
#line 77 "src/parser.rl"
|
2035
|
-
{
|
2036
|
-
if(!apply_element(parser, MONGREL_QUERY_STRING, PTR_TO(query_start), p, 10*1024))
|
2037
|
-
{p++; cs = 81; goto _out;}
|
2038
|
-
}
|
2039
|
-
#line 71 "src/parser.rl"
|
2040
|
-
{
|
2041
|
-
if(!apply_element(parser, MONGREL_REQUEST_URI, PTR_TO(mark), p, 12*1024))
|
2042
|
-
{p++; cs = 81; goto _out;}
|
2043
|
-
}
|
2044
|
-
goto st81;
|
2045
|
-
st81:
|
2046
|
-
if ( ++p == pe )
|
2047
|
-
goto _test_eof81;
|
2048
|
-
case 81:
|
2049
|
-
#line 2050 "src/parser.c"
|
2050
|
-
switch( (*p) ) {
|
2051
|
-
case 32: goto tr103;
|
2052
|
-
case 37: goto tr104;
|
2053
|
-
case 60: goto st0;
|
2054
|
-
case 62: goto st0;
|
2055
|
-
case 127: goto st0;
|
2056
|
-
}
|
2057
|
-
if ( (*p) > 31 ) {
|
2058
|
-
if ( 34 <= (*p) && (*p) <= 35 )
|
2059
|
-
goto st0;
|
2060
|
-
} else if ( (*p) >= 0 )
|
2061
|
-
goto st0;
|
2062
|
-
goto tr102;
|
2063
|
-
tr102:
|
2064
|
-
#line 21 "src/parser.rl"
|
2065
|
-
{MARK(mark, p); }
|
2066
|
-
goto st82;
|
2067
|
-
st82:
|
2068
|
-
if ( ++p == pe )
|
2069
|
-
goto _test_eof82;
|
2070
|
-
case 82:
|
2071
|
-
#line 2072 "src/parser.c"
|
2072
|
-
switch( (*p) ) {
|
2073
|
-
case 32: goto tr106;
|
2074
|
-
case 37: goto st83;
|
2075
|
-
case 60: goto st0;
|
2076
|
-
case 62: goto st0;
|
2077
|
-
case 127: goto st0;
|
2078
|
-
}
|
2079
|
-
if ( (*p) > 31 ) {
|
2080
|
-
if ( 34 <= (*p) && (*p) <= 35 )
|
2081
|
-
goto st0;
|
2082
|
-
} else if ( (*p) >= 0 )
|
2083
|
-
goto st0;
|
2084
|
-
goto st82;
|
2085
|
-
tr104:
|
2086
|
-
#line 21 "src/parser.rl"
|
2087
|
-
{MARK(mark, p); }
|
2088
|
-
goto st83;
|
2089
|
-
st83:
|
2090
|
-
if ( ++p == pe )
|
2091
|
-
goto _test_eof83;
|
2092
|
-
case 83:
|
2093
|
-
#line 2094 "src/parser.c"
|
2094
|
-
if ( (*p) < 65 ) {
|
2095
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
2096
|
-
goto st84;
|
2097
|
-
} else if ( (*p) > 70 ) {
|
2098
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
2099
|
-
goto st84;
|
2100
|
-
} else
|
2101
|
-
goto st84;
|
2102
|
-
goto st0;
|
2103
|
-
st84:
|
2104
|
-
if ( ++p == pe )
|
2105
|
-
goto _test_eof84;
|
2106
|
-
case 84:
|
2107
|
-
if ( (*p) < 65 ) {
|
2108
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
2109
|
-
goto st82;
|
2110
|
-
} else if ( (*p) > 70 ) {
|
2111
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
2112
|
-
goto st82;
|
2113
|
-
} else
|
2114
|
-
goto st82;
|
2115
|
-
goto st0;
|
2116
|
-
tr5:
|
2117
|
-
#line 21 "src/parser.rl"
|
2118
|
-
{MARK(mark, p); }
|
2119
|
-
goto st85;
|
2120
|
-
st85:
|
2121
|
-
if ( ++p == pe )
|
2122
|
-
goto _test_eof85;
|
2123
|
-
case 85:
|
2124
|
-
#line 2125 "src/parser.c"
|
2125
|
-
switch( (*p) ) {
|
2126
|
-
case 43: goto st85;
|
2127
|
-
case 58: goto st86;
|
2128
|
-
}
|
2129
|
-
if ( (*p) < 48 ) {
|
2130
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
2131
|
-
goto st85;
|
2132
|
-
} else if ( (*p) > 57 ) {
|
2133
|
-
if ( (*p) > 90 ) {
|
2134
|
-
if ( 97 <= (*p) && (*p) <= 122 )
|
2135
|
-
goto st85;
|
2136
|
-
} else if ( (*p) >= 65 )
|
2137
|
-
goto st85;
|
2138
|
-
} else
|
2139
|
-
goto st85;
|
2140
|
-
goto st0;
|
2141
|
-
tr7:
|
2142
|
-
#line 21 "src/parser.rl"
|
2143
|
-
{MARK(mark, p); }
|
2144
|
-
goto st86;
|
2145
|
-
st86:
|
2146
|
-
if ( ++p == pe )
|
2147
|
-
goto _test_eof86;
|
2148
|
-
case 86:
|
2149
|
-
#line 2150 "src/parser.c"
|
2150
|
-
switch( (*p) ) {
|
2151
|
-
case 32: goto tr8;
|
2152
|
-
case 34: goto st0;
|
2153
|
-
case 35: goto tr9;
|
2154
|
-
case 37: goto st87;
|
2155
|
-
case 60: goto st0;
|
2156
|
-
case 62: goto st0;
|
2157
|
-
case 127: goto st0;
|
2158
|
-
}
|
2159
|
-
if ( 0 <= (*p) && (*p) <= 31 )
|
2160
|
-
goto st0;
|
2161
|
-
goto st86;
|
2162
|
-
st87:
|
2163
|
-
if ( ++p == pe )
|
2164
|
-
goto _test_eof87;
|
2165
|
-
case 87:
|
2166
|
-
if ( (*p) < 65 ) {
|
2167
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
2168
|
-
goto st88;
|
2169
|
-
} else if ( (*p) > 70 ) {
|
2170
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
2171
|
-
goto st88;
|
2172
|
-
} else
|
2173
|
-
goto st88;
|
2174
|
-
goto st0;
|
2175
|
-
st88:
|
2176
|
-
if ( ++p == pe )
|
2177
|
-
goto _test_eof88;
|
2178
|
-
case 88:
|
2179
|
-
if ( (*p) < 65 ) {
|
2180
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
2181
|
-
goto st86;
|
2182
|
-
} else if ( (*p) > 70 ) {
|
2183
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
2184
|
-
goto st86;
|
2185
|
-
} else
|
2186
|
-
goto st86;
|
2187
|
-
goto st0;
|
2188
|
-
tr6:
|
2189
|
-
#line 21 "src/parser.rl"
|
2190
|
-
{MARK(mark, p); }
|
2191
|
-
goto st89;
|
2192
|
-
st89:
|
2193
|
-
if ( ++p == pe )
|
2194
|
-
goto _test_eof89;
|
2195
|
-
case 89:
|
2196
|
-
#line 2197 "src/parser.c"
|
2197
|
-
switch( (*p) ) {
|
2198
|
-
case 32: goto tr114;
|
2199
|
-
case 34: goto st0;
|
2200
|
-
case 35: goto tr115;
|
2201
|
-
case 37: goto st90;
|
2202
|
-
case 59: goto tr117;
|
2203
|
-
case 60: goto st0;
|
2204
|
-
case 62: goto st0;
|
2205
|
-
case 63: goto tr118;
|
2206
|
-
case 127: goto st0;
|
2207
|
-
}
|
2208
|
-
if ( 0 <= (*p) && (*p) <= 31 )
|
2209
|
-
goto st0;
|
2210
|
-
goto st89;
|
2211
|
-
st90:
|
2212
|
-
if ( ++p == pe )
|
2213
|
-
goto _test_eof90;
|
2214
|
-
case 90:
|
2215
|
-
if ( (*p) < 65 ) {
|
2216
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
2217
|
-
goto st91;
|
2218
|
-
} else if ( (*p) > 70 ) {
|
2219
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
2220
|
-
goto st91;
|
2221
|
-
} else
|
2222
|
-
goto st91;
|
2223
|
-
goto st0;
|
2224
|
-
st91:
|
2225
|
-
if ( ++p == pe )
|
2226
|
-
goto _test_eof91;
|
2227
|
-
case 91:
|
2228
|
-
if ( (*p) < 65 ) {
|
2229
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
2230
|
-
goto st89;
|
2231
|
-
} else if ( (*p) > 70 ) {
|
2232
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
2233
|
-
goto st89;
|
2234
|
-
} else
|
2235
|
-
goto st89;
|
2236
|
-
goto st0;
|
2237
|
-
tr117:
|
2238
|
-
#line 61 "src/parser.rl"
|
2239
|
-
{
|
2240
|
-
if(!apply_element(parser, MONGREL_REQUEST_PATH, PTR_TO(mark), p, 1024))
|
2241
|
-
{p++; cs = 92; goto _out;}
|
2242
|
-
}
|
2243
|
-
goto st92;
|
2244
|
-
st92:
|
2245
|
-
if ( ++p == pe )
|
2246
|
-
goto _test_eof92;
|
2247
|
-
case 92:
|
2248
|
-
#line 2249 "src/parser.c"
|
2249
|
-
switch( (*p) ) {
|
2250
|
-
case 32: goto tr8;
|
2251
|
-
case 34: goto st0;
|
2252
|
-
case 35: goto tr9;
|
2253
|
-
case 37: goto st93;
|
2254
|
-
case 60: goto st0;
|
2255
|
-
case 62: goto st0;
|
2256
|
-
case 63: goto st95;
|
2257
|
-
case 127: goto st0;
|
2258
|
-
}
|
2259
|
-
if ( 0 <= (*p) && (*p) <= 31 )
|
2260
|
-
goto st0;
|
2261
|
-
goto st92;
|
2262
|
-
st93:
|
2263
|
-
if ( ++p == pe )
|
2264
|
-
goto _test_eof93;
|
2265
|
-
case 93:
|
2266
|
-
if ( (*p) < 65 ) {
|
2267
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
2268
|
-
goto st94;
|
2269
|
-
} else if ( (*p) > 70 ) {
|
2270
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
2271
|
-
goto st94;
|
2272
|
-
} else
|
2273
|
-
goto st94;
|
2274
|
-
goto st0;
|
2275
|
-
st94:
|
2276
|
-
if ( ++p == pe )
|
2277
|
-
goto _test_eof94;
|
2278
|
-
case 94:
|
2279
|
-
if ( (*p) < 65 ) {
|
2280
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
2281
|
-
goto st92;
|
2282
|
-
} else if ( (*p) > 70 ) {
|
2283
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
2284
|
-
goto st92;
|
2285
|
-
} else
|
2286
|
-
goto st92;
|
2287
|
-
goto st0;
|
2288
|
-
tr118:
|
2289
|
-
#line 61 "src/parser.rl"
|
2290
|
-
{
|
2291
|
-
if(!apply_element(parser, MONGREL_REQUEST_PATH, PTR_TO(mark), p, 1024))
|
2292
|
-
{p++; cs = 95; goto _out;}
|
2293
|
-
}
|
2294
|
-
goto st95;
|
2295
|
-
st95:
|
2296
|
-
if ( ++p == pe )
|
2297
|
-
goto _test_eof95;
|
2298
|
-
case 95:
|
2299
|
-
#line 2300 "src/parser.c"
|
2300
|
-
switch( (*p) ) {
|
2301
|
-
case 32: goto tr125;
|
2302
|
-
case 34: goto st0;
|
2303
|
-
case 35: goto tr126;
|
2304
|
-
case 37: goto tr127;
|
2305
|
-
case 60: goto st0;
|
2306
|
-
case 62: goto st0;
|
2307
|
-
case 127: goto st0;
|
2308
|
-
}
|
2309
|
-
if ( 0 <= (*p) && (*p) <= 31 )
|
2310
|
-
goto st0;
|
2311
|
-
goto tr124;
|
2312
|
-
tr124:
|
2313
|
-
#line 76 "src/parser.rl"
|
2314
|
-
{MARK(query_start, p); }
|
2315
|
-
goto st96;
|
2316
|
-
st96:
|
2317
|
-
if ( ++p == pe )
|
2318
|
-
goto _test_eof96;
|
2319
|
-
case 96:
|
2320
|
-
#line 2321 "src/parser.c"
|
2321
|
-
switch( (*p) ) {
|
2322
|
-
case 32: goto tr129;
|
2323
|
-
case 34: goto st0;
|
2324
|
-
case 35: goto tr130;
|
2325
|
-
case 37: goto st97;
|
2326
|
-
case 60: goto st0;
|
2327
|
-
case 62: goto st0;
|
2328
|
-
case 127: goto st0;
|
2329
|
-
}
|
2330
|
-
if ( 0 <= (*p) && (*p) <= 31 )
|
2331
|
-
goto st0;
|
2332
|
-
goto st96;
|
2333
|
-
tr127:
|
2334
|
-
#line 76 "src/parser.rl"
|
2335
|
-
{MARK(query_start, p); }
|
2336
|
-
goto st97;
|
2337
|
-
st97:
|
2338
|
-
if ( ++p == pe )
|
2339
|
-
goto _test_eof97;
|
2340
|
-
case 97:
|
2341
|
-
#line 2342 "src/parser.c"
|
2342
|
-
if ( (*p) < 65 ) {
|
2343
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
2344
|
-
goto st98;
|
2345
|
-
} else if ( (*p) > 70 ) {
|
2346
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
2347
|
-
goto st98;
|
2348
|
-
} else
|
2349
|
-
goto st98;
|
2350
|
-
goto st0;
|
2351
|
-
st98:
|
2352
|
-
if ( ++p == pe )
|
2353
|
-
goto _test_eof98;
|
2354
|
-
case 98:
|
2355
|
-
if ( (*p) < 65 ) {
|
2356
|
-
if ( 48 <= (*p) && (*p) <= 57 )
|
2357
|
-
goto st96;
|
2358
|
-
} else if ( (*p) > 70 ) {
|
2359
|
-
if ( 97 <= (*p) && (*p) <= 102 )
|
2360
|
-
goto st96;
|
2361
|
-
} else
|
2362
|
-
goto st96;
|
2363
|
-
goto st0;
|
2364
|
-
st99:
|
2365
|
-
if ( ++p == pe )
|
2366
|
-
goto _test_eof99;
|
2367
|
-
case 99:
|
2368
|
-
switch( (*p) ) {
|
2369
|
-
case 32: goto tr2;
|
2370
|
-
case 36: goto st100;
|
2371
|
-
case 95: goto st100;
|
2372
|
-
}
|
2373
|
-
if ( (*p) < 48 ) {
|
2374
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
2375
|
-
goto st100;
|
2376
|
-
} else if ( (*p) > 57 ) {
|
2377
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
2378
|
-
goto st100;
|
2379
|
-
} else
|
2380
|
-
goto st100;
|
2381
|
-
goto st0;
|
2382
|
-
st100:
|
2383
|
-
if ( ++p == pe )
|
2384
|
-
goto _test_eof100;
|
2385
|
-
case 100:
|
2386
|
-
switch( (*p) ) {
|
2387
|
-
case 32: goto tr2;
|
2388
|
-
case 36: goto st101;
|
2389
|
-
case 95: goto st101;
|
2390
|
-
}
|
2391
|
-
if ( (*p) < 48 ) {
|
2392
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
2393
|
-
goto st101;
|
2394
|
-
} else if ( (*p) > 57 ) {
|
2395
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
2396
|
-
goto st101;
|
2397
|
-
} else
|
2398
|
-
goto st101;
|
2399
|
-
goto st0;
|
2400
|
-
st101:
|
2401
|
-
if ( ++p == pe )
|
2402
|
-
goto _test_eof101;
|
2403
|
-
case 101:
|
2404
|
-
switch( (*p) ) {
|
2405
|
-
case 32: goto tr2;
|
2406
|
-
case 36: goto st102;
|
2407
|
-
case 95: goto st102;
|
2408
|
-
}
|
2409
|
-
if ( (*p) < 48 ) {
|
2410
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
2411
|
-
goto st102;
|
2412
|
-
} else if ( (*p) > 57 ) {
|
2413
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
2414
|
-
goto st102;
|
2415
|
-
} else
|
2416
|
-
goto st102;
|
2417
|
-
goto st0;
|
2418
|
-
st102:
|
2419
|
-
if ( ++p == pe )
|
2420
|
-
goto _test_eof102;
|
2421
|
-
case 102:
|
2422
|
-
switch( (*p) ) {
|
2423
|
-
case 32: goto tr2;
|
2424
|
-
case 36: goto st103;
|
2425
|
-
case 95: goto st103;
|
2426
|
-
}
|
2427
|
-
if ( (*p) < 48 ) {
|
2428
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
2429
|
-
goto st103;
|
2430
|
-
} else if ( (*p) > 57 ) {
|
2431
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
2432
|
-
goto st103;
|
2433
|
-
} else
|
2434
|
-
goto st103;
|
2435
|
-
goto st0;
|
2436
|
-
st103:
|
2437
|
-
if ( ++p == pe )
|
2438
|
-
goto _test_eof103;
|
2439
|
-
case 103:
|
2440
|
-
switch( (*p) ) {
|
2441
|
-
case 32: goto tr2;
|
2442
|
-
case 36: goto st104;
|
2443
|
-
case 95: goto st104;
|
2444
|
-
}
|
2445
|
-
if ( (*p) < 48 ) {
|
2446
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
2447
|
-
goto st104;
|
2448
|
-
} else if ( (*p) > 57 ) {
|
2449
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
2450
|
-
goto st104;
|
2451
|
-
} else
|
2452
|
-
goto st104;
|
2453
|
-
goto st0;
|
2454
|
-
st104:
|
2455
|
-
if ( ++p == pe )
|
2456
|
-
goto _test_eof104;
|
2457
|
-
case 104:
|
2458
|
-
switch( (*p) ) {
|
2459
|
-
case 32: goto tr2;
|
2460
|
-
case 36: goto st105;
|
2461
|
-
case 95: goto st105;
|
2462
|
-
}
|
2463
|
-
if ( (*p) < 48 ) {
|
2464
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
2465
|
-
goto st105;
|
2466
|
-
} else if ( (*p) > 57 ) {
|
2467
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
2468
|
-
goto st105;
|
2469
|
-
} else
|
2470
|
-
goto st105;
|
2471
|
-
goto st0;
|
2472
|
-
st105:
|
2473
|
-
if ( ++p == pe )
|
2474
|
-
goto _test_eof105;
|
2475
|
-
case 105:
|
2476
|
-
switch( (*p) ) {
|
2477
|
-
case 32: goto tr2;
|
2478
|
-
case 36: goto st106;
|
2479
|
-
case 95: goto st106;
|
2480
|
-
}
|
2481
|
-
if ( (*p) < 48 ) {
|
2482
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
2483
|
-
goto st106;
|
2484
|
-
} else if ( (*p) > 57 ) {
|
2485
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
2486
|
-
goto st106;
|
2487
|
-
} else
|
2488
|
-
goto st106;
|
2489
|
-
goto st0;
|
2490
|
-
st106:
|
2491
|
-
if ( ++p == pe )
|
2492
|
-
goto _test_eof106;
|
2493
|
-
case 106:
|
2494
|
-
switch( (*p) ) {
|
2495
|
-
case 32: goto tr2;
|
2496
|
-
case 36: goto st107;
|
2497
|
-
case 95: goto st107;
|
2498
|
-
}
|
2499
|
-
if ( (*p) < 48 ) {
|
2500
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
2501
|
-
goto st107;
|
2502
|
-
} else if ( (*p) > 57 ) {
|
2503
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
2504
|
-
goto st107;
|
2505
|
-
} else
|
2506
|
-
goto st107;
|
2507
|
-
goto st0;
|
2508
|
-
st107:
|
2509
|
-
if ( ++p == pe )
|
2510
|
-
goto _test_eof107;
|
2511
|
-
case 107:
|
2512
|
-
switch( (*p) ) {
|
2513
|
-
case 32: goto tr2;
|
2514
|
-
case 36: goto st108;
|
2515
|
-
case 95: goto st108;
|
2516
|
-
}
|
2517
|
-
if ( (*p) < 48 ) {
|
2518
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
2519
|
-
goto st108;
|
2520
|
-
} else if ( (*p) > 57 ) {
|
2521
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
2522
|
-
goto st108;
|
2523
|
-
} else
|
2524
|
-
goto st108;
|
2525
|
-
goto st0;
|
2526
|
-
st108:
|
2527
|
-
if ( ++p == pe )
|
2528
|
-
goto _test_eof108;
|
2529
|
-
case 108:
|
2530
|
-
switch( (*p) ) {
|
2531
|
-
case 32: goto tr2;
|
2532
|
-
case 36: goto st109;
|
2533
|
-
case 95: goto st109;
|
2534
|
-
}
|
2535
|
-
if ( (*p) < 48 ) {
|
2536
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
2537
|
-
goto st109;
|
2538
|
-
} else if ( (*p) > 57 ) {
|
2539
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
2540
|
-
goto st109;
|
2541
|
-
} else
|
2542
|
-
goto st109;
|
2543
|
-
goto st0;
|
2544
|
-
st109:
|
2545
|
-
if ( ++p == pe )
|
2546
|
-
goto _test_eof109;
|
2547
|
-
case 109:
|
2548
|
-
switch( (*p) ) {
|
2549
|
-
case 32: goto tr2;
|
2550
|
-
case 36: goto st110;
|
2551
|
-
case 95: goto st110;
|
2552
|
-
}
|
2553
|
-
if ( (*p) < 48 ) {
|
2554
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
2555
|
-
goto st110;
|
2556
|
-
} else if ( (*p) > 57 ) {
|
2557
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
2558
|
-
goto st110;
|
2559
|
-
} else
|
2560
|
-
goto st110;
|
2561
|
-
goto st0;
|
2562
|
-
st110:
|
2563
|
-
if ( ++p == pe )
|
2564
|
-
goto _test_eof110;
|
2565
|
-
case 110:
|
2566
|
-
switch( (*p) ) {
|
2567
|
-
case 32: goto tr2;
|
2568
|
-
case 36: goto st111;
|
2569
|
-
case 95: goto st111;
|
2570
|
-
}
|
2571
|
-
if ( (*p) < 48 ) {
|
2572
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
2573
|
-
goto st111;
|
2574
|
-
} else if ( (*p) > 57 ) {
|
2575
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
2576
|
-
goto st111;
|
2577
|
-
} else
|
2578
|
-
goto st111;
|
2579
|
-
goto st0;
|
2580
|
-
st111:
|
2581
|
-
if ( ++p == pe )
|
2582
|
-
goto _test_eof111;
|
2583
|
-
case 111:
|
2584
|
-
switch( (*p) ) {
|
2585
|
-
case 32: goto tr2;
|
2586
|
-
case 36: goto st112;
|
2587
|
-
case 95: goto st112;
|
2588
|
-
}
|
2589
|
-
if ( (*p) < 48 ) {
|
2590
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
2591
|
-
goto st112;
|
2592
|
-
} else if ( (*p) > 57 ) {
|
2593
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
2594
|
-
goto st112;
|
2595
|
-
} else
|
2596
|
-
goto st112;
|
2597
|
-
goto st0;
|
2598
|
-
st112:
|
2599
|
-
if ( ++p == pe )
|
2600
|
-
goto _test_eof112;
|
2601
|
-
case 112:
|
2602
|
-
switch( (*p) ) {
|
2603
|
-
case 32: goto tr2;
|
2604
|
-
case 36: goto st113;
|
2605
|
-
case 95: goto st113;
|
2606
|
-
}
|
2607
|
-
if ( (*p) < 48 ) {
|
2608
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
2609
|
-
goto st113;
|
2610
|
-
} else if ( (*p) > 57 ) {
|
2611
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
2612
|
-
goto st113;
|
2613
|
-
} else
|
2614
|
-
goto st113;
|
2615
|
-
goto st0;
|
2616
|
-
st113:
|
2617
|
-
if ( ++p == pe )
|
2618
|
-
goto _test_eof113;
|
2619
|
-
case 113:
|
2620
|
-
switch( (*p) ) {
|
2621
|
-
case 32: goto tr2;
|
2622
|
-
case 36: goto st114;
|
2623
|
-
case 95: goto st114;
|
2624
|
-
}
|
2625
|
-
if ( (*p) < 48 ) {
|
2626
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
2627
|
-
goto st114;
|
2628
|
-
} else if ( (*p) > 57 ) {
|
2629
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
2630
|
-
goto st114;
|
2631
|
-
} else
|
2632
|
-
goto st114;
|
2633
|
-
goto st0;
|
2634
|
-
st114:
|
2635
|
-
if ( ++p == pe )
|
2636
|
-
goto _test_eof114;
|
2637
|
-
case 114:
|
2638
|
-
switch( (*p) ) {
|
2639
|
-
case 32: goto tr2;
|
2640
|
-
case 36: goto st115;
|
2641
|
-
case 95: goto st115;
|
2642
|
-
}
|
2643
|
-
if ( (*p) < 48 ) {
|
2644
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
2645
|
-
goto st115;
|
2646
|
-
} else if ( (*p) > 57 ) {
|
2647
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
2648
|
-
goto st115;
|
2649
|
-
} else
|
2650
|
-
goto st115;
|
2651
|
-
goto st0;
|
2652
|
-
st115:
|
2653
|
-
if ( ++p == pe )
|
2654
|
-
goto _test_eof115;
|
2655
|
-
case 115:
|
2656
|
-
switch( (*p) ) {
|
2657
|
-
case 32: goto tr2;
|
2658
|
-
case 36: goto st116;
|
2659
|
-
case 95: goto st116;
|
2660
|
-
}
|
2661
|
-
if ( (*p) < 48 ) {
|
2662
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
2663
|
-
goto st116;
|
2664
|
-
} else if ( (*p) > 57 ) {
|
2665
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
2666
|
-
goto st116;
|
2667
|
-
} else
|
2668
|
-
goto st116;
|
2669
|
-
goto st0;
|
2670
|
-
st116:
|
2671
|
-
if ( ++p == pe )
|
2672
|
-
goto _test_eof116;
|
2673
|
-
case 116:
|
2674
|
-
switch( (*p) ) {
|
2675
|
-
case 32: goto tr2;
|
2676
|
-
case 36: goto st117;
|
2677
|
-
case 95: goto st117;
|
2678
|
-
}
|
2679
|
-
if ( (*p) < 48 ) {
|
2680
|
-
if ( 45 <= (*p) && (*p) <= 46 )
|
2681
|
-
goto st117;
|
2682
|
-
} else if ( (*p) > 57 ) {
|
2683
|
-
if ( 65 <= (*p) && (*p) <= 90 )
|
2684
|
-
goto st117;
|
2685
|
-
} else
|
2686
|
-
goto st117;
|
2687
|
-
goto st0;
|
2688
|
-
st117:
|
2689
|
-
if ( ++p == pe )
|
2690
|
-
goto _test_eof117;
|
2691
|
-
case 117:
|
2692
|
-
if ( (*p) == 32 )
|
2693
|
-
goto tr2;
|
2694
|
-
goto st0;
|
2695
|
-
}
|
2696
|
-
_test_eof2: cs = 2; goto _test_eof;
|
2697
|
-
_test_eof3: cs = 3; goto _test_eof;
|
2698
|
-
_test_eof4: cs = 4; goto _test_eof;
|
2699
|
-
_test_eof5: cs = 5; goto _test_eof;
|
2700
|
-
_test_eof6: cs = 6; goto _test_eof;
|
2701
|
-
_test_eof7: cs = 7; goto _test_eof;
|
2702
|
-
_test_eof8: cs = 8; goto _test_eof;
|
2703
|
-
_test_eof9: cs = 9; goto _test_eof;
|
2704
|
-
_test_eof10: cs = 10; goto _test_eof;
|
2705
|
-
_test_eof11: cs = 11; goto _test_eof;
|
2706
|
-
_test_eof12: cs = 12; goto _test_eof;
|
2707
|
-
_test_eof13: cs = 13; goto _test_eof;
|
2708
|
-
_test_eof14: cs = 14; goto _test_eof;
|
2709
|
-
_test_eof15: cs = 15; goto _test_eof;
|
2710
|
-
_test_eof16: cs = 16; goto _test_eof;
|
2711
|
-
_test_eof118: cs = 118; goto _test_eof;
|
2712
|
-
_test_eof17: cs = 17; goto _test_eof;
|
2713
|
-
_test_eof18: cs = 18; goto _test_eof;
|
2714
|
-
_test_eof19: cs = 19; goto _test_eof;
|
2715
|
-
_test_eof20: cs = 20; goto _test_eof;
|
2716
|
-
_test_eof21: cs = 21; goto _test_eof;
|
2717
|
-
_test_eof22: cs = 22; goto _test_eof;
|
2718
|
-
_test_eof23: cs = 23; goto _test_eof;
|
2719
|
-
_test_eof24: cs = 24; goto _test_eof;
|
2720
|
-
_test_eof25: cs = 25; goto _test_eof;
|
2721
|
-
_test_eof26: cs = 26; goto _test_eof;
|
2722
|
-
_test_eof27: cs = 27; goto _test_eof;
|
2723
|
-
_test_eof28: cs = 28; goto _test_eof;
|
2724
|
-
_test_eof29: cs = 29; goto _test_eof;
|
2725
|
-
_test_eof30: cs = 30; goto _test_eof;
|
2726
|
-
_test_eof31: cs = 31; goto _test_eof;
|
2727
|
-
_test_eof32: cs = 32; goto _test_eof;
|
2728
|
-
_test_eof33: cs = 33; goto _test_eof;
|
2729
|
-
_test_eof34: cs = 34; goto _test_eof;
|
2730
|
-
_test_eof35: cs = 35; goto _test_eof;
|
2731
|
-
_test_eof36: cs = 36; goto _test_eof;
|
2732
|
-
_test_eof37: cs = 37; goto _test_eof;
|
2733
|
-
_test_eof38: cs = 38; goto _test_eof;
|
2734
|
-
_test_eof39: cs = 39; goto _test_eof;
|
2735
|
-
_test_eof40: cs = 40; goto _test_eof;
|
2736
|
-
_test_eof41: cs = 41; goto _test_eof;
|
2737
|
-
_test_eof42: cs = 42; goto _test_eof;
|
2738
|
-
_test_eof43: cs = 43; goto _test_eof;
|
2739
|
-
_test_eof44: cs = 44; goto _test_eof;
|
2740
|
-
_test_eof45: cs = 45; goto _test_eof;
|
2741
|
-
_test_eof46: cs = 46; goto _test_eof;
|
2742
|
-
_test_eof47: cs = 47; goto _test_eof;
|
2743
|
-
_test_eof48: cs = 48; goto _test_eof;
|
2744
|
-
_test_eof49: cs = 49; goto _test_eof;
|
2745
|
-
_test_eof50: cs = 50; goto _test_eof;
|
2746
|
-
_test_eof51: cs = 51; goto _test_eof;
|
2747
|
-
_test_eof52: cs = 52; goto _test_eof;
|
2748
|
-
_test_eof53: cs = 53; goto _test_eof;
|
2749
|
-
_test_eof54: cs = 54; goto _test_eof;
|
2750
|
-
_test_eof55: cs = 55; goto _test_eof;
|
2751
|
-
_test_eof56: cs = 56; goto _test_eof;
|
2752
|
-
_test_eof57: cs = 57; goto _test_eof;
|
2753
|
-
_test_eof58: cs = 58; goto _test_eof;
|
2754
|
-
_test_eof59: cs = 59; goto _test_eof;
|
2755
|
-
_test_eof60: cs = 60; goto _test_eof;
|
2756
|
-
_test_eof61: cs = 61; goto _test_eof;
|
2757
|
-
_test_eof62: cs = 62; goto _test_eof;
|
2758
|
-
_test_eof63: cs = 63; goto _test_eof;
|
2759
|
-
_test_eof64: cs = 64; goto _test_eof;
|
2760
|
-
_test_eof65: cs = 65; goto _test_eof;
|
2761
|
-
_test_eof66: cs = 66; goto _test_eof;
|
2762
|
-
_test_eof67: cs = 67; goto _test_eof;
|
2763
|
-
_test_eof68: cs = 68; goto _test_eof;
|
2764
|
-
_test_eof69: cs = 69; goto _test_eof;
|
2765
|
-
_test_eof70: cs = 70; goto _test_eof;
|
2766
|
-
_test_eof71: cs = 71; goto _test_eof;
|
2767
|
-
_test_eof72: cs = 72; goto _test_eof;
|
2768
|
-
_test_eof73: cs = 73; goto _test_eof;
|
2769
|
-
_test_eof74: cs = 74; goto _test_eof;
|
2770
|
-
_test_eof75: cs = 75; goto _test_eof;
|
2771
|
-
_test_eof76: cs = 76; goto _test_eof;
|
2772
|
-
_test_eof77: cs = 77; goto _test_eof;
|
2773
|
-
_test_eof78: cs = 78; goto _test_eof;
|
2774
|
-
_test_eof79: cs = 79; goto _test_eof;
|
2775
|
-
_test_eof80: cs = 80; goto _test_eof;
|
2776
|
-
_test_eof81: cs = 81; goto _test_eof;
|
2777
|
-
_test_eof82: cs = 82; goto _test_eof;
|
2778
|
-
_test_eof83: cs = 83; goto _test_eof;
|
2779
|
-
_test_eof84: cs = 84; goto _test_eof;
|
2780
|
-
_test_eof85: cs = 85; goto _test_eof;
|
2781
|
-
_test_eof86: cs = 86; goto _test_eof;
|
2782
|
-
_test_eof87: cs = 87; goto _test_eof;
|
2783
|
-
_test_eof88: cs = 88; goto _test_eof;
|
2784
|
-
_test_eof89: cs = 89; goto _test_eof;
|
2785
|
-
_test_eof90: cs = 90; goto _test_eof;
|
2786
|
-
_test_eof91: cs = 91; goto _test_eof;
|
2787
|
-
_test_eof92: cs = 92; goto _test_eof;
|
2788
|
-
_test_eof93: cs = 93; goto _test_eof;
|
2789
|
-
_test_eof94: cs = 94; goto _test_eof;
|
2790
|
-
_test_eof95: cs = 95; goto _test_eof;
|
2791
|
-
_test_eof96: cs = 96; goto _test_eof;
|
2792
|
-
_test_eof97: cs = 97; goto _test_eof;
|
2793
|
-
_test_eof98: cs = 98; goto _test_eof;
|
2794
|
-
_test_eof99: cs = 99; goto _test_eof;
|
2795
|
-
_test_eof100: cs = 100; goto _test_eof;
|
2796
|
-
_test_eof101: cs = 101; goto _test_eof;
|
2797
|
-
_test_eof102: cs = 102; goto _test_eof;
|
2798
|
-
_test_eof103: cs = 103; goto _test_eof;
|
2799
|
-
_test_eof104: cs = 104; goto _test_eof;
|
2800
|
-
_test_eof105: cs = 105; goto _test_eof;
|
2801
|
-
_test_eof106: cs = 106; goto _test_eof;
|
2802
|
-
_test_eof107: cs = 107; goto _test_eof;
|
2803
|
-
_test_eof108: cs = 108; goto _test_eof;
|
2804
|
-
_test_eof109: cs = 109; goto _test_eof;
|
2805
|
-
_test_eof110: cs = 110; goto _test_eof;
|
2806
|
-
_test_eof111: cs = 111; goto _test_eof;
|
2807
|
-
_test_eof112: cs = 112; goto _test_eof;
|
2808
|
-
_test_eof113: cs = 113; goto _test_eof;
|
2809
|
-
_test_eof114: cs = 114; goto _test_eof;
|
2810
|
-
_test_eof115: cs = 115; goto _test_eof;
|
2811
|
-
_test_eof116: cs = 116; goto _test_eof;
|
2812
|
-
_test_eof117: cs = 117; goto _test_eof;
|
2813
|
-
|
2814
|
-
_test_eof: {}
|
2815
|
-
_out: {}
|
2816
|
-
}
|
2817
|
-
#line 197 "src/parser.rl"
|
2818
|
-
|
2819
|
-
parser->cs = cs;
|
2820
|
-
parser->nread += p - (buffer + off);
|
2821
|
-
|
2822
|
-
assert(p <= pe && "buffer overflow after parsing execute");
|
2823
|
-
assert(parser->nread <= len && "nread longer than length");
|
2824
|
-
assert(parser->body_start <= len && "body starts after buffer end");
|
2825
|
-
assert(parser->mark < len && "mark is after buffer end");
|
2826
|
-
assert(parser->field_len <= len && "field has length longer than whole buffer");
|
2827
|
-
assert(parser->field_start < len && "field starts after buffer end");
|
2828
|
-
|
2829
|
-
if(parser->nread > 1024 * (80 + 32))
|
2830
|
-
parser->overflow_error = TRUE;
|
2831
|
-
|
2832
|
-
|
2833
|
-
/* Ragel 6 does not use write eof; no need for this
|
2834
|
-
if(parser->body_start) {
|
2835
|
-
// final \r\n combo encountered so stop right here
|
2836
|
-
parser->nread++;
|
2837
|
-
%% write eof;
|
2838
|
-
}
|
2839
|
-
*/
|
2840
|
-
|
2841
|
-
return(parser->nread);
|
2842
|
-
}
|
2843
|
-
|
2844
|
-
int http_parser_finish(http_parser *parser)
|
2845
|
-
{
|
2846
|
-
if (http_parser_has_error(parser))
|
2847
|
-
return -1;
|
2848
|
-
else if (http_parser_is_finished(parser))
|
2849
|
-
return 1;
|
2850
|
-
else
|
2851
|
-
return 0;
|
2852
|
-
}
|
2853
|
-
|
2854
|
-
int http_parser_has_error(http_parser *parser) {
|
2855
|
-
return parser->cs == http_parser_error || parser->overflow_error;
|
2856
|
-
}
|
2857
|
-
|
2858
|
-
int http_parser_is_finished(http_parser *parser) {
|
2859
|
-
return parser->cs >= http_parser_first_final;
|
2860
|
-
}
|