From 632b07e94f1443d318f82d33e5f0ca563fe47069 Mon Sep 17 00:00:00 2001 From: Anders Nilsson <anders.nilsson@cs.lth.se> Date: Mon, 11 Dec 2006 21:18:13 +0100 Subject: [PATCH] Statistics works, safe(?) version for demo 061212 --- CompilerGeneration.jrag | 52 ++++++++++++++++++++--------------------- siaras/Statistics.jrag | 8 ++++--- 2 files changed, 31 insertions(+), 29 deletions(-) diff --git a/CompilerGeneration.jrag b/CompilerGeneration.jrag index 0bdec48..c5586db 100644 --- a/CompilerGeneration.jrag +++ b/CompilerGeneration.jrag @@ -233,32 +233,32 @@ aspect GenRewrites { pStream.println(ind(3)+name()+" node = new "+name()+"();"); pStream.println(ind(3)+"node.setOwlIdentifier(getOwlIdentifier());"); pStream.println(ind(3)+"node.setAttributeList(getAttributeList());"); -// pStream.println(ind(3)+"node.setElementList(getElementList());"); - Restrictions restr = getRestrictions(); - pStream.println(ind(3)+"List l, remain;"); - pStream.println(ind(3)+"remain = new List();"); - for (int i=0; i<restr.getNumOwlRestriction(); i++) { - OwlRestriction r = restr.getOwlRestriction(i); - pStream.println(ind(3)+"l = new List();"); - pStream.println(ind(3)+"for (int i=0; i<getNumElement(); i++) {"); - pStream.println(ind(4)+"ComplexElement e = (ComplexElement) getElement(i);"); - pStream.println(ind(4)+"if (e.getNumElement() > 0 && e.getElement(0) instanceof "+r.name()+" ) {"); - pStream.println(ind(5)+"l.add(e.getElement(0));"); - pStream.println(ind(4)+"}"); - pStream.println(ind(3)+"}"); - if (r.allValuesFrom()) { - pStream.println(ind(3)+"node.set"+r.name()+"List(l);"); - } else { - pStream.println(ind(3)+r.name()+" c"+ix+" = new "+r.name()+"();"); - pStream.println(ind(3)+"node.set"+r.name()+"(c"+(ix++)+");"); - } - } - pStream.println(ind(3)+"for (int i=0; i<getNumElement(); i++) {"); - pStream.println(ind(4)+"if (getElement(i) instanceof ValueElement) {"); - pStream.println(ind(5)+"remain.add(getElement(i));"); - pStream.println(ind(4)+"}"); - pStream.println(ind(3)+"}"); - pStream.println(ind(3)+"node.setElementList(remain);"); + pStream.println(ind(3)+"node.setElementList(getElementList());"); +// Restrictions restr = getRestrictions(); +// pStream.println(ind(3)+"List l, remain;"); +// pStream.println(ind(3)+"remain = new List();"); +// for (int i=0; i<restr.getNumOwlRestriction(); i++) { +// OwlRestriction r = restr.getOwlRestriction(i); +// pStream.println(ind(3)+"l = new List();"); +// pStream.println(ind(3)+"for (int i=0; i<getNumElement(); i++) {"); +// pStream.println(ind(4)+"ComplexElement e = (ComplexElement) getElement(i);"); +// pStream.println(ind(4)+"if (e.getNumElement() > 0 && e.getElement(0) instanceof "+r.name()+" ) {"); +// pStream.println(ind(5)+"l.add(e.getElement(0));"); +// pStream.println(ind(4)+"}"); +// pStream.println(ind(3)+"}"); +// if (r.allValuesFrom()) { +// pStream.println(ind(3)+"node.set"+r.name()+"List(l);"); +// } else { +// pStream.println(ind(3)+r.name()+" c"+ix+" = new "+r.name()+"();"); +// pStream.println(ind(3)+"node.set"+r.name()+"(c"+(ix++)+");"); +// } +// } +// pStream.println(ind(3)+"for (int i=0; i<getNumElement(); i++) {"); +// pStream.println(ind(4)+"if (getElement(i) instanceof ValueElement) {"); +// pStream.println(ind(5)+"remain.add(getElement(i));"); +// pStream.println(ind(4)+"}"); +// pStream.println(ind(3)+"}"); +// pStream.println(ind(3)+"node.setElementList(remain);"); pStream.println(ind(3)+"return node;"); pStream.println(ind(2)+"}"); pStream.println(ind(1)+"}"); diff --git a/siaras/Statistics.jrag b/siaras/Statistics.jrag index 6c87aa3..26b6197 100644 --- a/siaras/Statistics.jrag +++ b/siaras/Statistics.jrag @@ -10,12 +10,14 @@ import java.io.PrintStream; aspect Statistics { public void ASTNode.getManipulationDevices(PrintStream pStream) { -// for (int i=0; i<getNumChild(); i++) { -// getChild(i).getManipulationDevices(pStream); -// } + for (int i=0; i<getNumChild(); i++) { + getChild(i).getManipulationDevices(pStream); + } } public void Start.getManipulationDevices(PrintStream pStream) { +// System.out.println("Searching among: "+getElementList().getNumChild()+ +// " Things"); for (int i=0; i<getNumElement(); i++) { getElement(i).getManipulationDevices(pStream); } -- GitLab