- namespace Ink.Parsed
- {
- public class Number : Parsed.Expression
- {
- public object value;
-
- public Number(object value)
- {
- if (value is int || value is float || value is bool) {
- this.value = value;
- } else {
- throw new System.Exception ("Unexpected object type in Number");
- }
- }
- public override void GenerateIntoContainer (Runtime.Container container)
- {
- if (value is int) {
- container.AddContent (new Runtime.IntValue ((int)value));
- } else if (value is float) {
- container.AddContent (new Runtime.FloatValue ((float)value));
- } else if(value is bool) {
- container.AddContent (new Runtime.BoolValue ((bool)value));
- }
- }
- public override string ToString ()
- {
- if (value is float) {
- return ((float)value).ToString(System.Globalization.CultureInfo.InvariantCulture);
- } else {
- return value.ToString();
- }
- }
-
- public override bool Equals (object obj)
- {
- var otherNum = obj as Number;
- if (otherNum == null) return false;
- return this.value.Equals (otherNum.value);
- }
- public override int GetHashCode ()
- {
- return this.value.GetHashCode ();
- }
-
- }
- }