Skip to content

Commit 06392d9

Browse files
authored
Merge pull request #46 from endlessm/simplify-instructiontree
instruction_tree: Pass depth & output buffer as parameters
2 parents 3050f2e + 5378c50 commit 06392d9

File tree

1 file changed

+10
-20
lines changed

1 file changed

+10
-20
lines changed
Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
class_name InstructionTree
22
extends Object
33

4-
var depth: int
5-
var out: String
6-
74

85
class TreeNode:
96
var data: String
@@ -18,24 +15,17 @@ class TreeNode:
1815

1916

2017
func generate_text(root_node: TreeNode, start_depth: int = 0) -> String:
21-
out = ""
22-
depth = start_depth
23-
generate_text_recursive(root_node)
24-
return out
25-
26-
27-
func generate_text_recursive(root_node: TreeNode):
28-
if root_node.data != "":
29-
for i in depth:
30-
out += "\t"
31-
out += root_node.data + "\n"
18+
var out = PackedStringArray()
19+
generate_text_recursive(root_node, start_depth, out)
20+
return "".join(out)
3221

33-
depth += 1
3422

35-
for c in root_node.children:
36-
generate_text_recursive(c)
23+
func generate_text_recursive(node: TreeNode, depth: int, out: PackedStringArray):
24+
if node.data != "":
25+
out.append("\t".repeat(depth) + node.data + "\n")
3726

38-
depth -= 1
27+
for c in node.children:
28+
generate_text_recursive(c, depth + 1, out)
3929

40-
if root_node.next:
41-
generate_text_recursive(root_node.next)
30+
if node.next:
31+
generate_text_recursive(node.next, depth, out)

0 commit comments

Comments
 (0)