1############################################################################# 2## 3## ToolsForHomalg package 4## 5## Copyright 2014, Sebastian Gutsche, University of Kaiserslautern 6## 7#! @Chapter Dependency and printing graph. 8## 9############################################################################# 10 11################################## 12## 13#! @Section Dependency graph for attributes 14## 15################################## 16 17DeclareCategory( "IsAttributeDependencyGraphForPrinting", 18 IsObject ); 19 20DeclareCategory( "IsAttributeDependencyGraphForPrintingNode", 21 IsObject ); 22 23################################## 24## 25#! @Section Filters 26## 27################################## 28 29DeclareFilter( "NotComputedNode" ); 30 31DeclareFilter( "FalseNode" ); 32 33DeclareFilter( "ImpliedNode" ); 34 35DeclareFilter( "NodeOfHighLevel" ); 36 37################################## 38## 39#! @Section Constructors 40## 41################################## 42 43DeclareGlobalFunction( "TOOLS_FOR_HOMALG_CREATE_NODE_INPUT" ); 44 45DeclareOperation( "CreateNode", 46 [ IsRecord ] ); 47 48DeclareOperation( "CreateConjunctionNode", 49 [ IsList, IsAttributeDependencyGraphForPrintingNode ] ); 50 51## FIXME: This should be a filter. But there is no filter for filters? IsFilter is not a filter. WTF? 52DeclareOperation( "CreatePrintingGraph", 53 [ IsOperation, IsObject ] ); 54 55DeclareOperation( "CreatePrintingGraph", 56 [ IsOperation ] ); 57 58################################## 59## 60#! @Section Setters 61## 62################################## 63 64DeclareOperation( "AddNodeToGraph", 65 [ IsAttributeDependencyGraphForPrinting, IsRecord ] ); 66 67DeclareOperation( "AddRelationToGraph", 68 [ IsAttributeDependencyGraphForPrinting, IsRecord ] ); 69 70################################## 71## 72#! @Section Getters 73## 74################################## 75 76DeclareOperation( "GetNodeByName", 77 [ IsAttributeDependencyGraphForPrinting, IsString ] ); 78 79DeclareOperation( "GetNodeByName", 80 [ IsAttributeDependencyGraphForPrinting, IsAttributeDependencyGraphForPrintingNode ] ); 81 82################################## 83## 84#! @Section Testers 85## 86################################## 87 88DeclareOperation( "MarkPrintingNode", 89 [ IsObject, IsAttributeDependencyGraphForPrintingNode, IsInt ] ); 90 91DeclareOperation( "MarkPrintingNode", 92 [ IsObject, IsAttributeDependencyGraphForPrintingNode, IsAttributeDependencyGraphForPrintingNode, IsInt ] ); 93 94DeclareOperation( "MarkAsImplied", 95 [ IsAttributeDependencyGraphForPrintingNode ] ); 96 97DeclareOperation( "MarkAsImplied", 98 [ IsAttributeDependencyGraphForPrintingNode, IsAttributeDependencyGraphForPrintingNode ] ); 99 100DeclareOperation( "MarkGraphForPrinting", 101 [ IsAttributeDependencyGraphForPrinting, IsObject, IsInt ] ); 102 103################################## 104## 105#! @Section Reseters 106## 107################################## 108 109DeclareGlobalFunction( "RESET_ALL_POSSIBLE_FILTERS_FOR_DEPENDENCY_GRAPH" ); 110 111DeclareOperation( "ResetGraph", 112 [ IsAttributeDependencyGraphForPrinting ] ); 113 114################################## 115## 116#! @Section Printers 117## 118################################## 119 120DeclareGlobalFunction( "DECIDE_TYPE_OF_PRINTING" ); 121 122DeclareGlobalFunction( "BUILD_PRINTING_FOR_VIEW_AND_DISPLAY" ); 123 124DeclareGlobalFunction( "OBJECT_PRINT_STRING" ); 125 126DeclareOperation( "StringMarkedGraphForStringMutable", 127 [ IsObject, IsAttributeDependencyGraphForPrinting ] ); 128 129DeclareOperation( "PrintMarkedGraphForViewObj", 130 [ IsObject, IsAttributeDependencyGraphForPrinting ] ); 131 132DeclareOperation( "PrintMarkedGraphForDisplay", 133 [ IsObject, IsAttributeDependencyGraphForPrinting ] ); 134 135DeclareOperation( "PrintMarkedGraphFull", 136 [ IsObject, IsAttributeDependencyGraphForPrinting ] ); 137 138DeclareOperation( "PrintMarkedGraphFullWithEverythingComputed", 139 [ IsObject, IsAttributeDependencyGraphForPrinting ] ); 140 141################################## 142## 143#! @Section Installers 144## 145################################## 146 147DeclareOperation( "FullView", 148 [ IsObject ] ); 149 150DeclareOperation( "FullViewWithEverythingComputed", 151 [ IsObject ] ); 152 153DeclareOperation( "InstallPrintFunctionsOutOfPrintingGraph", 154 [ IsAttributeDependencyGraphForPrinting ] ); 155 156DeclareOperation( "InstallPrintFunctionsOutOfPrintingGraph", 157 [ IsAttributeDependencyGraphForPrinting, IsInt ] ); 158 159DeclareOperation( "StringMutable", 160 [ IsObject ] ); 161 162