<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 object? Perhaps an array of array not an array or something?<div>Ter<br><div><div>On Feb 20, 2009, at 7:03 AM, <<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 <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> </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"> 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"> 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"> <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> </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">..... .//many of them</font></span></div></div> <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.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"> 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"> <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> </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> </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)::=<<<br> void rule_r<first(rows3cols).one>(Map\<String, Attribut\> attrs, String id){<br> <if(once)><br> rule_r<first(rows3cols).one>_default(attrs);<br> <else><br> if(id.equals("<first(rows3col).three>")<br> {<br> rule_r<first(rows3cols).one>_<first(rows3cols).two>(attrs);<br> }<br> <rest(rows3cols):entryIfs()><br> <endif><br> }<br>>><br>entryIfs()::=<<<br> else if(id.equals("<it.two>")<br> {<br> rule_r<it.one>_<it.three>(attrs);<br> }<br>>></font></span></div><p style="MARGIN: 0cm 0cm 0pt"><span class="374574114-20022009"><font face="Arial" size="2"></font></span> </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> : ENTRY<br> -> entryMethod<br> (<br> once={$rulestart::auths.size()== 1},<br> rows3cols={Utils.makeRows3Cols(Utils.makeList(new Integer($all::ruleCnt).toString(),$rulestart::auths.size()),$rulestart::auths,Utils.dotList($rulestart::auths))} <br> )<br> ;<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 I pass in 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> </div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009"> public String one;<br> public String two;<br> public String three;</span></font></span></div> <div><font color="#0000ff"></font> </div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009"> public Row3Cols(String one, String two, String three) {<br> super();<br> this.one = one;<br> this.two = two;<br> this.three = three;<br> }</span></font></span></div> <div><font color="#0000ff"></font> </div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009"> public String getOne() {<br> return one;<br> }</span></font></span></div> <div><font color="#0000ff"></font> </div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009"> public String getTwo() {<br> return two;<br> }</span></font></span></div> <div><font color="#0000ff"></font> </div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" color="#0000ff" size="2"><span class="374574114-20022009"> public String getThree() {<br> return three;<br> }</span></font></span></div> <div><font color="#0000ff"></font> </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> </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> </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> </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> </div> <div class="Section1"><span class="374574114-20022009"><font face="Arial" size="2"><span class="374574114-20022009"></span> </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>