Relation modifiers serve to indicate which kind of functions should be called to navigate in the generated code. From 's point of view a functor-created graph defines two default fields for the parameter domains of the functor application. These two default fields can be used as predicates in clauses. For instance, if we have the following CoSy-fSDL definition
then the functor call BlockGraph: SGRAPH(BasicBlock) creates
for domain BasicBlock two default fields
BlockGraph and BlockGraph.pred.
These field names denote all successors resp. predecessors of a
BasicBlock concerning the functor-created graph BlockGraph.
With p.succ or p the successor relation of graph
p is
denoted, with p.pred the predecessor relation is denoted.