ferret 0.11.8.6 → 0.11.8.7
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.
- checksums.yaml +4 -4
- data/{README → README.md} +3 -6
- data/Rakefile +7 -7
- data/{TUTORIAL → TUTORIAL.md} +0 -0
- data/ext/BZLIB_blocksort.c +2 -2
- data/ext/BZLIB_bzlib.c +4 -10
- data/ext/BZLIB_compress.c +2 -2
- data/ext/BZLIB_crctable.c +2 -2
- data/ext/BZLIB_decompress.c +22 -2
- data/ext/BZLIB_huffman.c +2 -2
- data/ext/BZLIB_randtable.c +2 -2
- data/ext/bitvector.c +6 -6
- data/ext/bzlib.h +2 -2
- data/ext/bzlib_private.h +11 -5
- data/ext/compound_io.c +1 -1
- data/ext/document.c +6 -9
- data/ext/except.c +2 -2
- data/ext/except.h +2 -2
- data/ext/field_index.c +1 -1
- data/ext/global.c +21 -30
- data/ext/global.h +2 -0
- data/ext/index.c +13 -6
- data/ext/index.h +4 -1
- data/ext/internal.h +1 -0
- data/ext/multimapper.c +1 -1
- data/ext/q_fuzzy.c +2 -1
- data/ext/q_span.c +1 -1
- data/ext/r_analysis.c +1 -1
- data/ext/r_index.c +2 -2
- data/ext/r_qparser.c +1 -3
- data/ext/r_search.c +7 -6
- data/ext/r_store.c +2 -0
- data/ext/scanner.c +50 -45
- data/ext/scanner_mb.c +51 -46
- data/ext/scanner_utf8.c +56 -51
- data/ext/search.c +2 -1
- data/ext/sort.c +2 -5
- data/lib/ferret/version.rb +1 -1
- data/test/unit/index/tc_index.rb +4 -6
- metadata +8 -9
- data/setup.rb +0 -1555
data/ext/global.h
CHANGED
@@ -104,6 +104,8 @@ extern char *frt_estrcat(char *str, char *str_cat);
|
|
104
104
|
extern void frt_weprintf(const char *fmt, ...);
|
105
105
|
extern char *frt_epstrdup(const char *fmt, int len, ...);
|
106
106
|
|
107
|
+
extern char *frt_strapp(char *dst, const char *src);
|
108
|
+
|
107
109
|
extern const char *FRT_EMPTY_STRING;
|
108
110
|
|
109
111
|
extern int frt_scmp(const void *p1, const void *p2);
|
data/ext/index.c
CHANGED
@@ -105,7 +105,10 @@ static u64 str36_to_u64(char *p)
|
|
105
105
|
* @param ext extension of the filename (including .)
|
106
106
|
* @param gen generation
|
107
107
|
*/
|
108
|
-
char *fn_for_generation(char *buf,
|
108
|
+
char *fn_for_generation(char *buf,
|
109
|
+
const char *base,
|
110
|
+
const char *ext,
|
111
|
+
i64 gen)
|
109
112
|
{
|
110
113
|
if (-1 == gen) {
|
111
114
|
return NULL;
|
@@ -872,7 +875,7 @@ static void sis_find_segments_file(Store *store, FindSegmentsFile *fsf,
|
|
872
875
|
XENDTRY
|
873
876
|
|
874
877
|
if (NULL != gen_is) {
|
875
|
-
i64 gen0 = -1, gen1 = -1;
|
878
|
+
volatile i64 gen0 = -1, gen1 = -1;
|
876
879
|
|
877
880
|
TRY
|
878
881
|
gen0 = is_read_u64(gen_is);
|
@@ -1080,7 +1083,7 @@ static void sis_read_i(Store *store, FindSegmentsFile *fsf)
|
|
1080
1083
|
{
|
1081
1084
|
int seg_cnt;
|
1082
1085
|
int i;
|
1083
|
-
bool success = false;
|
1086
|
+
volatile bool success = false;
|
1084
1087
|
char seg_file_name[SEGMENT_NAME_MAX_LENGTH];
|
1085
1088
|
InStream *volatile is = NULL;
|
1086
1089
|
SegmentInfos *volatile sis = ALLOC_AND_ZERO(SegmentInfos);
|
@@ -1166,7 +1169,6 @@ void sis_write(SegmentInfos *sis, Store *store, Deleter *deleter)
|
|
1166
1169
|
static void sis_read_ver_i(Store *store, FindSegmentsFile *fsf)
|
1167
1170
|
{
|
1168
1171
|
InStream *is;
|
1169
|
-
u32 format = 0;
|
1170
1172
|
u64 version = 0;
|
1171
1173
|
char seg_file_name[SEGMENT_NAME_MAX_LENGTH];
|
1172
1174
|
|
@@ -1174,7 +1176,7 @@ static void sis_read_ver_i(Store *store, FindSegmentsFile *fsf)
|
|
1174
1176
|
is = store->open_input(store, seg_file_name);
|
1175
1177
|
|
1176
1178
|
TRY
|
1177
|
-
|
1179
|
+
is_read_u32(is); // format
|
1178
1180
|
version = is_read_u64(is);
|
1179
1181
|
XFINALLY
|
1180
1182
|
is_close(is);
|
@@ -1334,6 +1336,11 @@ static void zraise(int ret)
|
|
1334
1336
|
}
|
1335
1337
|
}
|
1336
1338
|
|
1339
|
+
void bz_internal_error(int errcode)
|
1340
|
+
{
|
1341
|
+
zraise(errcode);
|
1342
|
+
}
|
1343
|
+
|
1337
1344
|
static char *is_read_zipped_bytes(InStream *is, int zip_len, int *len)
|
1338
1345
|
{
|
1339
1346
|
int buf_out_idx = 0, ret, read_len;
|
@@ -4362,7 +4369,7 @@ static void bv_write(BitVector *bv, Store *store, char *name)
|
|
4362
4369
|
static BitVector *bv_read(Store *store, char *name)
|
4363
4370
|
{
|
4364
4371
|
int i;
|
4365
|
-
bool success = false;
|
4372
|
+
volatile bool success = false;
|
4366
4373
|
InStream *volatile is = store->open_input(store, name);
|
4367
4374
|
BitVector *volatile bv = ALLOC_AND_ZERO(BitVector);
|
4368
4375
|
bv->size = (int)is_read_vint(is);
|
data/ext/index.h
CHANGED
@@ -211,7 +211,10 @@ typedef struct FrtSegmentInfos
|
|
211
211
|
int capa;
|
212
212
|
} FrtSegmentInfos;
|
213
213
|
|
214
|
-
extern char *frt_fn_for_generation(char *buf,
|
214
|
+
extern char *frt_fn_for_generation(char *buf,
|
215
|
+
const char *base,
|
216
|
+
const char *ext,
|
217
|
+
frt_i64 gen);
|
215
218
|
|
216
219
|
extern FrtSegmentInfos *frt_sis_new(FrtFieldInfos *fis);
|
217
220
|
extern FrtSegmentInfo *frt_sis_new_segment(FrtSegmentInfos *sis, int dcnt, FrtStore *store);
|
data/ext/internal.h
CHANGED
data/ext/multimapper.c
CHANGED
@@ -177,7 +177,7 @@ static DeterministicState *mulmap_process_state(MultiMapper *self, BitVector *bv
|
|
177
177
|
}
|
178
178
|
self->dstates[self->d_size++] = current_state;
|
179
179
|
start_ds = self->dstates[0];
|
180
|
-
for (i = 0; i
|
180
|
+
for (i = 0; i < 256; i++) {
|
181
181
|
current_state->next[i] = start_ds;
|
182
182
|
}
|
183
183
|
while ((bit = bv_scan_next(bv)) >= 0) {
|
data/ext/q_fuzzy.c
CHANGED
@@ -208,7 +208,7 @@ static Query *fuzq_rewrite(Query *self, IndexReader *ir)
|
|
208
208
|
fuzq->scale_factor = (float)(1.0 / (1.0 - fuzq->min_sim));
|
209
209
|
fuzq->text = term + pre_len;
|
210
210
|
fuzq->text_len = (int)strlen(fuzq->text);
|
211
|
-
|
211
|
+
REALLOC_N(fuzq->da, int, fuzq->text_len * 2 + 2);
|
212
212
|
fuzq_initialize_max_distances(fuzq);
|
213
213
|
|
214
214
|
do {
|
@@ -261,6 +261,7 @@ Query *fuzq_new_conf(Symbol field, const char *term,
|
|
261
261
|
FzQ(self)->term = estrdup(term);
|
262
262
|
FzQ(self)->pre_len = pre_len ? pre_len : DEF_PRE_LEN;
|
263
263
|
FzQ(self)->min_sim = min_sim ? min_sim : DEF_MIN_SIM;
|
264
|
+
FzQ(self)->da = NULL;
|
264
265
|
MTQMaxTerms(self) = max_terms ? max_terms : DEF_MAX_TERMS;
|
265
266
|
|
266
267
|
self->type = FUZZY_QUERY;
|
data/ext/q_span.c
CHANGED
@@ -1430,7 +1430,7 @@ static Explanation *spanw_explain(Weight *self, IndexReader *ir, int target)
|
|
1430
1430
|
doc_freqs[df_i] = '\0';
|
1431
1431
|
}
|
1432
1432
|
else {
|
1433
|
-
doc_freqs = "";
|
1433
|
+
doc_freqs = estrdup("");
|
1434
1434
|
}
|
1435
1435
|
|
1436
1436
|
expl = expl_new(0.0, "weight(%s in %d), product of:", query_str, target);
|
data/ext/r_analysis.c
CHANGED
@@ -1186,7 +1186,7 @@ static VALUE
|
|
1186
1186
|
frb_stem_filter_init(int argc, VALUE *argv, VALUE self)
|
1187
1187
|
{
|
1188
1188
|
VALUE rsub_ts, ralgorithm, rcharenc;
|
1189
|
-
char *algorithm = "english";
|
1189
|
+
const char *algorithm = "english";
|
1190
1190
|
char *charenc = NULL;
|
1191
1191
|
TokenStream *ts;
|
1192
1192
|
rb_scan_args(argc, argv, "12", &rsub_ts, &ralgorithm, &rcharenc);
|
data/ext/r_index.c
CHANGED
@@ -212,7 +212,7 @@ static VALUE
|
|
212
212
|
frb_fi_name(VALUE self)
|
213
213
|
{
|
214
214
|
FieldInfo *fi = (FieldInfo *)DATA_PTR(self);
|
215
|
-
return
|
215
|
+
return FSYM2SYM(fi->name);
|
216
216
|
}
|
217
217
|
|
218
218
|
/*
|
@@ -1094,7 +1094,7 @@ frb_tde_to_json(int argc, VALUE *argv, VALUE self)
|
|
1094
1094
|
VALUE rjson;
|
1095
1095
|
char *json, *jp;
|
1096
1096
|
int capa = 65536;
|
1097
|
-
char *format;
|
1097
|
+
const char *format;
|
1098
1098
|
char close = (argc > 0) ? ']' : '}';
|
1099
1099
|
bool do_positions = tde->next_position != NULL;
|
1100
1100
|
jp = json = ALLOC_N(char, capa);
|
data/ext/r_qparser.c
CHANGED
@@ -154,7 +154,6 @@ frb_qp_init(int argc, VALUE *argv, VALUE self)
|
|
154
154
|
VALUE roptions = Qnil;
|
155
155
|
VALUE rval;
|
156
156
|
Analyzer *analyzer = NULL;
|
157
|
-
bool has_options = false;
|
158
157
|
|
159
158
|
HashSet *all_fields = NULL;
|
160
159
|
HashSet *tkz_fields = NULL;
|
@@ -163,7 +162,6 @@ frb_qp_init(int argc, VALUE *argv, VALUE self)
|
|
163
162
|
|
164
163
|
if (rb_scan_args(argc, argv, "01", &roptions) > 0) {
|
165
164
|
if (TYPE(roptions) == T_HASH) {
|
166
|
-
has_options = true;
|
167
165
|
if (Qnil != (rval = rb_hash_aref(roptions, sym_default_field))) {
|
168
166
|
def_fields = frb_get_fields(rval);
|
169
167
|
}
|
@@ -253,7 +251,7 @@ frb_qp_init(int argc, VALUE *argv, VALUE self)
|
|
253
251
|
static VALUE
|
254
252
|
frb_qp_parse(VALUE self, VALUE rstr)
|
255
253
|
{
|
256
|
-
const char *msg = NULL;
|
254
|
+
const char *volatile msg = NULL;
|
257
255
|
volatile VALUE rq;
|
258
256
|
GET_QP;
|
259
257
|
rstr = rb_obj_as_string(rstr);
|
data/ext/r_search.c
CHANGED
@@ -197,7 +197,7 @@ frb_td_to_s(int argc, VALUE *argv, VALUE self)
|
|
197
197
|
VALUE rhits = rb_funcall(self, id_hits, 0);
|
198
198
|
Searcher *sea = (Searcher *)DATA_PTR(rb_funcall(self, id_searcher, 0));
|
199
199
|
const int len = RARRAY_LEN(rhits);
|
200
|
-
int capa = len * 64 + 100;
|
200
|
+
unsigned int capa = len * 64 + 100;
|
201
201
|
int p = 0;
|
202
202
|
char *str = ALLOC_N(char, len * 64 + 100);
|
203
203
|
Symbol field = fsym_id;
|
@@ -215,7 +215,7 @@ frb_td_to_s(int argc, VALUE *argv, VALUE self)
|
|
215
215
|
for (i = 0; i < len; i++) {
|
216
216
|
VALUE rhit = RARRAY_PTR(rhits)[i];
|
217
217
|
int doc_id = FIX2INT(rb_funcall(rhit, id_doc, 0));
|
218
|
-
char *value = "";
|
218
|
+
const char *value = "";
|
219
219
|
size_t value_len = 0;
|
220
220
|
LazyDoc *lzd = sea->get_lazy_doc(sea, doc_id);
|
221
221
|
LazyDocField *lzdf = lazy_doc_get(lzd, field);
|
@@ -923,7 +923,8 @@ static VALUE
|
|
923
923
|
frb_bc_to_s(VALUE self)
|
924
924
|
{
|
925
925
|
VALUE rstr;
|
926
|
-
char *qstr, *
|
926
|
+
char *qstr, *str;
|
927
|
+
const char *ostr = "";
|
927
928
|
int len;
|
928
929
|
GET_BC();
|
929
930
|
qstr = bc->query->to_s(bc->query, NULL);
|
@@ -2984,9 +2985,9 @@ frb_sea_highlight(int argc, VALUE *argv, VALUE self)
|
|
2984
2985
|
Query *query;
|
2985
2986
|
int excerpt_length = 150;
|
2986
2987
|
int num_excerpts = 2;
|
2987
|
-
char *pre_tag = "<b>";
|
2988
|
-
char *post_tag = "</b>";
|
2989
|
-
char *ellipsis = "...";
|
2988
|
+
const char *pre_tag = "<b>";
|
2989
|
+
const char *post_tag = "</b>";
|
2990
|
+
const char *ellipsis = "...";
|
2990
2991
|
char **excerpts;
|
2991
2992
|
|
2992
2993
|
rb_scan_args(argc, argv, "31", &rquery, &rdoc_id, &rfield, &roptions);
|
data/ext/r_store.c
CHANGED
@@ -75,6 +75,7 @@ frb_lock_obtain(int argc, VALUE *argv, VALUE self)
|
|
75
75
|
timeout = FIX2INT(rtimeout);
|
76
76
|
}
|
77
77
|
/* TODO: use the lock timeout */
|
78
|
+
(void)timeout;
|
78
79
|
if (!lock->obtain(lock)) {
|
79
80
|
rb_raise(cLockError, "could not obtain lock: #%s", lock->name);
|
80
81
|
}
|
@@ -105,6 +106,7 @@ frb_lock_while_locked(int argc, VALUE *argv, VALUE self)
|
|
105
106
|
if (rb_scan_args(argc, argv, "01", &rtimeout) > 0) {
|
106
107
|
timeout = FIX2INT(rtimeout);
|
107
108
|
}
|
109
|
+
(void)timeout;
|
108
110
|
if (!lock->obtain(lock)) {
|
109
111
|
rb_raise(cLockError, "could not obtain lock: #%s", lock->name);
|
110
112
|
}
|
data/ext/scanner.c
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
|
1
2
|
#line 1 "src/scanner.rl"
|
2
3
|
/* scanner.rl -*-C-*- */
|
3
4
|
#include <ctype.h>
|
@@ -15,11 +16,12 @@
|
|
15
16
|
goto ret; \
|
16
17
|
} while(0)
|
17
18
|
|
19
|
+
|
18
20
|
#line 28 "src/scanner.rl"
|
19
21
|
|
20
22
|
|
21
23
|
|
22
|
-
#line
|
24
|
+
#line 25 "src/scanner.c"
|
23
25
|
static const char _StdTok_actions[] = {
|
24
26
|
0, 1, 0, 1, 1, 1, 2, 1,
|
25
27
|
3, 1, 4, 1, 5, 1, 17, 1,
|
@@ -529,6 +531,7 @@ static const int StdTok_error = 0;
|
|
529
531
|
static const int StdTok_en_frt_tokenizer = 35;
|
530
532
|
static const int StdTok_en_main = 1;
|
531
533
|
|
534
|
+
|
532
535
|
#line 31 "src/scanner.rl"
|
533
536
|
|
534
537
|
void frt_std_scan(const char *in,
|
@@ -542,7 +545,7 @@ void frt_std_scan(const char *in,
|
|
542
545
|
char *ts = 0, *te = 0;
|
543
546
|
|
544
547
|
|
545
|
-
#line
|
548
|
+
#line 549 "src/scanner.c"
|
546
549
|
{
|
547
550
|
cs = StdTok_start;
|
548
551
|
top = 0;
|
@@ -550,6 +553,7 @@ void frt_std_scan(const char *in,
|
|
550
553
|
te = 0;
|
551
554
|
act = 0;
|
552
555
|
}
|
556
|
+
|
553
557
|
#line 43 "src/scanner.rl"
|
554
558
|
|
555
559
|
char *p = (char *)in, *pe = 0, *eof = pe;
|
@@ -562,7 +566,7 @@ void frt_std_scan(const char *in,
|
|
562
566
|
*token_size = 0;
|
563
567
|
|
564
568
|
|
565
|
-
#line
|
569
|
+
#line 570 "src/scanner.c"
|
566
570
|
{
|
567
571
|
int _klen;
|
568
572
|
unsigned int _trans;
|
@@ -580,10 +584,10 @@ _resume:
|
|
580
584
|
while ( _nacts-- > 0 ) {
|
581
585
|
switch ( *_acts++ ) {
|
582
586
|
case 4:
|
583
|
-
#line 1 "
|
587
|
+
#line 1 "NONE"
|
584
588
|
{ts = p;}
|
585
589
|
break;
|
586
|
-
#line
|
590
|
+
#line 591 "src/scanner.c"
|
587
591
|
}
|
588
592
|
}
|
589
593
|
|
@@ -605,7 +609,7 @@ _resume:
|
|
605
609
|
else if ( (*p) > *_mid )
|
606
610
|
_lower = _mid + 1;
|
607
611
|
else {
|
608
|
-
_trans += (_mid - _keys);
|
612
|
+
_trans += (unsigned int)(_mid - _keys);
|
609
613
|
goto _match;
|
610
614
|
}
|
611
615
|
}
|
@@ -628,7 +632,7 @@ _resume:
|
|
628
632
|
else if ( (*p) > _mid[1] )
|
629
633
|
_lower = _mid + 2;
|
630
634
|
else {
|
631
|
-
_trans += ((_mid - _keys)>>1);
|
635
|
+
_trans += (unsigned int)((_mid - _keys)>>1);
|
632
636
|
goto _match;
|
633
637
|
}
|
634
638
|
}
|
@@ -650,11 +654,11 @@ _eof_trans:
|
|
650
654
|
switch ( *_acts++ )
|
651
655
|
{
|
652
656
|
case 0:
|
653
|
-
#line 14 "src/
|
657
|
+
#line 14 "src/url.rl"
|
654
658
|
{ skip = p - ts; }
|
655
659
|
break;
|
656
660
|
case 1:
|
657
|
-
#line 26 "src/
|
661
|
+
#line 26 "src/url.rl"
|
658
662
|
{ trunc = 1; }
|
659
663
|
break;
|
660
664
|
case 2:
|
@@ -662,135 +666,135 @@ _eof_trans:
|
|
662
666
|
{ p--; {stack[top++] = cs; cs = 35; goto _again;} }
|
663
667
|
break;
|
664
668
|
case 5:
|
665
|
-
#line 1 "
|
669
|
+
#line 1 "NONE"
|
666
670
|
{te = p+1;}
|
667
671
|
break;
|
668
672
|
case 6:
|
669
|
-
#line 15 "src/scanner.
|
673
|
+
#line 15 "src/scanner.in"
|
670
674
|
{act = 2;}
|
671
675
|
break;
|
672
676
|
case 7:
|
673
|
-
#line 16 "src/scanner.
|
677
|
+
#line 16 "src/scanner.in"
|
674
678
|
{act = 3;}
|
675
679
|
break;
|
676
680
|
case 8:
|
677
|
-
#line 17 "src/scanner.
|
681
|
+
#line 17 "src/scanner.in"
|
678
682
|
{act = 4;}
|
679
683
|
break;
|
680
684
|
case 9:
|
681
|
-
#line 20 "src/scanner.
|
685
|
+
#line 20 "src/scanner.in"
|
682
686
|
{act = 5;}
|
683
687
|
break;
|
684
688
|
case 10:
|
685
|
-
#line 23 "src/scanner.
|
689
|
+
#line 23 "src/scanner.in"
|
686
690
|
{act = 6;}
|
687
691
|
break;
|
688
692
|
case 11:
|
689
|
-
#line 26 "src/scanner.
|
693
|
+
#line 26 "src/scanner.in"
|
690
694
|
{act = 7;}
|
691
695
|
break;
|
692
696
|
case 12:
|
693
|
-
#line 29 "src/scanner.
|
697
|
+
#line 29 "src/scanner.in"
|
694
698
|
{act = 8;}
|
695
699
|
break;
|
696
700
|
case 13:
|
697
|
-
#line 32 "src/scanner.
|
701
|
+
#line 32 "src/scanner.in"
|
698
702
|
{act = 9;}
|
699
703
|
break;
|
700
704
|
case 14:
|
701
|
-
#line 35 "src/scanner.
|
705
|
+
#line 35 "src/scanner.in"
|
702
706
|
{act = 10;}
|
703
707
|
break;
|
704
708
|
case 15:
|
705
|
-
#line 36 "src/scanner.
|
709
|
+
#line 36 "src/scanner.in"
|
706
710
|
{act = 11;}
|
707
711
|
break;
|
708
712
|
case 16:
|
709
|
-
#line 40 "src/scanner.
|
713
|
+
#line 40 "src/scanner.in"
|
710
714
|
{act = 13;}
|
711
715
|
break;
|
712
716
|
case 17:
|
713
|
-
#line 12 "src/scanner.
|
717
|
+
#line 12 "src/scanner.in"
|
714
718
|
{te = p+1;{ RET; }}
|
715
719
|
break;
|
716
720
|
case 18:
|
717
|
-
#line 29 "src/scanner.
|
721
|
+
#line 29 "src/scanner.in"
|
718
722
|
{te = p+1;{ RET; }}
|
719
723
|
break;
|
720
724
|
case 19:
|
721
|
-
#line 39 "src/scanner.
|
725
|
+
#line 39 "src/scanner.in"
|
722
726
|
{te = p+1;{ return; }}
|
723
727
|
break;
|
724
728
|
case 20:
|
725
|
-
#line 40 "src/scanner.
|
729
|
+
#line 40 "src/scanner.in"
|
726
730
|
{te = p+1;}
|
727
731
|
break;
|
728
732
|
case 21:
|
729
|
-
#line 12 "src/scanner.
|
733
|
+
#line 12 "src/scanner.in"
|
730
734
|
{te = p;p--;{ RET; }}
|
731
735
|
break;
|
732
736
|
case 22:
|
733
|
-
#line 15 "src/scanner.
|
737
|
+
#line 15 "src/scanner.in"
|
734
738
|
{te = p;p--;{ RET; }}
|
735
739
|
break;
|
736
740
|
case 23:
|
737
|
-
#line 16 "src/scanner.
|
741
|
+
#line 16 "src/scanner.in"
|
738
742
|
{te = p;p--;{ trunc = 1; RET; }}
|
739
743
|
break;
|
740
744
|
case 24:
|
741
|
-
#line 23 "src/scanner.
|
745
|
+
#line 23 "src/scanner.in"
|
742
746
|
{te = p;p--;{ RET; }}
|
743
747
|
break;
|
744
748
|
case 25:
|
745
|
-
#line 26 "src/scanner.
|
749
|
+
#line 26 "src/scanner.in"
|
746
750
|
{te = p;p--;{ RET; }}
|
747
751
|
break;
|
748
752
|
case 26:
|
749
|
-
#line 29 "src/scanner.
|
753
|
+
#line 29 "src/scanner.in"
|
750
754
|
{te = p;p--;{ RET; }}
|
751
755
|
break;
|
752
756
|
case 27:
|
753
|
-
#line 32 "src/scanner.
|
757
|
+
#line 32 "src/scanner.in"
|
754
758
|
{te = p;p--;{ STRIP('.'); }}
|
755
759
|
break;
|
756
760
|
case 28:
|
757
|
-
#line 35 "src/scanner.
|
761
|
+
#line 35 "src/scanner.in"
|
758
762
|
{te = p;p--;{ RET; }}
|
759
763
|
break;
|
760
764
|
case 29:
|
761
|
-
#line 36 "src/scanner.
|
765
|
+
#line 36 "src/scanner.in"
|
762
766
|
{te = p;p--;{ RET; }}
|
763
767
|
break;
|
764
768
|
case 30:
|
765
|
-
#line 40 "src/scanner.
|
769
|
+
#line 40 "src/scanner.in"
|
766
770
|
{te = p;p--;}
|
767
771
|
break;
|
768
772
|
case 31:
|
769
|
-
#line 12 "src/scanner.
|
773
|
+
#line 12 "src/scanner.in"
|
770
774
|
{{p = ((te))-1;}{ RET; }}
|
771
775
|
break;
|
772
776
|
case 32:
|
773
|
-
#line 15 "src/scanner.
|
777
|
+
#line 15 "src/scanner.in"
|
774
778
|
{{p = ((te))-1;}{ RET; }}
|
775
779
|
break;
|
776
780
|
case 33:
|
777
|
-
#line 23 "src/scanner.
|
781
|
+
#line 23 "src/scanner.in"
|
778
782
|
{{p = ((te))-1;}{ RET; }}
|
779
783
|
break;
|
780
784
|
case 34:
|
781
|
-
#line 29 "src/scanner.
|
785
|
+
#line 29 "src/scanner.in"
|
782
786
|
{{p = ((te))-1;}{ RET; }}
|
783
787
|
break;
|
784
788
|
case 35:
|
785
|
-
#line 35 "src/scanner.
|
789
|
+
#line 35 "src/scanner.in"
|
786
790
|
{{p = ((te))-1;}{ RET; }}
|
787
791
|
break;
|
788
792
|
case 36:
|
789
|
-
#line 40 "src/scanner.
|
793
|
+
#line 40 "src/scanner.in"
|
790
794
|
{{p = ((te))-1;}}
|
791
795
|
break;
|
792
796
|
case 37:
|
793
|
-
#line 1 "
|
797
|
+
#line 1 "NONE"
|
794
798
|
{ switch( act ) {
|
795
799
|
case 2:
|
796
800
|
{{p = ((te))-1;} RET; }
|
@@ -828,7 +832,7 @@ _eof_trans:
|
|
828
832
|
}
|
829
833
|
}
|
830
834
|
break;
|
831
|
-
#line
|
835
|
+
#line 836 "src/scanner.c"
|
832
836
|
}
|
833
837
|
}
|
834
838
|
|
@@ -838,10 +842,10 @@ _again:
|
|
838
842
|
while ( _nacts-- > 0 ) {
|
839
843
|
switch ( *_acts++ ) {
|
840
844
|
case 3:
|
841
|
-
#line 1 "
|
845
|
+
#line 1 "NONE"
|
842
846
|
{ts = 0;}
|
843
847
|
break;
|
844
|
-
#line
|
848
|
+
#line 849 "src/scanner.c"
|
845
849
|
}
|
846
850
|
}
|
847
851
|
|
@@ -860,6 +864,7 @@ _again:
|
|
860
864
|
|
861
865
|
_out: {}
|
862
866
|
}
|
867
|
+
|
863
868
|
#line 54 "src/scanner.rl"
|
864
869
|
|
865
870
|
if ( cs == StdTok_error )
|