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(); }
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(); }
public static T findPay <T> (this LL <T> node_in, string search_name) => node_in.findNode(search_name).pay; // todo remove
public Ref resolve(string name) { try { return(LL2Ref(LL_head.findNode(name))); } catch (LL_Exception) { throw new ScopeFindException(); } }