Esempio n. 1
0
File: Types.cs Progetto: CHNB128/GCL
 public eFunction(eValue ast, Evil.Env env, eList fparams,
                  Func <eList, eValue> fn)
 {
     this.fn      = fn;
     this.ast     = ast;
     this.env     = env;
     this.fparams = fparams;
 }
Esempio n. 2
0
 public Card(eSuit Suit, eValue Value)
 {
     this.Suit  = Suit;
     this.Value = Value;
 }
Esempio n. 3
0
File: Types.cs Progetto: CHNB128/GCL
 public eValue setMeta(eValue m)
 {
     meta = m; return(this);
 }
Esempio n. 4
0
File: Types.cs Progetto: CHNB128/GCL
        //
        // General functions
        //
        public static bool _equal_Q(eValue a, eValue b)
        {
            Type ota = a.GetType(), otb = b.GetType();

            if (!((ota == otb) || (a is eList && b is eList)))
            {
                return(false);
            }
            else
            {
                if (a is eInt)
                {
                    return(((eInt)a).getValue() == ((eInt)b).getValue());
                }
                else if (a is eSymbol)
                {
                    return(((eSymbol)a).getName() == ((eSymbol)b).getName());
                }
                else if (a is eString)
                {
                    return(((eString)a).getValue() == ((eString)b).getValue());
                }
                else if (a is eList)
                {
                    if (((eList)a).size() != ((eList)b).size())
                    {
                        return(false);
                    }
                    for (int i = 0; i < ((eList)a).size(); i++)
                    {
                        if (!_equal_Q(((eList)a) [i], ((eList)b) [i]))
                        {
                            return(false);
                        }
                    }
                    return(true);
                }
                else if (a is eHashMap)
                {
                    var akeys = ((eHashMap)a).getValue().Keys;
                    var bkeys = ((eHashMap)b).getValue().Keys;
                    if (akeys.Count != bkeys.Count)
                    {
                        return(false);
                    }
                    foreach (var k in akeys)
                    {
                        if (!_equal_Q(((eHashMap)a).getValue() [k],
                                      ((eHashMap)b).getValue() [k]))
                        {
                            return(false);
                        }
                    }
                    return(true);
                }
                else
                {
                    return(a == b);
                }
            }
        }
Esempio n. 5
0
File: Types.cs Progetto: CHNB128/GCL
 public eValue setValue(eValue value)
 {
     return(this.value = value);
 }
Esempio n. 6
0
File: Types.cs Progetto: CHNB128/GCL
 public eAtom(eValue value)
 {
     this.value = value;
 }
Esempio n. 7
0
File: Types.cs Progetto: CHNB128/GCL
 public eException(string value) : base(value)
 {
     this.value = new eString(value);
 }
Esempio n. 8
0
File: Types.cs Progetto: CHNB128/GCL
 public eException(eValue value)
 {
     this.value = value;
 }