From 5f06e34bc24876739c1d4af1d45f7cb322a19559 Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Wed, 26 Jul 2017 14:32:28 +0200 Subject: First shot at (logic, not VHDL) functions. --- ast-to-instr/src/Expressions.java | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'ast-to-instr/src/Expressions.java') diff --git a/ast-to-instr/src/Expressions.java b/ast-to-instr/src/Expressions.java index 0ea741b..90b0fff 100644 --- a/ast-to-instr/src/Expressions.java +++ b/ast-to-instr/src/Expressions.java @@ -19,6 +19,7 @@ public class Expressions private static final XPathExpression XPE_GET_INDEX_LIST; private static final XPathExpression XPE_GET_NAMED_ENTITY; private static final XPathExpression XPE_GET_PREFIX_NAMED_ENTITY; + private static final XPathExpression XPE_GET_PREFIX; static { @@ -29,7 +30,7 @@ public class Expressions XPE_GET_FUN_PARAMETERS = XMLManager.compile_or_die ( - "./parameter_association_chain/el" + "./parameter_association_chain/el/actual" ); XPE_GET_INDEX_LIST = XMLManager.compile_or_die("./index_list/el"); @@ -40,6 +41,8 @@ public class Expressions ( "./prefix/named_entity" ); + + XPE_GET_PREFIX = XMLManager.compile_or_die("./prefix"); } private static enum Operator @@ -266,7 +269,7 @@ public class Expressions final int params_length; named_entity = - (Node) XPE_GET_PREFIX_NAMED_ENTITY.evaluate + (Node) XPE_GET_PREFIX/*_NAMED_ENTITY*/.evaluate ( current_node, XPathConstants.NODE @@ -274,18 +277,27 @@ public class Expressions structure.append("(?"); + /* + * TODO: Handle functions better, like: + elements.add + ( + IDs.get_id_from_xml_id + ( + XMLManager.get_attribute(named_entity, "ref"), + null + ) + ); + * But for now, we'll just use the function's name as string: + */ elements.add ( - Waveforms.get_associated_waveform_id + Strings.get_id_from_string ( - IDs.get_id_from_xml_id - ( - XMLManager.get_attribute(named_entity, "ref"), - null - ) + XMLManager.get_attribute(named_entity, "identifier") ) ); + params = (NodeList) XPE_GET_FUN_PARAMETERS.evaluate ( -- cgit v1.2.3-70-g09d2