[stringtemplate-interest] eval tree parse error <AST>:0:0:	unexpected end of subtree
    Kasper Hansen 
    kbhdk1976 at gmail.com
       
    Sat Feb 20 23:44:12 PST 2010
    
    
  
Hi all,
I'm trying ST out as a JSP replacement, but have some problems;
I load my StringTemplate;
StringTemplateGroup stringTemplateGroup = new
StringTemplateGroup("com.mentalobe.templates");
this.stringTemplate = stringTemplateGroup.getInstanceOf("articlelist");
Here are the templates;
articlelist.st:
$listfield.segments : { segmentInstance |
$segmentfield(segment=segmentInstance)$
}$
segmentfield.st:
$if (segment != null)$
<h3>$segment.name$</h3>
$else$
<h3>segment does not have a name</h3>
$endif$
When i run it, i get the following stacktrace;
action parse error in group com.mentalobe.templates line 0; template
context is [segmentfield]
line 1:4: unexpected token: segment
	at org.antlr.stringtemplate.language.ActionParser.templatesExpr(ActionParser.java:261)
	at org.antlr.stringtemplate.language.ActionParser.ifAtom(ActionParser.java:664)
	at org.antlr.stringtemplate.language.ActionParser.ifCondition(ActionParser.java:335)
	at org.antlr.stringtemplate.language.ActionParser.action(ActionParser.java:157)
	at org.antlr.stringtemplate.StringTemplate.parseAction(StringTemplate.java:876)
	at org.antlr.stringtemplate.language.TemplateParser.action(TemplateParser.java:173)
	at org.antlr.stringtemplate.language.TemplateParser.template(TemplateParser.java:127)
	at org.antlr.stringtemplate.StringTemplate.breakTemplateIntoChunks(StringTemplate.java:850)
	at org.antlr.stringtemplate.StringTemplate.setTemplate(StringTemplate.java:441)
	at org.antlr.stringtemplate.StringTemplateGroup.defineTemplate(StringTemplateGroup.java:679)
	at org.antlr.stringtemplate.StringTemplateGroup.loadTemplate(StringTemplateGroup.java:553)
	at org.antlr.stringtemplate.StringTemplateGroup.loadTemplateFromBeneathRootDirOrCLASSPATH(StringTemplateGroup.java:579)
	at org.antlr.stringtemplate.StringTemplateGroup.lookupTemplate(StringTemplateGroup.java:480)
	at org.antlr.stringtemplate.StringTemplateGroup.getInstanceOf(StringTemplateGroup.java:392)
	at org.antlr.stringtemplate.StringTemplateGroup.getEmbeddedInstanceOf(StringTemplateGroup.java:436)
	at org.antlr.stringtemplate.language.ASTExpr.getTemplateInclude(ASTExpr.java:638)
	at org.antlr.stringtemplate.language.ActionEvaluator.templateInclude(ActionEvaluator.java:470)
	at org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:142)
	at org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.java:84)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:149)
	at org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:705)
	at org.antlr.stringtemplate.language.ASTExpr.writeTemplate(ASTExpr.java:750)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:680)
	at org.antlr.stringtemplate.language.ASTExpr.writeIterableValue(ASTExpr.java:772)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:682)
	at org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:660)
	at org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.java:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:149)
	at org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:705)
	at org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1670)
	at org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1661)
	at com.mentalobe.www.article.ArticleListAction.handle(ArticleListAction.java:37)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)
	at com.mentalobe.www.core.MentalobeServlet.handleEventType(MentalobeServlet.java:360)
	at com.mentalobe.www.core.MentalobeServlet.handleRequest(MentalobeServlet.java:108)
	at com.mentalobe.www.core.MentalobeServlet.doGet(MentalobeServlet.java:81)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
	at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:51)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
	at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
	at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:121)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
	at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
	at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:352)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
	at org.mortbay.jetty.Server.handle(Server.java:313)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:830)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
eval tree parse error
<AST>:0:0: unexpected end of subtree
	at org.antlr.stringtemplate.language.ActionEvaluator.ifCondition(ActionEvaluator.java:814)
	at org.antlr.stringtemplate.language.ConditionalExpr.write(ConditionalExpr.java:99)
	at org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:705)
	at org.antlr.stringtemplate.language.ASTExpr.writeTemplate(ASTExpr.java:750)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:680)
	at org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:660)
	at org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.java:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:149)
	at org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:705)
	at org.antlr.stringtemplate.language.ASTExpr.writeTemplate(ASTExpr.java:750)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:680)
	at org.antlr.stringtemplate.language.ASTExpr.writeIterableValue(ASTExpr.java:772)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:682)
	at org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:660)
	at org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.java:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:149)
	at org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:705)
	at org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1670)
	at org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1661)
	at com.mentalobe.www.article.ArticleListAction.handle(ArticleListAction.java:37)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)
	at com.mentalobe.www.core.MentalobeServlet.handleEventType(MentalobeServlet.java:360)
	at com.mentalobe.www.core.MentalobeServlet.handleRequest(MentalobeServlet.java:108)
	at com.mentalobe.www.core.MentalobeServlet.doGet(MentalobeServlet.java:81)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
	at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:51)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
	at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
	at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:121)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
	at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
	at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:352)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
	at org.mortbay.jetty.Server.handle(Server.java:313)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:830)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
A little help, anyone ?
Cheers,
:-) Kasper
    
    
More information about the stringtemplate-interest
mailing list