0
+#line 1 "src/parser.rl"
0
+ * Copyright (c) 2005 Zed A. Shaw
0
+ * You can redistribute it and/or modify it under the same terms as Ruby.
0
+#define LEN(AT, FPC) (FPC - buffer - parser->AT)
0
+#define MARK(M,FPC) (parser->M = (FPC) - buffer)
0
+#define PTR_TO(F) (buffer + parser->F)
0
+#line 122 "src/parser.rl"
0
+#line 24 "src/parser.c"
0
+static const int http_parser_start = 1;
0
+static const int http_parser_first_final = 69;
0
+static const int http_parser_error = 0;
0
+static const int http_parser_en_main = 1;
0
+#line 126 "src/parser.rl"
0
+int http_parser_init(http_parser *parser) {
0
+#line 36 "src/parser.c"
0
+ cs = http_parser_start;
0
+#line 130 "src/parser.rl"
0
+ parser->body_start = 0;
0
+ parser->content_len = 0;
0
+ parser->field_len = 0;
0
+ parser->field_start = 0;
0
+size_t http_parser_execute(http_parser *parser, const char *buffer, size_t len, size_t off) {
0
+ assert(off <= len && "offset past end of buffer");
0
+ assert(*pe == '\0' && "pointer does not end on NUL");
0
+ assert(pe - p == len - off && "pointers aren't same distance");
0
+#line 68 "src/parser.c"
0
+ if ( 45 <= (*p) && (*p) <= 46 )
0
+ } else if ( (*p) > 57 ) {
0
+ if ( 65 <= (*p) && (*p) <= 90 )
0
+#line 20 "src/parser.rl"
0
+#line 98 "src/parser.c"
0
+ if ( 45 <= (*p) && (*p) <= 46 )
0
+ } else if ( (*p) > 57 ) {
0
+ if ( 65 <= (*p) && (*p) <= 90 )
0
+#line 41 "src/parser.rl"
0
+ if(parser->request_method != NULL)
0
+ parser->request_method(parser->data, PTR_TO(mark), LEN(mark, p));
0
+#line 124 "src/parser.c"
0
+ if ( 45 <= (*p) && (*p) <= 57 )
0
+ } else if ( (*p) > 90 ) {
0
+ if ( 97 <= (*p) && (*p) <= 122 )
0
+#line 20 "src/parser.rl"
0
+#line 148 "src/parser.c"
0
+#line 45 "src/parser.rl"
0
+ if(parser->request_uri != NULL)
0
+ parser->request_uri(parser->data, PTR_TO(mark), LEN(mark, p));
0
+#line 61 "src/parser.rl"
0
+ if(parser->request_path != NULL)
0
+ parser->request_path(parser->data, PTR_TO(mark), LEN(mark,p));
0
+#line 45 "src/parser.rl"
0
+ if(parser->request_uri != NULL)
0
+ parser->request_uri(parser->data, PTR_TO(mark), LEN(mark, p));
0
+#line 50 "src/parser.rl"
0
+ {MARK(query_start, p); }
0
+#line 51 "src/parser.rl"
0
+ if(parser->query_string != NULL)
0
+ parser->query_string(parser->data, PTR_TO(query_start), LEN(query_start, p));
0
+#line 45 "src/parser.rl"
0
+ if(parser->request_uri != NULL)
0
+ parser->request_uri(parser->data, PTR_TO(mark), LEN(mark, p));
0
+#line 51 "src/parser.rl"
0
+ if(parser->query_string != NULL)
0
+ parser->query_string(parser->data, PTR_TO(query_start), LEN(query_start, p));
0
+#line 45 "src/parser.rl"
0
+ if(parser->request_uri != NULL)
0
+ parser->request_uri(parser->data, PTR_TO(mark), LEN(mark, p));
0
+#line 201 "src/parser.c"
0
+#line 20 "src/parser.rl"
0
+#line 213 "src/parser.c"