diff --git a/build.xml b/build.xml
index 2780510..d08656a 100644
--- a/build.xml
+++ b/build.xml
@@ -19,6 +19,7 @@
+
diff --git a/src/lsystem/engine/Parser.java b/src/lsystem/engine/Parser.java
index f4971e2..a21eded 100644
--- a/src/lsystem/engine/Parser.java
+++ b/src/lsystem/engine/Parser.java
@@ -97,7 +97,7 @@ public class Parser {
Element root = null;
Element workingElement = null;
String number = "";
- boolean bracket = false;
+ List bracket = new ArrayList<>();
float[] appliedRotation = new float[3];
Element lastCreatedElement = null;
@@ -120,6 +120,7 @@ public class Parser {
lastCreatedElement = element;
appliedRotation = new float[]{0f, 0f, 0f};
workingElement.children.add(element);
+ workingElement = lastCreatedElement;
}
} else {
float n = getFloat(number);
@@ -135,11 +136,11 @@ public class Parser {
}
if(c == '[') {
workingElement = lastCreatedElement;
- bracket = true;
+ bracket.add(lastCreatedElement);
}
if(c == ']') {
- assert workingElement != null;
- workingElement = workingElement.parent;
+ assert workingElement != null && !bracket.isEmpty();
+ workingElement = bracket.remove(bracket.size() - 1);
}
}
}