A game about forced loneliness, made by TACStudios
1using System; 2 3namespace Unity.VisualScripting.Dependencies.NCalc 4{ 5 public class ValueExpression : LogicalExpression 6 { 7 public ValueExpression(object value, ValueType type) 8 { 9 Value = value; 10 Type = type; 11 } 12 13 public ValueExpression(object value) 14 { 15 switch (System.Type.GetTypeCode(value.GetType())) 16 { 17 case TypeCode.Boolean: 18 Type = ValueType.Boolean; 19 break; 20 21 case TypeCode.DateTime: 22 Type = ValueType.DateTime; 23 break; 24 25 case TypeCode.Decimal: 26 case TypeCode.Double: 27 case TypeCode.Single: 28 Type = ValueType.Float; 29 break; 30 31 case TypeCode.Byte: 32 case TypeCode.SByte: 33 case TypeCode.Int16: 34 case TypeCode.Int32: 35 case TypeCode.Int64: 36 case TypeCode.UInt16: 37 case TypeCode.UInt32: 38 case TypeCode.UInt64: 39 Type = ValueType.Integer; 40 break; 41 42 case TypeCode.String: 43 Type = ValueType.String; 44 break; 45 46 default: 47 throw new EvaluationException("This value could not be handled: " + value); 48 } 49 50 Value = value; 51 } 52 53 public ValueExpression(string value) 54 { 55 Value = value; 56 Type = ValueType.String; 57 } 58 59 public ValueExpression(int value) 60 { 61 Value = value; 62 Type = ValueType.Integer; 63 } 64 65 public ValueExpression(float value) 66 { 67 Value = value; 68 Type = ValueType.Float; 69 } 70 71 public ValueExpression(DateTime value) 72 { 73 Value = value; 74 Type = ValueType.DateTime; 75 } 76 77 public ValueExpression(bool value) 78 { 79 Value = value; 80 Type = ValueType.Boolean; 81 } 82 83 public object Value { get; set; } 84 public ValueType Type { get; set; } 85 86 public override void Accept(LogicalExpressionVisitor visitor) 87 { 88 visitor.Visit(this); 89 } 90 } 91 92 public enum ValueType 93 { 94 Integer, 95 String, 96 DateTime, 97 Float, 98 Boolean 99 } 100}