<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">if everything is public then perhaps you're testing .one on some other&nbsp;object? &nbsp;Perhaps an array of array not an array or something?<div>Ter<br><div><div>On Feb 20, 2009, at 7:03 AM, &lt;<a href="mailto:seitter.claus@muenchener-verein.de">seitter.claus@muenchener-verein.de</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"> <div> <div><font face="Arial" size="2"><span class="374574114-20022009">Hi all,</span></font></div> <div><font face="Arial" size="2"><span class="374574114-20022009">I just got stuck with the syntax of accessing properties of an attribut that is the result of an operation like &lt;first(multi-valued-attr)>. My intention is to output text for java if clauses like</span></font></div> <div><font face="Arial" size="2"><span class="374574114-20022009"></span></font>&nbsp;</div> <div><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009">if(id.equals("a.b.c"))</span></font></div> <div><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009">{</span></font></div> <div><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009">&nbsp;&nbsp;&nbsp; rule_a_b_c();</span></font></div> <div><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009">}</span></font></div> <div><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009">else if(id.equals("a.b.d"))</span></font></div> <div><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009">{</span></font></div> <div><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009">&nbsp;&nbsp;&nbsp; rule_a_b_d();</span></font></div> <div class="Section1"><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; "><font color="#0000ff">&nbsp;<span class="374574114-20022009"><font face="Arial" size="2">}</font></span></font></div><p style="MARGIN: 0cm 0cm 0pt"><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009"></span></font>&nbsp;</p><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; "><span class="374574114-20022009"><font face="Arial" color="#0000ff" size="2">.....&nbsp;&nbsp;&nbsp; .//many of them</font></span></div></div> <div> <div><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009"></span></font>&nbsp;</div> <div><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009">else if(id.equals("a.b.z"))</span></font></div> <div><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009">{</span></font></div> <div><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009">&nbsp;&nbsp;&nbsp; rule_a_b_z();</span></font></div> <div class="Section1"><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; "><font color="#0000ff">&nbsp;<span class="374574114-20022009"><font face="Arial" size="2">}</font></span></font></div><p style="MARGIN: 0cm 0cm 0pt"><span class="374574114-20022009"><font face="Arial" size="2"></font></span>&nbsp;</p><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; "><span class="374574114-20022009"><font face="Arial" size="2">here are my templates:</font></span></div><p style="MARGIN: 0cm 0cm 0pt"><span class="374574114-20022009"><font face="Arial" size="2"></font></span>&nbsp;</p><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; "><span class="374574114-20022009"><font face="Arial" color="#0000ff" size="2">entryMethod(once, rows3cols)::=&lt;&lt;<br>&nbsp; void rule_r&lt;first(rows3cols).one>(Map\&lt;String, Attribut\> attrs, String id){<br>&nbsp;&nbsp; &lt;if(once)><br>&nbsp;&nbsp;&nbsp;&nbsp; rule_r&lt;first(rows3cols).one>_default(attrs);<br>&nbsp;&nbsp; &lt;else><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(id.equals("&lt;first(rows3col).three>")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rule_r&lt;first(rows3cols).one>_&lt;first(rows3cols).two>(attrs);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;rest(rows3cols):entryIfs()><br>&nbsp;&nbsp; &lt;endif><br>&nbsp; }<br>>><br>entryIfs()::=&lt;&lt;<br>&nbsp; else if(id.equals("&lt;it.two>")<br>&nbsp; {<br>&nbsp;&nbsp;&nbsp; rule_r&lt;it.one>_&lt;it.three>(attrs);<br>&nbsp; }<br>>></font></span></div><p style="MARGIN: 0cm 0cm 0pt"><span class="374574114-20022009"><font face="Arial" size="2"></font></span>&nbsp;</p><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; "><span class="374574114-20022009"><font face="Arial" size="2">the template is called from an antl3 tree parser:</font></span></div><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; "><span class="374574114-20022009"><font face="Arial" size="2"><font color="#0000ff">//--------------------------------------------------------------------------------<br>entrytoken<br>&nbsp; : ENTRY<br>&nbsp; -> entryMethod<br>&nbsp; (<br>&nbsp;&nbsp;&nbsp; once={$rulestart::auths.size()== 1},<br>&nbsp;&nbsp;&nbsp; rows3cols={Utils.makeRows3Cols(Utils.makeList(new Integer($all::ruleCnt).toString(),$rulestart::auths.size()),$rulestart::auths,Utils.dotList($rulestart::auths))} <br>&nbsp; )<br>&nbsp; ;<br>//--------------------------------------------------------------------------------</font></font></span></div><span class="374574114-20022009"><font face="Arial" size="2"><font color="#0000ff"></font></font></span></div> <div class="Section1"><span class="374574114-20022009"><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; "><span class="374574114-20022009"></span><font face="Arial" size="2">t<span class="374574114-20022009">he Object array&nbsp;I pass in&nbsp; is an Array of </span></font></div><font face="Arial" size="2"><span class="374574114-20022009"></span></font></span></div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009">public class Row3Cols {</span></font></span></div> <div><font color="#0000ff"></font>&nbsp;</div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009">&nbsp; public String one;<br>&nbsp; public String two;<br>&nbsp; public String three;</span></font></span></div> <div><font color="#0000ff"></font>&nbsp;</div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009">&nbsp; public Row3Cols(String one, String two, String three) {<br>&nbsp;&nbsp;&nbsp; super();<br>&nbsp;&nbsp;&nbsp; this.one = one;<br>&nbsp;&nbsp;&nbsp; this.two = two;<br>&nbsp;&nbsp;&nbsp; this.three = three;<br>&nbsp; }</span></font></span></div> <div><font color="#0000ff"></font>&nbsp;</div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009">&nbsp; public String getOne() {<br>&nbsp;&nbsp;&nbsp; return one;<br>&nbsp; }</span></font></span></div> <div><font color="#0000ff"></font>&nbsp;</div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009">&nbsp; public String getTwo() {<br>&nbsp;&nbsp;&nbsp; return two;<br>&nbsp; }</span></font></span></div> <div><font color="#0000ff"></font>&nbsp;</div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009">&nbsp; public String getThree() {<br>&nbsp;&nbsp;&nbsp; return three;<br>&nbsp; }</span></font></span></div> <div><font color="#0000ff"></font>&nbsp;</div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" size="2"><span class="374574114-20022009"><font color="#0000ff">}</font></span></font></span></div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" size="2"><span class="374574114-20022009"><font color="#0000ff"></font></span></font></span>&nbsp;</div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" size="2"><span class="374574114-20022009">What happens is are exceptions on runtime:</span></font></span></div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" size="2"><span class="374574114-20022009"></span></font></span>&nbsp;</div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" color="#ff0000" size="2"><span class="374574114-20022009">Class [Lde.emvau.ruletool.compiler.Row3Cols; has no such attribute: one in template context [ruleSetClass aliasesBlocksAndMethods entryMethod]<br>java.lang.NoSuchFieldException: one</span></font></span></div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" color="#ff0000" size="2"><span class="374574114-20022009">Exception in thread "main" java.util.NoSuchElementException: no such attribute: rows3col in template context [ruleSetClass aliasesBlocksAndMethods entryMethod else_subtemplate]</span></font></span></div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" color="#ff0000" size="2"><span class="374574114-20022009"></span></font></span>&nbsp;</div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" size="2"><span class="374574114-20022009">What am I missing? Any help appreciated !</span></font></span></div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" size="2"><span class="374574114-20022009">Best Regards,</span></font></span></div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" size="2"><span class="374574114-20022009">Claus</span></font></span></div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" color="#ff0000" size="2"><span class="374574114-20022009"></span></font></span>&nbsp;</div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" size="2"><span class="374574114-20022009"></span>&nbsp;</font></span></div><font face="Arial" size="2"><div style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; "><br></div></font></div></div> _______________________________________________<br>stringtemplate-interest mailing list<br><a href="mailto:stringtemplate-interest@antlr.org">stringtemplate-interest@antlr.org</a><br>http://www.antlr.org/mailman/listinfo/stringtemplate-interest<br></blockquote></div><br></div></body></html>