Skip to content
Snippets Groups Projects
Commit 9b0bb4bd authored by Anders Nilsson's avatar Anders Nilsson
Browse files

Can now print a _very_ simple schedule

parent fd5a73da
Branches
No related tags found
No related merge requests found
...@@ -8,14 +8,15 @@ ...@@ -8,14 +8,15 @@
import xdfAST.Start; import xdfAST.Start;
import xdfAST.Instance; import xdfAST.Instance;
import java.util.LinkedList; import java.util.HashSet;
public class SSRAnalysis extends XdfParser { public class SSRAnalysis extends XdfParser {
public static void main(String args[]) { public static void main(String args[]) {
Start ast = parse(args); Start ast = parse(args);
ast.genSSR(System.out); ast.genSSR(System.out);
LinkedList<Instance> l = ast.genStaticSchedule(new LinkedList<Instance>()); HashSet<Instance> l = ast.genStaticSchedule(new HashSet<Instance>());
System.out.println("\n\n");
for (Instance i: l){ for (Instance i: l){
do { do {
...@@ -24,6 +25,17 @@ public class SSRAnalysis extends XdfParser { ...@@ -24,6 +25,17 @@ public class SSRAnalysis extends XdfParser {
} while (i != null); } while (i != null);
System.out.println(); System.out.println();
} }
String s = genScheduleXML(l);
}
static String genScheduleXML(HashSet<Instance> set) {
StringBuffer sb = new StringBuffer();
sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
sb.append("<Schedule>\n");
return sb.toString();
} }
} }
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
import java.io.PrintStream; import java.io.PrintStream;
import java.io.FileReader; import java.io.FileReader;
import java.util.LinkedList; import java.util.HashSet;
aspect SSR { aspect SSR {
...@@ -28,14 +28,15 @@ aspect SSR { ...@@ -28,14 +28,15 @@ aspect SSR {
} }
aspect SDF { aspect SDF {
syn boolean Instance.isSDF() = xlim().isSDF(); syn boolean Instance.isSDF() {
syn xlimAST.Start Instance.xlim() {
try { try {
xlimAST.XmlParser parser = new xlimAST.XmlParser(new FileReader(name())); System.out.println("Trying to open: "+name());
return parser.Start(); xlimAST.XmlParser parser = new xlimAST.XmlParser(new FileReader(name()+".xlim"));
return parser.Start().isSDF();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); System.out.println( name()+".xlim not found");
return null; // e.printStackTrace();
return false;
} }
} }
} }
...@@ -45,31 +46,35 @@ aspect StaticSchedule { ...@@ -45,31 +46,35 @@ aspect StaticSchedule {
public Instance Instance.prev; public Instance Instance.prev;
syn LinkedList<Instance> ASTNode.genStaticSchedule(LinkedList<Instance> l) = l; syn HashSet<Instance> ASTNode.genStaticSchedule(HashSet<Instance> l) = l;
eq Start.genStaticSchedule(LinkedList<Instance> l) = getSpecification().genStaticSchedule(l); eq Start.genStaticSchedule(HashSet<Instance> l) = getSpecification().genStaticSchedule(l);
eq Specification.genStaticSchedule(LinkedList<Instance> l) { eq Specification.genStaticSchedule(HashSet<Instance> l) {
for (int i=0; i<getNumElement(); i++) { for (int i=0; i<getNumElement(); i++) {
l = getElement(i).genStaticSchedule(l); l = getElement(i).genStaticSchedule(l);
} }
return l; return l;
} }
eq XDF.genStaticSchedule(LinkedList<Instance> l) { eq XDF.genStaticSchedule(HashSet<Instance> l) {
for (int i=0; i<getNumElement(); i++) { for (int i=0; i<getNumElement(); i++) {
l = getElement(i).genStaticSchedule(l); l = getElement(i).genStaticSchedule(l);
} }
return l; return l;
} }
eq Connection.genStaticSchedule(LinkedList<Instance> l) { eq Connection.genStaticSchedule(HashSet<Instance> l) {
Instance src = getSource(); Instance src = getSource();
Instance dest = getDest(); Instance dest = getDest();
if (src.isSDF() && dest.isSDF()) { if (dest.isSDF() && src.isSDF()) {
src.next = dest; src.next = dest;
dest.prev = src; dest.prev = src;
l.remove(dest);
} }
if (src.prev == null) { if (src.prev == null) {
l.add(src); l.add(src);
} }
// System.out.println(src.name()); if (dest.prev == null) {
l.add(dest);
}
System.out.println(src.name());
return l; return l;
// Instance dest = getDest(); // Instance dest = getDest();
} }
...@@ -129,9 +134,9 @@ aspect misc { ...@@ -129,9 +134,9 @@ aspect misc {
Note Instance.getUIDNote() { Note Instance.getUIDNote() {
for (Element e : getElements()) { for (Element e : getElements()) {
if (e instanceof Note) { if (e instanceof Note) {
System.out.println("Checking "+e.kind()); // System.out.println("Checking "+e.kind());
if (e.kind().equals("UID")) { if (e.kind().equals("UID")) {
System.out.println(" Yes"); // System.out.println(" Yes");
return (Note) e; return (Note) e;
} }
} }
...@@ -142,10 +147,10 @@ aspect misc { ...@@ -142,10 +147,10 @@ aspect misc {
syn String Element.kind() = ""; syn String Element.kind() = "";
eq Note.kind() { eq Note.kind() {
for (Attribute a : getAttributes()) { for (Attribute a : getAttributes()) {
System.out.println(" checking: "+a); // System.out.println(" checking: "+a);
if (a.isKind()) { if (a.isKind()) {
System.out.println(" found "+value()); // System.out.println(" found "+fix(a.getAttrValue().getLITERAL()));
return value(); return fix(a.getAttrValue().getLITERAL());
} }
} }
return ""; return "";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment