Template prev;
Template prev2;
JSScope staticScope = null; ///< the scope in which the static block is executed
+ JS staticObject = null;
// Only used during parsing /////////////////////////////////////////////////////////////////
// FIXME this dollar stuff is all wrong
if (id != null) parentPis.putDollar(id, b);
- PerInstantiationScope pis = new PerInstantiationScope(b, ibex, parentPis, staticScope);
+ PerInstantiationScope pis = new PerInstantiationScope(b, ibex, parentPis, staticObject);
for(int i=0; i<urikeys.length; i++) {
if (urikeys[i] == null) continue;
pis.declare(urikeys[i]);
// FIXME: should we be resolving all of these in the XML-parsing code?
}
}
-
b.putAndTriggerTraps(key, val);
}
}
String initial_uri = "";
public TemplateHelper(String sourceName, Object s, Ibex ibex) throws XML.Exn, IOException, JSExn {
- System.out.println("1");
this.sourceName = sourceName;
- System.out.println("2");
this.ibex = ibex;
- System.out.println("3");
InputStream is = Stream.getInputStream(s);
- System.out.println("4");
Ibex.Blessing b = Ibex.Blessing.getBlessing(s).parent;
- System.out.println("5");
- /*
while(b != null) {
if(b.parentkey != null) initial_uri = b.parentkey + (initial_uri.equals("") ? "" : "." + initial_uri);
b = b.parent;
}
- */
initial_uri = "";
- System.out.println("6");
parse(new InputStreamReader(is));
- System.out.println("7");
JS staticScript = parseScript(static_content, static_content_start);
- System.out.println("8");
- t.staticScope = new PerInstantiationScope(null, ibex, null, null);
- System.out.println("9");
+ t.staticObject = new JS();
+ t.staticScope = new PerInstantiationScope(null, ibex, null, t.staticObject);
if (staticScript != null) JS.cloneWithNewParentScope(staticScript, t.staticScope).call(null, null, null, null, 0);
- System.out.println("10");
}
private JS parseScript(StringBuffer content, int content_start) throws IOException {
// process attributes into Vecs, dealing with any XML Namespaces in the process
ATTR: for (int i=0; i < c.getAttrLen(); i++) {
- //#switch(c.getAttrKey(i))
- case "id":
+ if (c.getAttrKey(i).equals("id")) {
t.id = c.getAttrVal(i).toString().intern();
continue ATTR;
- //#end
+ }
// treat value starting with '.' as resource reference
String uri = c.getAttrUri(i); if (!uri.equals("")) uri = '.' + uri;
nodeStack.setSize(nodeStack.size() - 1);
t.children.addElement(oldt);
int oldt_lines = getLine() - oldt.startLine;
+ if (t.content == null) t.content = new StringBuffer();
for (int i=0; oldt_lines > i; i++) t.content.append('\n');
}
}
private static class PerInstantiationScope extends JSScope {
Ibex ibex = null;
PerInstantiationScope parentBoxPis = null;
- JSScope myStatic = null;
+ JS myStatic = null;
void putDollar(String key, Box target) throws JSExn {
if (parentBoxPis != null) parentBoxPis.putDollar(key, target);
declare("$" + key);
put("$" + key, target);
}
- public PerInstantiationScope(JSScope parentScope, Ibex ibex, PerInstantiationScope parentBoxPis, JSScope myStatic) {
+ public PerInstantiationScope(JSScope parentScope, Ibex ibex, PerInstantiationScope parentBoxPis, JS myStatic) {
super(parentScope);
this.parentBoxPis = parentBoxPis;
this.ibex = ibex;