using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using HeuristicLab.Algorithms.PushGP.Expressions; using HeuristicLab.Algorithms.PushGP.Stack; namespace HeuristicLab.Algorithms.PushGP.Interpreter { public interface IInterpreter { IStack CodeStack { get; } IStack ExecStack { get; } IStack NameStack { get; } IStack BooleanStack { get; } IStack IntegerStack { get; } IStack FloatStack { get; } IDictionary CustomExpressions { get; } void Interpret(string code); Task InterpretAsync(string code, bool paused = false, CancellationToken token = default(CancellationToken)); void Interpret(Expression program); Task InterpretAsync(Expression program, bool paused = false, CancellationToken token = default(CancellationToken)); Task AbortAndReset(); Task AbortAsync(); Task PauseAsync(); Task ResumeAsync(); void Step(); void PrintStacks(); } }