65 lines
1.3 KiB
GDScript
65 lines
1.3 KiB
GDScript
class_name Extensions
|
|
|
|
func _init() -> void:
|
|
pass
|
|
|
|
static func unwrap(o: Variant):
|
|
match (o._index):
|
|
0:
|
|
var _g = o.v
|
|
var value = _g
|
|
return value
|
|
1:
|
|
assert(false, str("Tried to unwrap a None value."))
|
|
|
|
static func toIterable(i) -> Variant:
|
|
return {
|
|
"iterator": i
|
|
}
|
|
|
|
static func tokenize(s: String) -> Array[String]:
|
|
var tokenStartIndices: Array[int] = ([] as Array[int])
|
|
var whitespaceIndices: Array[Variant] = ([] as Array[Variant])
|
|
var lastWasChar: bool = false
|
|
|
|
s = StringTools.trim(s)
|
|
|
|
if true:
|
|
var _g: int = 0
|
|
var _g1: int = s.length()
|
|
while (_g < _g1):
|
|
var tempNumber
|
|
if true:
|
|
_g += 1
|
|
tempNumber = _g - 1
|
|
var i: int = tempNumber
|
|
if (StringTools.isSpace(s, i)):
|
|
lastWasChar = false
|
|
if (lastWasChar):
|
|
whitespaceIndices.push_back(i)
|
|
else:
|
|
if (!lastWasChar):
|
|
tokenStartIndices.push_back(i)
|
|
lastWasChar = true
|
|
|
|
whitespaceIndices.push_back(null)
|
|
|
|
var tempResult
|
|
|
|
if true:
|
|
var _g: Array[String] = ([] as Array[String])
|
|
if true:
|
|
var _g1: int = 0
|
|
var _g2: int = tokenStartIndices.size()
|
|
while (_g1 < _g2):
|
|
var tempNumber1
|
|
if true:
|
|
_g1 += 1
|
|
tempNumber1 = _g1 - 1
|
|
var i: int = tempNumber1
|
|
_g.push_back(s.substr(tokenStartIndices[i], whitespaceIndices[i]))
|
|
tempResult = _g
|
|
|
|
return tempResult
|
|
|