Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ GetNextToken()

TimeSpanToken System.Globalization.TimeSpanParse.TimeSpanTokenizer.GetNextToken ( )
inlinepackage

Definition at line 116 of file TimeSpanParse.cs.

117 {
118 int pos = _pos;
119 if (pos >= _value.Length)
120 {
121 return new TimeSpanToken(TTT.End);
122 }
123 int num = _value[pos] - 48;
124 if ((uint)num <= 9u)
125 {
126 int num2 = 0;
127 if (num == 0)
128 {
129 num2 = 1;
130 int num3;
131 while (true)
132 {
133 if (++_pos >= _value.Length || (uint)(num3 = _value[_pos] - 48) > 9u)
134 {
135 return new TimeSpanToken(TTT.Num, 0, num2, default(ReadOnlySpan<char>));
136 }
137 if (num3 != 0)
138 {
139 break;
140 }
141 num2++;
142 }
143 num = num3;
144 }
145 while (++_pos < _value.Length)
146 {
147 int num4 = _value[_pos] - 48;
148 if ((uint)num4 > 9u)
149 {
150 break;
151 }
152 num = num * 10 + num4;
153 if ((num & 0xF0000000u) != 0L)
154 {
155 return new TimeSpanToken(TTT.NumOverflow);
156 }
157 }
158 return new TimeSpanToken(TTT.Num, num, num2, default(ReadOnlySpan<char>));
159 }
160 int num5 = 1;
161 while (++_pos < _value.Length && (uint)(_value[_pos] - 48) > 9u)
162 {
163 num5++;
164 }
165 return new TimeSpanToken(TTT.Sep, 0, 0, _value.Slice(pos, num5));
166 }
ReadOnlySpan< T > Slice(int start)

References System.Globalization.TimeSpanParse.TimeSpanTokenizer._pos, System.Globalization.TimeSpanParse.TimeSpanTokenizer._value, System.L, System.ReadOnlySpan< T >.Length, and System.ReadOnlySpan< T >.Slice().

Referenced by System.Globalization.TimeSpanParse.TryParseTimeSpan().