Skip to content
Snippets Groups Projects
Commit cec7796e authored by Markus Pfeiffer's avatar Markus Pfeiffer
Browse files

Output attributes as well

parent 0e4e5f68
No related branches found
No related tags found
No related merge requests found
......@@ -15,23 +15,50 @@ GAPFilterToFilterType := function(fid)
elif INFO_FILTERS[fid] in FNUM_PROS then
return "GAP_Property";
elif INFO_FILTERS[fid] in FNUM_TPRS then
return "GAP_Tester";
return "GAP_TrueProperty";
else
return "GAP_Filter";
fi;
end;
GAPAndFilterUnpack := function(t)
local res;
res := [];
if IsOperation(t) then
if (IsInt(FLAG1_FILTER(t)) and IsInt(FLAG2_FILTER(t)))
then
Add(res, NAME_FUNC(t));
else
Append(res, GAPTypeUnpack(FLAG1_FILTER(t)));
Append(res, GAPTypeUnpack(FLAG2_FILTER(t)));
fi;
fi;
return res;
end;
# Make GAP Type graph as a record
GAPTypesInfo := function()
local res, lres, i, ff;
local res, lres, i, f, ff;
res := rec();
for i in [1..Length(FILTERS)] do
if IsBound(FILTERS[i]) then
lres := rec();
f := FILTERS[i];
lres.type := GAPFilterToFilterType(i);
# if the filter is an attribute and FLAG1_FILTER of the filter
# is not equal to it, then this is a tester.
if lres.type = "GAP_Attribute" then
if
(FLAG1_FILTER(f)) <> 0 and (FLAG1_FILTER(f) <> i) then
lres.testerfor := NAME_FUNC(FILTERS[FLAG1_FILTER(f)]);
fi;
fi;
ff := TRUES_FLAGS(WITH_IMPS_FLAGS(FLAGS_FILTER(FILTERS[i])));
lres.implied := List(ff,
......@@ -45,7 +72,13 @@ GAPTypesInfo := function()
res.(NAME_FUNC(FILTERS[i])) := lres;
fi;
od;
for i in [1..Length(ATTRIBUTES)] do
lres := rec();
lres.type := "GAP_Attribute";
lres.filters := GAPAndFilterUnpack(ATTRIBUTES[i][2]);
res.(ATTRIBUTES[i][1]) := lres;
od;
return res;
end;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment