示例#1
0
文件: Scopes.cs 项目: elkawee/UShell
        public static void Test3_preCH_delta()
        {
            // basic
            var C1 = new TypedSingleCH <sC1>();
            var C2 = new TypedSingleCH <sC2>();
            var C3 = new TypedSingleCH <sC3>();

            var clSC = new CH_closedScope()
                       .decl("c1", C1)
                       .decl("c2", C2)
                       .decl("c3", C3);

            var D1 = new TypedSingleCH <sD1>();
            var D2 = new TypedSingleCH <sD2>();
            var D3 = new TypedSingleCH <sD3>();

            var pD1 = new adapter_preCH(D1);
            var pD2 = new adapter_preCH(D2);
            var pD3 = new adapter_preCH(D3);

            var pdeltaSC = new preCH_deltaScope(clSC)
                           .decl("c1", pD1)
                           .decl("delta_2", pD2);

            AssertEquivalent(pdeltaSC.instantiate().close(),
                             new []        { "delta_2", "c1", "c3", "c2" },
                             new TypedCH[] { D2, D1, C3, C2 });

            // todo : MOAR!
            Console.WriteLine("================= preDeltaScoping ok ============= ");
        }
 public override preCH_deltaScope scope(preCH_deltaScope c)
 {
     foreach (var sTU in subTUs)
     {
         c = sTU.scope(c);
     }
     return(c);
 }
示例#3
0
文件: Scopes.cs 项目: elkawee/UShell
        public static void Equivalent(CH_closedScope cls, preCH_deltaScope deltaSC)
        {
            int common_count = cls.refs().Count();
            var test         = cls.refs().Zip(deltaSC.refs(), (ref_L, ref_R) => ReferenceEquals(ref_L.CH, ref_R.pre_ch.CH));

            D.Assert(test.All(_ => _));                // all true
            D.Assert(test.Count() == common_count);    // re-evals ... stress testing is never bad
        }
 public override preCH_deltaScope scope(preCH_deltaScope c)
 {
     // piggyback the scoping on nonRX variant?
     if (assignVTNode != null)
     {
         return(assignVTNode.scope(c));
     }
     return(c);
 }
 public override preCH_deltaScope    scope(preCH_deltaScope c) => c;      // no decls or refs possible
示例#6
0
文件: VBoxTU.cs 项目: elkawee/UShell
 public abstract preCH_deltaScope scope(preCH_deltaScope c);