From 878705688b42837b615067f0a479f31614910f38 Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Fri, 21 Jul 2017 11:06:12 +0200 Subject: Optimization pass. --- ast-to-instr/src/Main.java | 44 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 7 deletions(-) (limited to 'ast-to-instr/src/Main.java') diff --git a/ast-to-instr/src/Main.java b/ast-to-instr/src/Main.java index 104c4f7..e0bc301 100644 --- a/ast-to-instr/src/Main.java +++ b/ast-to-instr/src/Main.java @@ -101,7 +101,7 @@ public class Main try { System.out.println("Parsing XML..."); - children = waiting_list.pop().parse(); + waiting_list.pop().parse(waiting_list); } catch (final XPathExpressionException xpee) { @@ -114,17 +114,47 @@ public class Main return; } - - for (final ParsableXML c: children) - { - waiting_list.push(c); - } } } public static boolean node_is_function_or_literal (final String xml_id) + throws XPathExpressionException { - /* TODO */ + final XPathExpression xpe_find_el_from_id; + final Node n; + final String kind; + + xpe_find_el_from_id = + XMLManager.compile_or_die + ( + ".//el[@id=\"" + + xml_id + + "\"]" + ); + + n = + (Node) xpe_find_el_from_id.evaluate + ( + root, + XPathConstants.NODE + ); + + if (n == (Node) null) + { + return true; + } + + kind = XMLManager.get_attribute(n, "kind"); + + if (kind.equals("function_declaration")) + { + return true; + } + else if (kind.equals("enumeration_literal")) + { + return true; + } + return false; } -- cgit v1.2.3-70-g09d2