|
@@ -396,25 +396,35 @@ Type TConstExpr Extends TExpr
|
|
Else If TByteType( ty ) Then
|
|
Else If TByteType( ty ) Then
|
|
value = String.FromLong(Byte(value.ToLong()))
|
|
value = String.FromLong(Byte(value.ToLong()))
|
|
Else
|
|
Else
|
|
|
|
+ Local buf:Byte[64]
|
|
|
|
+ Local b:Int
|
|
Local v:String = value.Trim()
|
|
Local v:String = value.Trim()
|
|
- Local n:Int
|
|
|
|
- Local s:Int
|
|
|
|
|
|
+ Local leading0:Int = True
|
|
If v Then
|
|
If v Then
|
|
|
|
+ Local i:Int
|
|
If v[0] = Asc("+") Then
|
|
If v[0] = Asc("+") Then
|
|
- s = 1
|
|
|
|
- n = 1
|
|
|
|
|
|
+ i = 1
|
|
Else If v[0] = Asc("-") Then
|
|
Else If v[0] = Asc("-") Then
|
|
- n = 1
|
|
|
|
|
|
+ i = 1
|
|
|
|
+ buf[b] = Asc("-")
|
|
|
|
+ b:+ 1
|
|
End If
|
|
End If
|
|
|
|
|
|
- Local i:Int = n
|
|
|
|
While i < value.Length
|
|
While i < value.Length
|
|
If Not IsDigit(v[i]) Then
|
|
If Not IsDigit(v[i]) Then
|
|
Exit
|
|
Exit
|
|
End If
|
|
End If
|
|
|
|
+ If leading0 And v[i] = Asc("0") Then
|
|
|
|
+ i :+ 1
|
|
|
|
+ Continue
|
|
|
|
+ End If
|
|
|
|
+ leading0 = False
|
|
|
|
+ buf[b] = v[i]
|
|
|
|
+
|
|
|
|
+ b :+ 1
|
|
i :+ 1
|
|
i :+ 1
|
|
Wend
|
|
Wend
|
|
- value = v[s..i]
|
|
|
|
|
|
+ value = String.FromBytes(buf, b)
|
|
Else
|
|
Else
|
|
value = "0"
|
|
value = "0"
|
|
End If
|
|
End If
|