summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-07-19 20:24:40 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2017-07-19 20:24:40 +0200
commit158f8ef180d4ea448b351599529db53ff5e88f8c (patch)
tree2982efaacb22dea8fb86850abc149b768ee428db /ast-to-instr/src/VHDLFile.java
parent0362751e41f731b22b7bfe511af4aa71a02be70a (diff)
Starting a Java implementation of ast-to-instr.
Keeping things clean, this time.
Diffstat (limited to 'ast-to-instr/src/VHDLFile.java')
-rw-r--r--ast-to-instr/src/VHDLFile.java112
1 files changed, 112 insertions, 0 deletions
diff --git a/ast-to-instr/src/VHDLFile.java b/ast-to-instr/src/VHDLFile.java
new file mode 100644
index 0000000..beef2fe
--- /dev/null
+++ b/ast-to-instr/src/VHDLFile.java
@@ -0,0 +1,112 @@
+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 VHDLFile extends ParsableXML
+{
+ private static final XPathExpression GET_ENTITIES;
+
+ static
+ {
+ GET_ENTITIES = null;
+ /* TODO
+ Main.get_xpath().compile
+ (
+ );
+ */
+ // "./*/*/library_unit[@kind=\"entity_declaration\"]"
+ }
+
+ public VHDLFile
+ (
+ 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 = null; /* TODO: elem.attrib.get("id") */
+
+ local_id = IDs.get_id_from_xml_id(xml_id, "file");
+
+ /** Functions ***********************************************************/
+ handle_function_filename(local_id);
+
+ /** Predicates **********************************************************/
+
+ /** Children ************************************************************/
+ result.addAll(handle_child_entities(local_id));
+ result.addAll(handle_child_architectures(local_id));
+
+ return null;
+ }
+
+ private void handle_function_filename
+ (
+ final IDs local_id
+ )
+ {
+ final IDs params[];
+
+ params =
+ new IDs[]
+ {
+ local_id,
+ Strings.get_id_from_string
+ (
+ null /* TODO: get attribute */
+ )
+ };
+
+ /* Functions.add_entry("filename", params); */
+ }
+
+ private Collection<ParsableXML> handle_child_entities
+ (
+ final IDs local_id
+ )
+ throws XPathExpressionException
+ {
+ final Collection<ParsableXML> result;
+ final NodeList entities;
+
+ entities =
+ (NodeList) GET_ENTITIES.evaluate
+ (
+ xml_node,
+ XPathConstants.NODESET
+ );
+
+ /* TODO */
+ return null;
+ }
+
+ private Collection<ParsableXML> handle_child_architectures
+ (
+ final IDs local_id
+ )
+ throws XPathExpressionException
+ {
+ final Collection<ParsableXML> result;
+
+ /* TODO */
+ return null;
+ }
+}