Пример #1
0
 public IWorker extractMember(Identifier name)
 {
     throw new ClientException(
     String.Format(
         "attempted to extract member '{0}' from a null value",
         name));
 }
Пример #2
0
 public Method(Identifier name, IInterface face)
 {
     Debug.Assert(name != null);
     Debug.Assert(face != null);
     _name = name;
     _face = face;
 }
Пример #3
0
        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;
        }
Пример #4
0
 public void setProperty(Identifier propName, IWorker worker)
 {
     throw new ClientException(
     String.Format(
         "attempted to set property '{0}' of a null value",
         propName));
 }
Пример #5
0
        public ParameterInfo(
	Direction direction, IType type,
	Identifier name, bool hasDefaultValue )
        {
            _direction = direction;
            _type = type;
            _name = name;
            _hasDefaultValue = hasDefaultValue;
        }
Пример #6
0
        public ParameterImpl(
	Direction direction, IType type,
	Identifier name, IWorker defaultValue )
        {
            _direction = direction;
            _type = type;
            _name = name;
            _defaultValue = defaultValue;
        }
Пример #7
0
 //----- 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));
 }
Пример #8
0
 public void addPropertySetter(Identifier ident, IWorker func)
 {
     addPropertySetter(ident, Bridge.toNativeFunction(func));
 }
Пример #9
0
 public void addPropertySetter(Identifier ident, IFunction func)
 {
     _propSetters.Add(ident, func);
 }
Пример #10
0
 public void addMethod(Identifier ident, IFunction func)
 {
     if( ! _methods.ContainsKey(ident) )
     _methods.Add( ident, new Dictionary<IInterface, IFunction>() );
     _methods[ident].Add(func.face, func);
 }
Пример #11
0
 public UnassignedDeclareFirst(Identifier ident)
 {
     _ident = ident;
 }
Пример #12
0
 public NoCorrespondingNamespaceScidentre(Identifier ident)
 {
     _ident = ident;
 }
Пример #13
0
 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));
 }
Пример #14
0
        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);
        }
Пример #15
0
 public Property(Identifier name, bool writable, IType type)
 {
     _name = name;
     _writable = writable;
     _type = type;
 }
Пример #16
0
        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;
        }
Пример #17
0
 public static IWorker extractMember( IWorker worker, Identifier name )
 {
     return worker.extractMember(name);
 }
Пример #18
0
 public Argument(Identifier name, IWorker value)
 {
     _name = name;
     _value = value;
 }
Пример #19
0
 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 );
 }