protected PdvmBasedAnalysis( GraphStructuredProgram <int> program, IContextProcessor <TState, TStackSymbol, Node, OperationEdge <Node>, TContext, GssNode <TStackSymbol, TGssData> > contextProcessor, Func <PDVM <TState, TStackSymbol, Node, OperationEdge <Node>, TContext, TGssData> > pdvmProvider) : base(program) { InternalCacheProvider = new CacheProvider <TState, TStackSymbol, TContext, GssNode <TStackSymbol, TGssData> >(); InternalTransitionProvider = new TransitionProvider(program); InternalSimulation = new PDVMSimulation <TState, TStackSymbol, int, OperationEdge <int>, TContext, TGssData>( contextProcessor, InternalCacheProvider, InternalTransitionProvider, pdvmProvider); }
public MyPDVMState( IContextProcessor <TState, TStackSymbol, TPosition, TTransition, TContext, GssNode <TStackSymbol, TGssData> > contextProcessor, ICacheProvider <TState, TStackSymbol, TPosition, TContext, GssNode <TStackSymbol, TGssData> > cacheProvider, PopHistory <TState, TTransition, TPosition, TContext, GssNode <TStackSymbol, TGssData> > popHistory) { ContextProcessor = contextProcessor; CacheProvider = cacheProvider; PopHistory = popHistory; myProcessing = new Stack <Head <TState, TPosition, TContext, GssNode <TStackSymbol, TGssData> > >(); myQueued = new Stack <Action>(); }
public PDVMSimulation( IContextProcessor <TState, TStackSymbol, TPosition, TTransition, TContext, GssNode <TStackSymbol, TGssData> > contextProcessor, ICacheProvider <TState, TStackSymbol, TPosition, TContext, GssNode <TStackSymbol, TGssData> > cacheProvider, ITransitionProvider <TPosition, TTransition> transitionProvider, Func <PDVM <TState, TStackSymbol, TPosition, TTransition, TContext, TGssData> > pdvmProvider) { myContextProcessor = contextProcessor; myCacheProvider = cacheProvider; myTransitionProvider = transitionProvider; myPopHistory = new PopHistory <TState, TTransition, TPosition, TContext, GssNode <TStackSymbol, TGssData> >(); myPdvm = pdvmProvider(); myGssRoots = new Dictionary <TStackSymbol, GssNode <TStackSymbol, TGssData> >(); myStarts = new Queue <Head <TState, TPosition, TContext, GssNode <TStackSymbol, TGssData> > >(); }
public DPDASimulation( IDPDA <TState, TStackSymbol, TPosition, TTransition> pda, IContextProcessor <TState, TStackSymbol, TPosition, TTransition, TContext, GssNode <TStackSymbol, TGssData> > contextProcessor, ICacheProvider <TState, TStackSymbol, TPosition, TContext, GssNode <TStackSymbol, TGssData> > cacheProvider, ITransitionProvider <TPosition, TTransition> transitionProvider) { myPda = pda; myContextProcessor = contextProcessor; myCacheProvider = cacheProvider; myTransitionProvider = transitionProvider; myProcessing = new Stack <MyHead>(); myStarts = new Queue <MyHead>(); myStackRoot = new GssNode <TStackSymbol, TGssData>(pda.GetInitialStackData()); myPopHistory = new PopHistory <TState, TTransition, TPosition, TContext, GssNode <TStackSymbol, TGssData> >(); }