summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-07-20 13:46:47 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-07-20 13:46:47 +0200
commitb5c3459a9763107abcbbcd7fc1a42eee3a887c52 (patch)
treea44474d508d3ea6c940ce7893f95994d3153b19d /ast-to-instr/src/VHDLPort.java
parentcd9254b65410c0f8a0fc3437ee43d88375244508 (diff)
Still working on AST-to-Instr.
Diffstat (limited to 'ast-to-instr/src/VHDLPort.java')
-rw-r--r--ast-to-instr/src/VHDLPort.java366
1 files changed, 366 insertions, 0 deletions
diff --git a/ast-to-instr/src/VHDLPort.java b/ast-to-instr/src/VHDLPort.java
new file mode 100644
index 0000000..062159c
--- /dev/null
+++ b/ast-to-instr/src/VHDLPort.java
@@ -0,0 +1,366 @@
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathExpression;
+import javax.xml.xpath.XPathExpressionException;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+public class VHDLPort extends ParsableXML
+{
+ private static final XPathExpression GET_ENTITIES;
+
+ static
+ {
+ /* TODO */
+ GET_ENTITIES = null;
+ }
+
+ public VHDLPort
+ (
+ final IDs parent_id,
+ final Node xml_node
+ )
+ {
+ super(parent_id, xml_node);
+ }
+
+ @Override
+ public Collection<ParsableXML> parse ()
+ throws XPathExpressionException
+ {
+ final Collection<ParsableXML> result;
+ final String xml_id;
+ final IDs local_id;
+
+ result = new ArrayList<ParsableXML>();
+
+ xml_id = XMLManager.get_attribute(xml_node, "id");
+
+ local_id = IDs.get_id_from_xml_id(xml_id, "port");
+
+ /** Parent **************************************************************/
+ handle_link_to_entity(local_id);
+
+ /** Functions ***********************************************************/
+ handle_function_line(local_id);
+ handle_function_column(local_id);
+ handle_function_identifier(local_id);
+
+ /** Predicates **********************************************************/
+ handle_predicate_has_disconnect_flag(local_id);
+ handle_predicate_has_class(local_id);
+ handle_predicate_is_ref(local_id);
+ handle_predicate_has_active_flag(local_id);
+ handle_predicate_has_identifier_list(local_id);
+ handle_predicate_has_visible_flag(local_id);
+ handle_predicate_has_after_drivers_flag(local_id);
+ handle_predicate_has_use_flag(local_id);
+ handle_predicate_has_open_flag(local_id);
+ handle_predicate_has_guarded_signal_flag(local_id);
+
+ handle_predicate_has_mode(local_id);
+
+ /** Children ************************************************************/
+ handle_child_waveform(local_id);
+
+ return null;
+ }
+
+ /***************************************************************************/
+ /** Parents ****************************************************************/
+ /***************************************************************************/
+ private void handle_link_to_entity
+ (
+ final IDs local_id
+ )
+ {
+ Predicates.add_entry("is_port_of", local_id, parent_id);
+ }
+
+
+ /***************************************************************************/
+ /** Functions **************************************************************/
+ /***************************************************************************/
+ private void handle_function_line
+ (
+ final IDs local_id
+ )
+ {
+ Functions.add_entry
+ (
+ "line",
+ local_id,
+ Strings.get_id_from_string
+ (
+ XMLManager.get_attribute(xml_node, "line")
+ )
+ );
+ }
+
+ private void handle_function_column
+ (
+ final IDs local_id
+ )
+ {
+ Functions.add_entry
+ (
+ "column",
+ local_id,
+ Strings.get_id_from_string
+ (
+ XMLManager.get_attribute(xml_node, "col")
+ )
+ );
+ }
+
+ private void handle_function_identifier
+ (
+ final IDs local_id
+ )
+ {
+ Functions.add_entry
+ (
+ "identifier",
+ local_id,
+ Strings.get_id_from_string
+ (
+ XMLManager.get_attribute(xml_node, "identifier")
+ )
+ );
+ }
+
+ /***************************************************************************/
+ /** Predicates *************************************************************/
+ /***************************************************************************/
+ private void handle_predicate_has_disconnect_flag
+ (
+ final IDs local_id
+ )
+ {
+ if
+ (
+ XMLManager.get_attribute
+ (
+ xml_node,
+ "has_disconnect_flag"
+ ).equals("true")
+ )
+ {
+ Predicates.add_entry("has_disconnect_flag", local_id);
+ }
+ }
+
+ private void handle_predicate_has_class
+ (
+ final IDs local_id
+ )
+ {
+ if
+ (
+ XMLManager.get_attribute
+ (
+ xml_node,
+ "has_class"
+ ).equals("true")
+ )
+ {
+ Predicates.add_entry("has_class", local_id);
+ }
+ }
+
+ private void handle_predicate_is_ref
+ (
+ final IDs local_id
+ )
+ {
+ if
+ (
+ XMLManager.get_attribute
+ (
+ xml_node,
+ "is_ref"
+ ).equals("true")
+ )
+ {
+ Predicates.add_entry("is_ref", local_id);
+ }
+ }
+
+ private void handle_predicate_has_active_flag
+ (
+ final IDs local_id
+ )
+ {
+ if
+ (
+ XMLManager.get_attribute
+ (
+ xml_node,
+ "has_active_flag"
+ ).equals("true")
+ )
+ {
+ Predicates.add_entry("has_active_flag", local_id);
+ }
+ }
+
+ private void handle_predicate_has_identifier_list
+ (
+ final IDs local_id
+ )
+ {
+ if
+ (
+ XMLManager.get_attribute
+ (
+ xml_node,
+ "has_identifier_list"
+ ).equals("true")
+ )
+ {
+ Predicates.add_entry("has_identifier_list", local_id);
+ }
+ }
+
+ private void handle_predicate_has_visible_flag
+ (
+ final IDs local_id
+ )
+ {
+ if
+ (
+ XMLManager.get_attribute
+ (
+ xml_node,
+ "visible_flag"
+ ).equals("true")
+ )
+ {
+ Predicates.add_entry("has_visible_flag", local_id);
+ }
+ }
+
+ private void handle_predicate_has_after_drivers_flag
+ (
+ final IDs local_id
+ )
+ {
+ if
+ (
+ XMLManager.get_attribute
+ (
+ xml_node,
+ "after_drivers_flag"
+ ).equals("true")
+ )
+ {
+ Predicates.add_entry("has_after_drivers_flag", local_id);
+ }
+ }
+
+ private void handle_predicate_has_use_flag
+ (
+ final IDs local_id
+ )
+ {
+ if
+ (
+ XMLManager.get_attribute
+ (
+ xml_node,
+ "use_flag"
+ ).equals("true")
+ )
+ {
+ Predicates.add_entry("has_use_flag", local_id);
+ }
+ }
+
+ private void handle_predicate_has_open_flag
+ (
+ final IDs local_id
+ )
+ {
+ if
+ (
+ XMLManager.get_attribute
+ (
+ xml_node,
+ "open_flag"
+ ).equals("true")
+ )
+ {
+ Predicates.add_entry("has_open_flag", local_id);
+ }
+ }
+
+ private void handle_predicate_has_guarded_signal_flag
+ (
+ final IDs local_id
+ )
+ {
+ if
+ (
+ XMLManager.get_attribute
+ (
+ xml_node,
+ "guarded_signal_flag"
+ ).equals("true")
+ )
+ {
+ Predicates.add_entry("has_guarded_signal_flag", local_id);
+ }
+ }
+
+ private void handle_predicate_has_mode
+ (
+ final IDs local_id
+ )
+ {
+ if
+ (
+ XMLManager.get_attribute
+ (
+ xml_node,
+ "has_mode"
+ ).equals("true")
+ )
+ {
+ Predicates.add_entry
+ (
+ "has_mode",
+ local_id,
+ Strings.get_id_from_string
+ (
+ XMLManager.get_attribute
+ (
+ xml_node,
+ "mode"
+ )
+ )
+ );
+ }
+ }
+
+ /***************************************************************************/
+ /** Children ***************************************************************/
+ /***************************************************************************/
+ private void handle_child_waveform
+ (
+ final IDs local_id
+ )
+ {
+ Predicates.add_entry
+ (
+ "is_waveform_of",
+ Waveforms.get_associated_waveform_id
+ (
+ local_id
+ ),
+ local_id
+ );
+ }
+}