summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'ast-to-instr/src/Expressions.java')
-rw-r--r--ast-to-instr/src/Expressions.java28
1 files changed, 20 insertions, 8 deletions
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
(