Revision: 1920
http://svn.sourceforge.net/vexi/?rev=1920&view=rev
Author: mkpg2
Date: 2007-07-04 12:02:28 -0700 (Wed, 04 Jul 2007)
Log Message:
-----------
Fix. Only parse template functions before they are about to be applied for the
first time.
(Devl code requires information from preapplies at parsetime and with lazy
resolving means we also have to lazily parse).
Modified Paths:
--------------
core/trunk/org.vexi.core/src/org/vexi/core/Template.java
core/trunk/org.vexi.core/src/org/vexi/core/TemplateBuilder.java
core/trunk/org.vexi.devl/src/org/vexi/core/DevlTemplateBuilder.jpp
Modified: core/trunk/org.vexi.core/src/org/vexi/core/Template.java
===================================================================
--- core/trunk/org.vexi.core/src/org/vexi/core/Template.java 2007-07-04
06:06:19 UTC (rev 1919)
+++ core/trunk/org.vexi.core/src/org/vexi/core/Template.java 2007-07-04
19:02:28 UTC (rev 1920)
@@ -200,7 +200,13 @@
b.putAndTriggerTraps(b.get(SC_numchildren), kid);
}
- if (script != null) JSU.cloneWithNewGlobalScope(script,
pis).call(null, callempty);
+ // UGLY - avoiding adding an init param
+ if (script == null){
+ pisParserParam =
TemplateBuilder.instance.createPIChecker(uriPrefixes, this);
+ script = TemplateBuilder.parseScript(content, content_start,
fileName(), pisParserParam); content = null;
+ if(script== null)script = JSU.F;
+ }
+ if (script != JSU.F) JSU.cloneWithNewGlobalScope(script,
pis).call(null, callempty);
for(int i=0; keys != null && i < keys.length; i++) {
if (keys[i] == null) continue;
@@ -424,6 +430,10 @@
}
+ /*public String toString() {
+ return fileName();
+ }*/
+
}
class CodeBlock{
Modified: core/trunk/org.vexi.core/src/org/vexi/core/TemplateBuilder.java
===================================================================
--- core/trunk/org.vexi.core/src/org/vexi/core/TemplateBuilder.java
2007-07-04 06:06:19 UTC (rev 1919)
+++ core/trunk/org.vexi.core/src/org/vexi/core/TemplateBuilder.java
2007-07-04 19:02:28 UTC (rev 1920)
@@ -24,7 +24,7 @@
public class TemplateBuilder{
- static private TemplateBuilder instance;
+ static TemplateBuilder instance;
public static void setTemplateBuilder(TemplateBuilder instance){
TemplateBuilder.instance = instance;
@@ -39,6 +39,13 @@
for (int i=0; nLines > i; i++) content.append('\n');
}
+ static JS parseScript(StringBuffer content, int content_start, String
sourceName, GlobalsChecker parserParam) throws IOException {
+ if (content == null) return null;
+ String contentString = content.toString();
+ if (contentString.trim().length() > 0) return
Parser.fromReader(sourceName, content_start, new StringReader(contentString),
parserParam);
+ return null;
+ }
+
private static final int STATE_INITIAL = 0;
private static final int STATE_IN_ROOT_NODE = 1;
private static final int STATE_IN_TEMPLATE_NODE = 2;
@@ -74,7 +81,7 @@
if (is != null) {
parse(new InputStreamReader(is));
if(Log.sLevel==Log.DEBUG)Log.uDebug(TemplateHelper.class, "Parsing template: "
+ sourceName());
- JS staticScript =
parseScript(staticCode.content, staticCode.content_start,
createStaticChecker(staticPrefixes));
+ JS staticScript =
parseScript(staticCode.content, staticCode.content_start, sourceName(),
createStaticChecker(staticPrefixes));
if (t != null) {
initStatic();
JS staticScope = t.new StaticScope();
@@ -108,12 +115,6 @@
public TemplateHelper() {}
- JS parseScript(StringBuffer content, int content_start,
GlobalsChecker parserParam) throws IOException {
- if (content == null) return null;
- String contentString = content.toString();
- if (contentString.trim().length() > 0) return
Parser.fromReader(sourceName(), content_start, new StringReader(contentString),
parserParam);
- return null;
- }
/** @param c - current element */
public void startElement(Tree.Element c) throws XML.Exn {
@@ -242,10 +243,6 @@
case STATE_IN_ROOT_NODE:
return;
case STATE_IN_TEMPLATE_NODE: {
- t.pisParserParam = createPIChecker(t.uriPrefixes, t);
- if (t.content != null) {
- t.script = parseScript(t.content,
t.content_start, t.pisParserParam); t.content = null;
- }
if (nodeStack.size() == 0) {
state = STATE_IN_ROOT_NODE;
if (staticCode.content != null) {
Modified: core/trunk/org.vexi.devl/src/org/vexi/core/DevlTemplateBuilder.jpp
===================================================================
--- core/trunk/org.vexi.devl/src/org/vexi/core/DevlTemplateBuilder.jpp
2007-07-04 06:06:19 UTC (rev 1919)
+++ core/trunk/org.vexi.devl/src/org/vexi/core/DevlTemplateBuilder.jpp
2007-07-04 19:02:28 UTC (rev 1920)
@@ -67,7 +67,7 @@
"DoubleClick2","_DoubleClick2",
"DoubleClick3","_DoubleClick3",
"Enter","Leave","Move",
- "ChildAdded","ChildRemoved",
+ "Children",
//#end
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Vexi-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/vexi-svn