nogen include "../scg/scg.cd"; package nwf; import scg.*; import edu.neu.ccs.demeterf.lib.*; import edu.neu.ccs.demeterf.*; import java.util.Iterator; nogen List(X) = Cons(X) | Empty(X). nogen Cons(X) = X List(X). nogen Empty(X) = . nogen Option(X)= Some(X) | None(X). nogen Some(X) = X. nogen None(X) = . EdgeLabeledGraph(N,L1,L2) = List(Adjacency(N,L1,L2)). Adjacency(N,L1,L2) = N "successors" "(" List(NodeAndLabel(N,L1,L2)) ")". NodeAndLabel(N,L1,L2) = N *s L1 *s L2. NWFInstance = // Instance, NWF means NetworkFlow "instance" EdgeLabeledGraph(Node, EdgeCapacity, EdgeFlow) "source" Node "sink" Node implements InstanceI. Node = String. EdgeCapacity = "c" *s int. NWFSolution = // the flow for this NWFInstance "solution" EdgeLabeledGraph(Node, EdgeCapacity, EdgeFlow) "source" Node "sink" Node implements SolutionI. EdgeFlow = "f" *s int. NWFDomain = implements DomainI. NWFConfig = "nwf_config[" "maxN:" int //maximum node number in Instance allowed "]" implements DomainConfigI. NWFInstanceSet = NWFInstance implements InstanceSetI.