public IWorker extractMember(Identifier name) { throw new ClientException( String.Format( "attempted to extract member '{0}' from a null value", name)); }
public Method(Identifier name, IInterface face) { Debug.Assert(name != null); Debug.Assert(face != null); _name = name; _face = face; }
public static DerefResults commonDeref( Identifier name, IDictionary<Identifier,IScidentre> scidentres, IEnumerable<ISieve> sieves, IEnumerable<IWorker> exposes, IScope scope ) { DerefResults results = new DerefResults(null, null); if( scidentres != null && scidentres.ContainsKey(name) ) results.Add( scidentres[name].deref() ); if(sieves != null) foreach(ISieve d in sieves) results.Add(d.deref(name)); if(exposes != null && results.worker == null) { foreach(IWorker w in exposes) { DerefResults exposeResults = GE.deref(w, name); if(results.workerList == null || exposeResults.worker == null) results.Add(exposeResults); } } if(scope != null && results.worker == null) { DerefResults scopeResults = scope.upDeref(name); if(results.workerList == null || scopeResults.worker == null) results.Add(scopeResults); } return results; }
public void setProperty(Identifier propName, IWorker worker) { throw new ClientException( String.Format( "attempted to set property '{0}' of a null value", propName)); }
public ParameterInfo( Direction direction, IType type, Identifier name, bool hasDefaultValue ) { _direction = direction; _type = type; _name = name; _hasDefaultValue = hasDefaultValue; }
public ParameterImpl( Direction direction, IType type, Identifier name, IWorker defaultValue ) { _direction = direction; _type = type; _name = name; _defaultValue = defaultValue; }
//----- convenience methods public void addPropertyGetter(Identifier ident, PropGetFunc func) { addPropertyGetter( ident, new Function_Native( new ParameterImpl[]{}, Bridge.stdn_Nullable_any, delegate(IScope scope) { return func(); }, null)); }
public void addPropertySetter(Identifier ident, IWorker func) { addPropertySetter(ident, Bridge.toNativeFunction(func)); }
public void addPropertySetter(Identifier ident, IFunction func) { _propSetters.Add(ident, func); }
public void addMethod(Identifier ident, IFunction func) { if( ! _methods.ContainsKey(ident) ) _methods.Add( ident, new Dictionary<IInterface, IFunction>() ); _methods[ident].Add(func.face, func); }
public UnassignedDeclareFirst(Identifier ident) { _ident = ident; }
public NoCorrespondingNamespaceScidentre(Identifier ident) { _ident = ident; }
public static IWorker evalIdent(ISieve d, Identifier name) { DerefResults results = d.deref(name); if( results.worker != null ) return results.worker; if( results.workerList != null ) { if( results.workerList.Count > 1 ) throw new NotImplementedException(); return results.workerList[0]; } throw new ClientException( String.Format("scidentre '{0}' not found", name)); }
public static void declareAssign( Identifier name, ScidentreCategory cat, NType type, IWorker worker, IScope scope ) { IScidentre ws = scope.reserveScidentre(name, cat); ws.type = type; ws.assign(worker); }
public Property(Identifier name, bool writable, IType type) { _name = name; _writable = writable; _type = type; }
public static HashSet<IScidentre> commonFindEmptyScidentres( Identifier name, IDictionary<Identifier,IScidentre> scidentres, IEnumerable<ISieve> sieves, IScope scope ) { HashSet<IScidentre> results = new HashSet<IScidentre>(); if(scidentres.ContainsKey(name)) results.Add( scidentres[name] ); foreach(ISieve d in sieves) results.UnionWith( d.findEmptyScidentres(name) ); if(scope != null) results.UnionWith(scope.upFindEmptyScidentres(name)); return results; }
public static IWorker extractMember( IWorker worker, Identifier name ) { return worker.extractMember(name); }
public Argument(Identifier name, IWorker value) { _name = name; _value = value; }
public static DerefResults deref(IWorker worker, Identifier name) { return new DerefResults( worker.face.properties.ContainsKey(name) ? extractMember(worker, name) : null, worker.face.methods.ContainsKey(name) ? new IWorker[]{ extractMember(worker, name) } : null ); }