mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 11:42:49 -06:00
fix in the parsing with pre
This commit is contained in:
@@ -1473,39 +1473,37 @@ pgf_parsing_symbol(PgfParsing* ps, PgfItem* item, PgfSymbol sym)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case PGF_SYMBOL_KP: {
|
case PGF_SYMBOL_KP: {
|
||||||
if (ps->after != NULL) {
|
PgfSymbolKP* skp = gu_variant_data(sym);
|
||||||
PgfSymbolKP* skp = gu_variant_data(sym);
|
|
||||||
|
|
||||||
PgfSymbol sym;
|
|
||||||
if (item->alt == 0) {
|
|
||||||
PgfItem* new_item;
|
|
||||||
|
|
||||||
new_item = pgf_item_copy(item, ps);
|
PgfSymbol sym;
|
||||||
new_item->alt = 1;
|
if (item->alt == 0) {
|
||||||
new_item->alt_idx = 0;
|
PgfItem* new_item;
|
||||||
pgf_parsing_pre(ps, new_item, skp->default_form);
|
|
||||||
|
|
||||||
for (size_t i = 0; i < skp->n_forms; i++) {
|
new_item = pgf_item_copy(item, ps);
|
||||||
PgfSymbols* syms = skp->forms[i].form;
|
new_item->alt = 1;
|
||||||
PgfSymbols* syms2 = skp->default_form;
|
new_item->alt_idx = 0;
|
||||||
bool skip = false; /*pgf_tokens_equal(toks, toks2);
|
pgf_parsing_pre(ps, new_item, skp->default_form);
|
||||||
for (size_t j = 0; j < i; j++) {
|
|
||||||
PgfTokens* toks2 = skp->forms[j].form;
|
for (size_t i = 0; i < skp->n_forms; i++) {
|
||||||
skip |= pgf_tokens_equal(toks, toks2);
|
PgfSymbols* syms = skp->forms[i].form;
|
||||||
}*/
|
PgfSymbols* syms2 = skp->default_form;
|
||||||
if (!skip) {
|
bool skip = false; /*pgf_tokens_equal(toks, toks2);
|
||||||
new_item = pgf_item_copy(item, ps);
|
for (size_t j = 0; j < i; j++) {
|
||||||
new_item->alt = i+2;
|
PgfTokens* toks2 = skp->forms[j].form;
|
||||||
new_item->alt_idx = 0;
|
skip |= pgf_tokens_equal(toks, toks2);
|
||||||
pgf_parsing_pre(ps, new_item, syms);
|
}*/
|
||||||
}
|
if (!skip) {
|
||||||
|
new_item = pgf_item_copy(item, ps);
|
||||||
|
new_item->alt = i+2;
|
||||||
|
new_item->alt_idx = 0;
|
||||||
|
pgf_parsing_pre(ps, new_item, syms);
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
PgfSymbols* syms =
|
|
||||||
(item->alt == 1) ? skp->default_form :
|
|
||||||
skp->forms[item->alt-2].form;
|
|
||||||
pgf_parsing_pre(ps, item, syms);
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
PgfSymbols* syms =
|
||||||
|
(item->alt == 1) ? skp->default_form :
|
||||||
|
skp->forms[item->alt-2].form;
|
||||||
|
pgf_parsing_pre(ps, item, syms);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user