public ValueInstance( IList<ValueSymbol> klasses, IDictionary<ValueSymbol, IValueFunc> methods ) { mKlassHolder = new KlassHolder(klasses); mMethods = methods; }
static ValueString() { smKlassHolder = new KlassHolder( new List<ValueSymbol> { Klasses.String, Klasses.Object } ); }
static ValueHash() { smKlassHolder = new KlassHolder( new List<ValueSymbol> { Klasses.Hash, Klasses.Object } ); }
static ValueInt() { smKlassHolder = new KlassHolder( new List<ValueSymbol> { Klasses.Int, Klasses.Object } ); }
static ValueArray() { smKlassHolder = new KlassHolder( new List<ValueSymbol> { Klasses.Array, Klasses.Object } ); }
static ValueFalse() { smKlassHolder = new KlassHolder( new List<ValueSymbol> { Klasses.False, Klasses.Object } ); }
static ValueTrue() { smKlassHolder = new KlassHolder( new List<ValueSymbol> { Klasses.True, Klasses.Object } ); }
static ValueNil() { smKlassHolder = new KlassHolder( new List<ValueSymbol> { Klasses.Nil, Klasses.Object } ); }
static ValueCont() { smKlassHolder = new KlassHolder( new List<ValueSymbol> { Klasses.Cont, Klasses.Func, Klasses.Object } ); }
static ValueSubr() { smKlassHolder = new KlassHolder( new List<ValueSymbol> { Klasses.Subr, Klasses.Func, Klasses.Object } ); }
static ValueClosure() { smKlassHolder = new KlassHolder( new List<ValueSymbol> { Klasses.Closure, Klasses.Func, Klasses.Object } ); }
public void Send(ValueSymbol selector, IList<IValue> args, VM vm, SourceInfo info) { if (smKlassHolder == null) { smKlassHolder = new KlassHolder( new List<ValueSymbol> { Klasses.Symbol, Klasses.Object } ); } smKlassHolder.Send(this, selector, args, vm, info); }
static ValueSymbol() { smKlassHolder = null; smInstances = new Dictionary<string, ValueSymbol>(); }