From 66cfd64a7ed0c3809e033b0976c17e95bc6c50ca Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Mon, 24 Jul 2017 13:40:40 +0200 Subject: Centralizes the processing of (read) expressions. --- ast-to-instr/src/VHDLNode.java | 59 ++++++++++++++++++++++++++---------------- 1 file changed, 37 insertions(+), 22 deletions(-) (limited to 'ast-to-instr/src/VHDLNode.java') diff --git a/ast-to-instr/src/VHDLNode.java b/ast-to-instr/src/VHDLNode.java index 6c49cdf..970be9a 100644 --- a/ast-to-instr/src/VHDLNode.java +++ b/ast-to-instr/src/VHDLNode.java @@ -1,49 +1,39 @@ import org.w3c.dom.Node; import javax.xml.xpath.XPathExpressionException; +import javax.xml.xpath.XPathExpression; public abstract class VHDLNode extends ParsableXML { - protected final IDs next_node; - protected final int depth; - protected final String[] attributes; - protected final OutputFile output; + /** Static *****************************************************************/ + private static XPathExpression XPE_FIND_EXPR_NAMED_ENTITIES; - public VHDLNode - ( - final OutputFile output, - final IDs parent_id, - final Node xml_node, - final IDs next_node, - final int depth, - final String[] attributes - ) + static { - super(parent_id, xml_node); - - this.output = output; - this.next_node = next_node; - this.depth = depth; - this.attributes = attributes; + XPE_FIND_EXPR_NAMED_ENTITIES = + XMLManager.compile_or_die + ( + ".//named_entity" + ); } protected void handle_expression ( final IDs local_id, - final Node expression_ref + final Node expression_start ) throws XPathExpressionException { final String ref; - ref = XMLManager.get_attribute(expression_ref, "ref"); + ref = XMLManager.get_attribute(expression_start, "ref"); if (!Main.node_is_function_or_literal(ref)) { Predicates.add_entry ( output, - predicate, + "expr_reads", local_id, Waveforms.get_associated_waveform_id ( @@ -52,4 +42,29 @@ public abstract class VHDLNode extends ParsableXML ); } } + + /** Non-Static *************************************************************/ + protected final IDs next_node; + protected final int depth; + protected final String[] attributes; + protected final OutputFile output; + + public VHDLNode + ( + final OutputFile output, + final IDs parent_id, + final Node xml_node, + final IDs next_node, + final int depth, + final String[] attributes + ) + { + super(parent_id, xml_node); + + this.output = output; + this.next_node = next_node; + this.depth = depth; + this.attributes = attributes; + } + } -- cgit v1.2.3-70-g09d2