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}