mergePGF now detects when grammars have different abstract syntaxes

This commit is contained in:
krangelov
2021-12-24 16:19:14 +01:00
parent 21d38a7b4a
commit 8b602d6c9f
2 changed files with 17 additions and 5 deletions

View File

@@ -395,10 +395,15 @@ void PgfReader::merge_abstract(ref<PgfAbstr> abstract)
{
this->abstract = abstract;
read_name(); // ?
merge_namespace<PgfFlag>(&PgfReader::read_flag); // ?
merge_namespace<PgfAbsFun>(&PgfReader::read_absfun); // ?
merge_namespace<PgfAbsCat>(&PgfReader::read_abscat); // ?
ref<PgfText> name = read_name();
int cmp = textcmp(&(*abstract->name), &(*name));
PgfDB::free(name);
if (cmp != 0)
throw pgf_error("The abstract syntax names doesn't match");
merge_namespace<PgfFlag>(&PgfReader::read_flag);
merge_namespace<PgfAbsFun>(&PgfReader::read_absfun);
merge_namespace<PgfAbsCat>(&PgfReader::read_abscat);
}
ref<PgfLParam> PgfReader::read_lparam()