summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-07-21 11:06:12 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-07-21 11:06:12 +0200
commit878705688b42837b615067f0a479f31614910f38 (patch)
treed0d61b2f4f66baa638876f2d5641a6377979cdd1 /ast-to-instr/src/VHDLSSCNode.java
parentbee770032c7bf22eb897085f516f440a72dc3a9a (diff)
Optimization pass.
Diffstat (limited to 'ast-to-instr/src/VHDLSSCNode.java')
-rw-r--r--ast-to-instr/src/VHDLSSCNode.java17
1 files changed, 7 insertions, 10 deletions
diff --git a/ast-to-instr/src/VHDLSSCNode.java b/ast-to-instr/src/VHDLSSCNode.java
index 95ddfbb..8fb620b 100644
--- a/ast-to-instr/src/VHDLSSCNode.java
+++ b/ast-to-instr/src/VHDLSSCNode.java
@@ -5,8 +5,7 @@ import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
-import java.util.ArrayList;
-import java.util.Collection;
+import java.util.Stack;
/* Sequential Statement Chain Node */
/* Not actually a node in the resulting model, though. */
@@ -43,16 +42,16 @@ public class VHDLSSCNode extends VHDLNode
}
@Override
- public Collection<ParsableXML> parse ()
+ public void parse
+ (
+ final Stack<ParsableXML> waiting_list
+ )
throws XPathExpressionException
{
- final Collection<ParsableXML> result;
final NodeList sub_nodes;
final int intermediary_nodes_count;
int i;
- result = new ArrayList<ParsableXML>();
-
sub_nodes =
(NodeList) XPE_FIND_SUB_NODES.evaluate
(
@@ -77,14 +76,12 @@ public class VHDLSSCNode extends VHDLNode
"node"
);
- result.add(get_vhdl_node(sub_nodes.item(i), next_node, i));
+ waiting_list.push(get_vhdl_node(sub_nodes.item(i), next_node, i));
}
- result.add(get_vhdl_node(sub_nodes.item(i), next_node, i));
+ waiting_list.push(get_vhdl_node(sub_nodes.item(i), next_node, i));
handle_backward_connection(sub_nodes.item(0));
-
- return result;
}
private ParsableXML get_vhdl_node