1 //
2 // Copyright (c) 2010-2023 Antmicro
3 // Copyright (c) 2011-2015 Realtime Embedded
4 //
5 // This file is licensed under the MIT License.
6 // Full license text is available in 'licenses/MIT.txt'.
7 //
8 using System;
9 using Antmicro.Renode.Core;
10 using System.Linq;
11 
12 using Range = Antmicro.Renode.Core.Range;
13 
14 namespace Antmicro.Renode.UserInterface.Tokenizer
15 {
16     public abstract class RangeToken : Token
17     {
GetObjectValue()18         public override object GetObjectValue()
19         {
20             return Value;
21         }
22 
ToString()23         public override string ToString()
24         {
25             return string.Format("[RangeToken: Value={0}]", Value);
26         }
27 
28         public Range Value { get; protected set; }
29 
RangeToken(string value)30         protected RangeToken(string value) : base(value)
31         {
32         }
33 
ParseNumbers(string[] input)34         protected ulong[] ParseNumbers(string[] input)
35         {
36             var resultValues = new ulong[2];
37             for(var i = 0; i < input.Length; ++i)
38             {
39                 resultValues[i] = input[i].Contains('x')
40                     ? Convert.ToUInt64(input[i].Split('x')[1], 16)
41                     : resultValues[i] = ulong.Parse(input[i]);
42 
43             }
44             return resultValues;
45         }
46     }
47 }
48 
49