[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