class_name Alt static var behaviorMap: Array[Variant] = [] var behavior: AltBehavior.AltBehavior var outputs: Array[Output] func _init(behavior2: AltBehavior.AltBehavior, outputs2: Array[Output]) -> void: self.behavior = behavior2 self.outputs = outputs2 static func parse(buffer: HankBuffer) -> Variant: var rawExpr: String = Extensions.unwrap(buffer.findNestedExpression("{", "}", 0, true)).checkValue() var tempString if true: var s: String = rawExpr.substr(1, rawExpr.length() - 2) var l: int = s.length() var r: int = 0 while (r < l && StringTools.isSpace(s, r)): r += 1 if (r > 0): tempString = s.substr(r, l - r) else: tempString = s var expr: String = tempString if (behaviorMap.size() == 0): behaviorMap.push_back({ "key": ">", "value": AltBehavior.AltBehavior.Sequence }) behaviorMap.push_back({ "key": "!", "value": AltBehavior.AltBehavior.OnceOnly }) behaviorMap.push_back({ "key": "&", "value": AltBehavior.AltBehavior.Cycle }) behaviorMap.push_back({ "key": "%", "value": AltBehavior.AltBehavior.Shuffle }) behaviorMap.push_back({ "key": "sequence:", "value": AltBehavior.AltBehavior.Sequence }) behaviorMap.push_back({ "key": "once:", "value": AltBehavior.AltBehavior.OnceOnly }) behaviorMap.push_back({ "key": "cycle:", "value": AltBehavior.AltBehavior.Cycle }) behaviorMap.push_back({ "key": "shuffle:", "value": AltBehavior.AltBehavior.Shuffle }) var behavior2: AltBehavior.AltBehavior = AltBehavior.AltBehavior.Sequence if true: var _g: int = 0 var _g1: Array[Variant] = behaviorMap while (_g < _g1.size()): var prefix: Variant = _g1[_g] _g += 1 if (StringTools.startsWith(expr, prefix.get("key"))): expr = StringTools.trim(expr.substr(prefix.get("key").length())) behavior2 = prefix.get("value") break var outputsBuffer: HankBuffer = HankBuffer.Dummy(expr) var eachOutputExpr: Array[String] = outputsBuffer.rootSplit("|") if (eachOutputExpr.size() == 1): return { "_index": 1 } var tempArray if true: var _g: Array[Output] = ([] as Array[Output]) if true: var _g1: int = 0 while (_g1 < eachOutputExpr.size()): var outputExpr: String = eachOutputExpr[_g1] _g1 += 1 var tempString1 if true: var l: int = outputExpr.length() var r: int = 0 while (r < l && StringTools.isSpace(outputExpr, r)): r += 1 if (r > 0): tempString1 = outputExpr.substr(r, l - r) else: tempString1 = outputExpr _g.push_back(Output.parse(HankBuffer.Dummy(tempString1), true)) tempArray = _g buffer.take(rawExpr.length()) return { "_index": 0, "v": Alt.new(behavior2, tempArray) }