예제 #1
0
        public static async Task <NodeExpr> Eval(NodeExpr e, IAlgebra <N> a, CancellationToken t, IVars v = null)
        {
            var vv    = (v != null) ? a.Session.Vars.CreateAmbito(v) : a.Session.Vars;
            var visit = new EvaluateVisitor <N>(a, vv);
            var r     = await visit.Visit(e, t);

            t.ThrowIfCancellationRequested();

            return(r);
        }
예제 #2
0
 public ParserInternal(IAlgebra <T> a, string e, CancellationToken t)
 {
     mAlg = a;
     SetExpr(e);
     mTokenCancel        = t;
     Finished            = false;
     mSetResultCompleted = new TaskCompletionSource <ParseResult>();
     SetResultTask       = mSetResultCompleted.Task;
     mSetExprCompleted   = new TaskCompletionSource <string>();
     mSetExprTask        = mSetExprCompleted.Task;
 }
예제 #3
0
 public Parser(IAlgebra <T> a)
 {
     mAlg = a;
 }
예제 #4
0
 public EvaluateVisitor(IAlgebra <N> a, IVars v)
 {
     mAlg  = a;
     mVars = v;
 }
예제 #5
0
 public void ChangeAlgebra(EPrecisions p)
 {
     Alg = Algebra.Algebras[p].Invoke(this);
 }
예제 #6
0
 public AlgebraController(IAlgebra algebra)
 {
     _algebra = algebra;
 }
예제 #7
0
 public UIConsole(IAlgebra algebra)
 {
     _algebra = algebra;
 }