示例#1
0
文件: Scopes.cs 项目: elkawee/UShell
 public CH_deltaScope addRef(string name, out TypedCH CH)          // instead of resolve - but this one has "side effects" i.e. it returns an updated variant
 {
     try { CH = ownLL_head.findNode(name).pay; return(this); }
     catch (LL_Exception) { }
     try {
         CH = orig_scope.LL_head.findNode(name).pay;
         return(new CH_deltaScope(orig_scope, ownLL_head, externals.chain(name, CH)));
     } catch (LL_Exception) { }
     throw new ScopeException();
 }
示例#2
0
文件: Scopes.cs 项目: elkawee/UShell
 public preCH_deltaScope addRef(string name, out preCH pCH_out)        // this needs a more descriptive name
 {
     try {
         pCH_out = ownLL_head.findNode(name).pay;
         return(this);
     }  catch (LL_Exception) { }
     try {
         pCH_out = origLL_head.findNode(name).pay;
         return(new preCH_deltaScope(origScope, origLL_head, ownLL_head, externals.chain(name, pCH_out)));
     } catch (LL_Exception) { }
     throw new ScopeException();
 }
示例#3
0
文件: Scopes.cs 项目: elkawee/UShell
 public static T findPay <T> (this LL <T> node_in, string search_name) => node_in.findNode(search_name).pay;     // todo remove
示例#4
0
文件: Scopes.cs 项目: elkawee/UShell
 public Ref                        resolve(string name)
 {
     try                    { return(LL2Ref(LL_head.findNode(name))); }
     catch (LL_Exception) { throw new ScopeFindException(); }
 }