summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-07-21 09:37:26 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-07-21 09:37:26 +0200
commitbee770032c7bf22eb897085f516f440a72dc3a9a (patch)
tree3404215bb51fa0ba8a2376ee5f20179ac4fd6f2c
parentb4935b361bd16648044526efba818fb6839e0ca9 (diff)
Completes When Node parsing.
-rw-r--r--ast-to-instr/src/VHDLWNode.java42
1 files changed, 41 insertions, 1 deletions
diff --git a/ast-to-instr/src/VHDLWNode.java b/ast-to-instr/src/VHDLWNode.java
index eda4836..4c2b2ee 100644
--- a/ast-to-instr/src/VHDLWNode.java
+++ b/ast-to-instr/src/VHDLWNode.java
@@ -12,6 +12,7 @@ import java.util.Collection;
public class VHDLWNode extends VHDLNode
{
private static final XPathExpression XPE_FIND_NAMED_ENTITIES;
+ private static final XPathExpression XPE_FIND_BODY;
static
{
@@ -20,6 +21,12 @@ public class VHDLWNode extends VHDLNode
(
"./choice_expression//named_entity"
);
+
+ XPE_FIND_BODY =
+ XMLManager.compile_or_die
+ (
+ "./associated_chain"
+ );
}
public VHDLWNode
@@ -66,7 +73,7 @@ public class VHDLWNode extends VHDLNode
handle_predicate_expr_reads(local_id);
/** Children ************************************************************/
- //result.add(handle_body(local_id));
+ result.add(handle_body(local_id));
return result;
}
@@ -181,4 +188,37 @@ public class VHDLWNode extends VHDLNode
}
}
}
+
+ /***************************************************************************/
+ /** Children ***************************************************************/
+ /***************************************************************************/
+
+ private ParsableXML handle_body
+ (
+ final IDs local_id
+ )
+ throws XPathExpressionException
+ {
+ final Node body;
+
+ body =
+ (Node) XPE_FIND_BODY.evaluate
+ (
+ xml_node,
+ XPathConstants.NODE
+ );
+
+ return
+ (
+ new VHDLSSCNode
+ (
+ parent_id,
+ body,
+ local_id,
+ next_node,
+ (depth + 1),
+ new String[] {"COND_WAS_TRUE"}
+ )
+ );
+ }
}