public bool ContainsKey( Mid.MidAttributeDecl attribute) { if (_attributes.ContainsKey(attribute)) { return(true); } if (_outer != null) { return(_outer.ContainsKey(attribute)); } return(false); }
public IEmitVal Lookup( Mid.MidAttributeDecl attribute, IEmitBlock block) { Func <IEmitBlock, IEmitVal> generator; if (_attributes.TryGetValue(attribute, out generator)) { return(generator(block)); } if (_outer != null) { return(_outer.Lookup(attribute, block)); } throw new KeyNotFoundException(); }
public void Insert( Mid.MidAttributeDecl attribute, Func <IEmitBlock, IEmitVal> generator) { _attributes[attribute] = generator; }