1
0
forked from GitHub/gf-core

filter out empty brackets

This commit is contained in:
krangelov
2020-07-26 15:55:18 +02:00
parent 0cee82f715
commit a2d7f1369c

View File

@@ -2301,26 +2301,29 @@ pgf_get_parse_roots(PgfParsing* ps, GuPool* pool)
PGF_API GuSeq* PGF_API GuSeq*
pgf_ccat_to_range(PgfParsing* ps, PgfCCat* ccat, GuPool* pool) pgf_ccat_to_range(PgfParsing* ps, PgfCCat* ccat, GuPool* pool)
{ {
PgfItemConts* conts = ccat->conts;
PgfParseState* state = ps->before; PgfParseState* state = ps->before;
GuBuf* buf = gu_new_buf(PgfParseRange, pool); GuBuf* buf = gu_new_buf(PgfParseRange, pool);
while (conts != NULL) { while (ccat->conts != NULL) {
PgfParseRange* range = gu_buf_extend(buf); size_t start = ccat->conts->state->end_offset;
range->start = conts->state->end_offset; size_t end = start;
range->end = conts->state->end_offset;
range->field = conts->ccat->cnccat->labels[conts->lin_idx];
while (state != NULL) { while (state != NULL) {
if (pgf_parsing_get_completed(state, conts) == ccat) { if (pgf_parsing_get_completed(state, ccat->conts) == ccat) {
if (state->start_offset >= range->start) if (state->start_offset >= start)
range->end = state->start_offset; end = state->start_offset;
break; break;
} }
state = state->next; state = state->next;
} }
conts = conts->ccat->conts; if (start != end) {
PgfParseRange* range = gu_buf_extend(buf);
range->start = start;
range->end = end;
range->field = ccat->cnccat->labels[ccat->conts->lin_idx];
}
ccat = ccat->conts->ccat;
} }
return gu_buf_data_seq(buf); return gu_buf_data_seq(buf);