fix in the parsing with pre

This commit is contained in:
kr.angelov
2013-11-06 16:25:25 +00:00
parent cab341c3d9
commit 6c71830c10

View File

@@ -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;
} }