multisetrewrite-0.3: Multi-set rewrite rules with guards and a parallel execution scheme

MultiSetRewrite.StoreRepresentation

Documentation

data HashOp msg Source

Constructors

HashOp 

Fields

numberOfTables :: HashIdx
 
hashMsg :: msg -> HashIdx
 

data Store msg Source

Constructors

Store 

Fields

msgTable :: [Bag (InternalMsg msg)]
 
hashOp :: HashOp msg
 

Instances

(EMatch msg, Eq msg, Show msg) => RuleCompiler (Store msg) msg (Location msg) HashIdx (Iterator (InternalMsg msg)) 

type Location msg = IORef (List (InternalMsg msg))Source

newStore :: (EMatch msg, Eq msg, Show msg) => HashOp msg -> IO (Store msg)Source

compileRulePattern :: (EMatch msg, Eq msg, Show msg) => [([MatchTask msg], Code_RHS ())] -> [CompClause (Store msg) (Location msg) ()]Source

addMsg :: (EMatch msg, Eq msg, Show msg) => Store msg -> msg -> IO (Location msg)Source

executeRules :: (EMatch msg, Eq msg, Show msg) => Store msg -> Location msg -> [CompClause (Store msg) (Location msg) ()] -> IO (Maybe (Code_RHS ()))Source