<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div>I have the following case.</div><div><br></div><div>st.setAttribute("x.y.z", "value");</div><div><font class="Apple-style-span" face="monospace"><span class="Apple-style-span" style="white-space: pre;"><font class="Apple-style-span" face="Monaco"><span class="Apple-style-span" style="white-space: normal;"><br></span></font></span></font></div><div>How Can i access this property in st file.</div><div><br></div><div>i tried:</div><div><br></div><div>$x.y.z$</div><div>$("x.y.z")$</div><div><br></div><div>Fanta</div><div><br></div><div><br></div><div><pre class="code-java"><br></pre></div><div>On 2 Nov 2009, at 19:50, <a href="mailto:stringtemplate-interest-request@antlr.org">stringtemplate-interest-request@antlr.org</a> wrote:</div><div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Send stringtemplate-interest mailing list submissions to<br><span class="Apple-tab-span" style="white-space:pre">        </span><a href="mailto:stringtemplate-interest@antlr.org">stringtemplate-interest@antlr.org</a><br><br>To subscribe or unsubscribe via the World Wide Web, visit<br><span class="Apple-tab-span" style="white-space:pre">        </span>http://www.antlr.org/mailman/listinfo/stringtemplate-interest<br>or, via email, send a message with subject or body 'help' to<br><span class="Apple-tab-span" style="white-space:pre">        </span>stringtemplate-interest-request@antlr.org<br><br>You can reach the person managing the list at<br><span class="Apple-tab-span" style="white-space:pre">        </span>stringtemplate-interest-owner@antlr.org<br><br>When replying, please edit your Subject line so it is more specific<br>than "Re: Contents of stringtemplate-interest digest..."<br><br><br>Today's Topics:<br><br> &nbsp;&nbsp;1. Re: Web app - read templates from<span class="Apple-tab-span" style="white-space:pre">        </span>multiple directories<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Terence Parr)<br> &nbsp;&nbsp;2. Re: Web app - read templates from<span class="Apple-tab-span" style="white-space:pre">        </span>multiple directories<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Ran Tavory)<br> &nbsp;&nbsp;3. StringTemplate struts2 support (Ran Tavory)<br> &nbsp;&nbsp;4. Re: Multivalued attributes and iteration<span class="Apple-tab-span" style="white-space:pre">        </span>over inner and outer<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loops (Ollerton, Robert M CIV SPAWARSYSCEN-PACIFIC,<span class="Apple-tab-span" style="white-space:pre">        </span>71120)<br> &nbsp;&nbsp;5. C# port binaries (CSharp3 target,<span class="Apple-tab-span" style="white-space:pre">        </span>StringTemplate, Tool,<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSBuild integration) (Sam Harwell)<br><br><br>----------------------------------------------------------------------<br><br>Message: 1<br>Date: Sun, 1 Nov 2009 18:06:31 +0900<br>From: Terence Parr &lt;parrt@cs.usfca.edu&gt;<br>Subject: Re: [stringtemplate-interest] Web app - read templates from<br><span class="Apple-tab-span" style="white-space:pre">        </span>multiple directories<br>To: Ran Tavory &lt;rantav@gmail.com&gt;<br>Cc: stringtemplate-interest@antlr.org<br>Message-ID: &lt;5DA84FC5-5B70-42AC-B8FF-8081782BF56E@cs.usfca.edu&gt;<br>Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes<br><br><br>On Nov 1, 2009, at 5:49 PM, Ran Tavory wrote:<br><br><blockquote type="cite">I've implemented a string template result type for struts2, and so &nbsp;<br></blockquote><blockquote type="cite">far I'm very happy with st, but there's one limitation I haven't &nbsp;<br></blockquote><blockquote type="cite">been able to figure out.<br></blockquote><blockquote type="cite">It seems ST requires all template files to be at the same directory. &nbsp;<br></blockquote><blockquote type="cite">(or did I miss anything?...)<br></blockquote><blockquote type="cite">So, for medium to large web-apps this is an annoyance. I'd like to &nbsp;<br></blockquote><blockquote type="cite">be able to create multiple directories, such as "full_pages" or &nbsp;<br></blockquote><blockquote type="cite">"layouts" or "snippets" or "reports" and be able to load &nbsp;<br></blockquote><blockquote type="cite">multiple .st files from their common parent directory.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Is there a way to get over this limitation?<br></blockquote><br>Use subdirectories and then use $misc/searchbox()$ and $gutter/ <br>leftnav()$ etc :)<br><br>Ter<br><br><br>------------------------------<br><br>Message: 2<br>Date: Sun, 1 Nov 2009 17:03:36 +0200<br>From: Ran Tavory &lt;rantav@gmail.com&gt;<br>Subject: Re: [stringtemplate-interest] Web app - read templates from<br><span class="Apple-tab-span" style="white-space:pre">        </span>multiple directories<br>To: Terence Parr &lt;parrt@cs.usfca.edu&gt;<br>Cc: stringtemplate-interest@antlr.org<br>Message-ID:<br><span class="Apple-tab-span" style="white-space:pre">        </span>&lt;e4b4609b0911010703sf462e9dv6810dd24d1a7dfd4@mail.gmail.com&gt;<br>Content-Type: text/plain; charset="utf-8"<br><br>Ah, that simple, thanks!<br><br>On Sun, Nov 1, 2009 at 11:06 AM, Terence Parr &lt;parrt@cs.usfca.edu&gt; wrote:<br><br><blockquote type="cite"><br></blockquote><blockquote type="cite">On Nov 1, 2009, at 5:49 PM, Ran Tavory wrote:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"> I've implemented a string template result type for struts2, and so far I'm<br></blockquote><blockquote type="cite"><blockquote type="cite">very happy with st, but there's one limitation I haven't been able to figure<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">out.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">It seems ST requires all template files to be at the same directory. (or<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">did I miss anything?...)<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">So, for medium to large web-apps this is an annoyance. I'd like to be able<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">to create multiple directories, such as "full_pages" or "layouts" or<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">"snippets" or "reports" and be able to load multiple .st files from their<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">common parent directory.<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">Is there a way to get over this limitation?<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Use subdirectories and then use $misc/searchbox()$ and $gutter/leftnav()$<br></blockquote><blockquote type="cite">etc :)<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Ter<br></blockquote><blockquote type="cite"><br></blockquote>-------------- next part --------------<br>An HTML attachment was scrubbed...<br>URL: http://www.antlr.org/pipermail/stringtemplate-interest/attachments/20091101/390d26e4/attachment-0001.html <br><br>------------------------------<br><br>Message: 3<br>Date: Mon, 2 Nov 2009 16:05:04 +0200<br>From: Ran Tavory &lt;rantav@gmail.com&gt;<br>Subject: [stringtemplate-interest] StringTemplate struts2 support<br>To: stringtemplate-interest@antlr.org<br>Message-ID:<br><span class="Apple-tab-span" style="white-space:pre">        </span>&lt;e4b4609b0911020605t2128c729oce56d59c7c867cc1@mail.gmail.com&gt;<br>Content-Type: text/plain; charset="utf-8"<br><br>I've implemented struts2 support for StringTemplate if anyone is interested.<br>It's still "unstable" (just wrote it last week) - there are no issues, it's<br>just new, so not yet heavily tested.<br>http://rantav.posterous.com/struts2-stringtemplate-support<br>-------------- next part --------------<br>An HTML attachment was scrubbed...<br>URL: http://www.antlr.org/pipermail/stringtemplate-interest/attachments/20091102/a83da8bb/attachment-0001.html <br><br>------------------------------<br><br>Message: 4<br>Date: Mon, 2 Nov 2009 06:41:43 -0800<br>From: "Ollerton, Robert M CIV SPAWARSYSCEN-PACIFIC,<span class="Apple-tab-span" style="white-space:pre">        </span>71120"<br><span class="Apple-tab-span" style="white-space:pre">        </span>&lt;bob.ollerton@navy.mil&gt;<br>Subject: Re: [stringtemplate-interest] Multivalued attributes and<br><span class="Apple-tab-span" style="white-space:pre">        </span>iteration<span class="Apple-tab-span" style="white-space:pre">        </span>over inner and outer loops<br>To: &lt;stringtemplate-interest@antlr.org&gt;<br>Message-ID:<br><span class="Apple-tab-span" style="white-space:pre">        </span>&lt;FBE48BFEFDEF4E41AC92A4BF7B8886896E725F@nawespscez02v.nadsuswe.nads.navy.mil&gt;<br><span class="Apple-tab-span" style="white-space:pre">        </span><br>Content-Type: text/plain;<span class="Apple-tab-span" style="white-space:pre">        </span>charset="us-ascii"<br><br><blockquote type="cite">.Message: 1<br></blockquote><blockquote type="cite">Date: Thu, 29 Oct 2009 12:13:11 -0800<br></blockquote><blockquote type="cite">From: "Ollerton, Robert M CIV SPAWARSYSCEN-PACIFIC,<br></blockquote>71120"&lt;bob.ollerton@navy.mil&gt;<br><blockquote type="cite">Subject: [stringtemplate-interest] Multivalued attributes and iteration<br></blockquote>over inner and outer loops<br><blockquote type="cite">To: &lt;stringtemplate-interest@antlr.org&gt;<br></blockquote><blockquote type="cite">Message-ID:<br></blockquote><span class="Apple-tab-span" style="white-space:pre">        </span><br><blockquote type="cite">&lt;FBE48BFEFDEF4E41AC92A4BF7B8886896E725E@nawespscez02v.nadsuswe.nads.nav<br></blockquote>y.mil&gt;<br><blockquote type="cite"><span class="Apple-tab-span" style="white-space:pre">        </span><br></blockquote><blockquote type="cite">Content-Type: text/plain;<span class="Apple-tab-span" style="white-space:pre">        </span>charset="us-ascii"<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Greetings,<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">I do not understand how to formulate a group of templates that can be<br></blockquote>used to iterate over the elements in lists of lists. &nbsp;I would like to<br>understand how to use string templates generate the same output that<br>this program does. For example, the following program generates this<br>output when given 2 and 3 as inputs:<br><blockquote type="cite"><br></blockquote><blockquote type="cite">s0<br></blockquote><blockquote type="cite">e0 -&gt; s0<br></blockquote><blockquote type="cite">e1 -&gt; s1<br></blockquote><blockquote type="cite">e2 -&gt; s0<br></blockquote><blockquote type="cite">s1<br></blockquote><blockquote type="cite">e0 -&gt; s0<br></blockquote><blockquote type="cite">e1 -&gt; s1<br></blockquote><blockquote type="cite">e2 -&gt; s0<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">What would a set of templates, preferably in a single group template<br></blockquote>file, look like?<br><blockquote type="cite"><br></blockquote><blockquote type="cite">Thanks,<br></blockquote><blockquote type="cite">Bob<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">/**<br></blockquote><blockquote type="cite">* The program<br></blockquote><blockquote type="cite">*/<br></blockquote><blockquote type="cite">class S {<br></blockquote><blockquote type="cite">final String s;<br></blockquote><blockquote type="cite">final T[] t;<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">S(String s, int n) { this.s = s; t = new T[n]; }<br></blockquote><blockquote type="cite">public String getS() { return s; }<br></blockquote><blockquote type="cite">public T[] getT() { return t; }<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">public String toString(){<br></blockquote><blockquote type="cite">StringBuilder sb = new StringBuilder();<br></blockquote><blockquote type="cite">sb.append(s);<br></blockquote><blockquote type="cite">for (T temp: t)<br></blockquote><blockquote type="cite">sb.append("\n &nbsp;&nbsp;&nbsp;" + temp.getE()+ " -&gt; " + temp.getD());<br></blockquote><blockquote type="cite">return sb.toString();<br></blockquote><blockquote type="cite">}<br></blockquote><blockquote type="cite">}<br></blockquote><blockquote type="cite">class T {<br></blockquote><blockquote type="cite">final String e;<br></blockquote><blockquote type="cite">final String d;<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">T(String e, String d) { this.e = e; this.d = d; }<br></blockquote><blockquote type="cite">public String getD() { return d; }<br></blockquote><blockquote type="cite">public String getE() { return e; }<br></blockquote><blockquote type="cite">}<br></blockquote><blockquote type="cite">public class Test {<br></blockquote><blockquote type="cite">public static void main(String[] args) {<br></blockquote><blockquote type="cite">final int j = Integer.parseInt(args[0]);<br></blockquote><blockquote type="cite">final int k = Integer.parseInt(args[1]);<br></blockquote><blockquote type="cite">S[] s = new S[j];<br></blockquote><blockquote type="cite">for (int outer = 0; outer &lt; j; outer++) {<br></blockquote><blockquote type="cite">s[outer] = new S("s" + outer, k);<br></blockquote><blockquote type="cite">for (int inner = 0; inner &lt; k; inner++) {<br></blockquote><blockquote type="cite">s[outer].getT()[inner] = new T("e" + inner, "s"<br></blockquote><blockquote type="cite">+ (inner % j));<br></blockquote><blockquote type="cite">}<br></blockquote><blockquote type="cite">}<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">for (S v: s)<br></blockquote><blockquote type="cite">System.out.println(v.toString());<br></blockquote><blockquote type="cite">}<br></blockquote><blockquote type="cite">}<br></blockquote><blockquote type="cite"><br></blockquote>---------------------------------------------------------<br><br>This group file does it for the following program:<br><br>---------------------------------------------------------<br>group test;<br><br>event_case(e, s) ::= &lt;&lt;<br>case &lt;e&gt;:<br> &nbsp;&nbsp;&nbsp;&lt;s&gt;Action(data);<br><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><br><br>event_switch (trans) ::= <br> &nbsp;&nbsp;&nbsp;&lt;&lt;&lt;trans:event_case(e=trans.e, s=trans.d)&gt; &gt;&gt;<br><br>state_case (states) ::= &lt;&lt;<br>case &lt;it.s&gt; :<br> &nbsp;&nbsp;&nbsp;switch (event) {<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;it.t:event_switch(); separator="\n"&gt; <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br> &nbsp;&nbsp;&nbsp;}<br><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><br>state_switch (states)::= &lt;&lt;<br><br>switch (current) {<br> &nbsp;&nbsp;&nbsp;&lt;states:state_case(); separator="\n"&gt;<br> &nbsp;&nbsp;&nbsp;default:<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br>}<br><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><br>---------------------------------------------------------<br>import java.io.FileReader;<br>import java.io.IOException;<br>import org.antlr.stringtemplate.StringTemplate;<br>import org.antlr.stringtemplate.StringTemplateGroup;<br>class S {<br> &nbsp;&nbsp;&nbsp;final String s;<br> &nbsp;&nbsp;&nbsp;final T[] t;<br><br> &nbsp;&nbsp;&nbsp;S(String s, int n) {<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.s = s;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t = new T[n];<br> &nbsp;&nbsp;&nbsp;}<br><br> &nbsp;&nbsp;&nbsp;public String getS() {<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return s;<br> &nbsp;&nbsp;&nbsp;}<br><br> &nbsp;&nbsp;&nbsp;public T[] getT() {<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return t;<br> &nbsp;&nbsp;&nbsp;}<br><br> &nbsp;&nbsp;&nbsp;public String toString() {<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuilder sb = new StringBuilder();<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(s);<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (T temp : t)<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append("\n &nbsp;&nbsp;&nbsp;" + temp.getE() + " -&gt; " + temp.getD());<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return sb.toString();<br> &nbsp;&nbsp;&nbsp;}<br>}<br>class T {<br> &nbsp;&nbsp;&nbsp;final String e;<br> &nbsp;&nbsp;&nbsp;final String d;<br><br> &nbsp;&nbsp;&nbsp;T(String e, String d) {<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.e = e;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.d = d;<br> &nbsp;&nbsp;&nbsp;}<br><br> &nbsp;&nbsp;&nbsp;public String getD() {<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return d;<br> &nbsp;&nbsp;&nbsp;}<br><br> &nbsp;&nbsp;&nbsp;public String getE() {<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return e;<br> &nbsp;&nbsp;&nbsp;}<br><br> &nbsp;&nbsp;&nbsp;public String toString(){<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return e + "-&gt;" + d;<br> &nbsp;&nbsp;&nbsp;}<br>}<br>public class Test {<br> &nbsp;&nbsp;&nbsp;//<br> &nbsp;&nbsp;&nbsp;public static void main(String[] args) throws IOException {<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final int j = Integer.parseInt(args[0]);<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final int k = Integer.parseInt(args[1]);<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S[] s = new S[j];<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int outer = 0; outer &lt; j; outer++) {<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s[outer] = new S("s" + outer, k);<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int inner = 0; inner &lt; k; inner++) {<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s[outer].getT()[inner] = new T("e" + inner, "s"<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ (inner % j));<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (S v : s)<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(v.toString());<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final String filename = "templates/test.stg";<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final FileReader reader = new FileReader(filename);<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringTemplateGroup group = new StringTemplateGroup(reader);<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.close();<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// final StringTemplate template = group.getInstanceOf("ev");<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final StringTemplate template = group<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getInstanceOf("state_switch");<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template.setAttribute("states", s);<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(template.toString());<br> &nbsp;&nbsp;&nbsp;}<br>}<br><br><br>------------------------------<br><br>Message: 5<br>Date: Mon, 2 Nov 2009 13:49:53 -0600<br>From: "Sam Harwell" &lt;sharwell@pixelminegames.com&gt;<br>Subject: [stringtemplate-interest] C# port binaries (CSharp3 target,<br><span class="Apple-tab-span" style="white-space:pre">        </span>StringTemplate, Tool, MSBuild integration)<br>To: &lt;antlr-dev@antlr.org&gt;, &lt;antlr-interest@antlr.org&gt;,<span class="Apple-tab-span" style="white-space:pre">        </span>"StringTemplate<br><span class="Apple-tab-span" style="white-space:pre">        </span>Mailing List" &lt;stringtemplate-interest@antlr.org&gt;<br>Message-ID:<br><span class="Apple-tab-span" style="white-space:pre">        </span>&lt;DD5A5D428FE040429CCDF377FAA892840152DE08@martini.ironwillgames.com&gt;<br>Content-Type: text/plain; charset="us-ascii"<br><br>I've made some fixes since my previous release, so I'm releasing an<br>updated beta build. I'm very interested in any feedback you may have<br>about any part of this.<br><br><br><br>http://www.280z28.org/downloads/antlr-dotnet-binaries-3.2.0.6288.7z<br><br><br><br>Since this is hosted on a different site than the original, you can<br>check the assembly strong names to verify that I built this one with the<br>same in-house signing keys as the earlier release. :)<br><br><br><br>Contents:<br><br><br><br>* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LICENSE.txt. All code in the C# ports of the Tool and<br>StringTemplate, plus the CSharp3 target are licensed under the same BSD<br>3-clause license as their Java counterparts except for the addition of<br>my name. Other targets are licensed under their own terms so you'll have<br>to check those separately if they are relevant to you.<br><br>* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CSharp3 runtime (Antlr3.Runtime.dll and<br>Antlr3.Runtime.Debug.dll). You always have to reference<br>Antlr3.Runtime.dll to use the CSharp3 target. You only need to reference<br>Antlr3.Runtime.Debug.dll if you build with the -debug or -profile<br>command line flags.<br><br>* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringTemplate .NET port (Antlr3.StringTemplate.dll). This<br>depends on both of the CSharp3 runtime DLL's, so include those if you<br>are using StringTemplate.<br><br>* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ANTLR Tool .NET port (Antlr3.exe). Works with the same command<br>line arguments as the Java version, and should produce nearly identical<br>output for any given target. All target code generation templates are<br>updated to the latest version as of earlier today.<br><br>* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MSBuild integration (Antlr3.targets, AntlrBuildTask.dll).<br>Preliminary instructions for using this follows.<br><br>* &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Symbol files for all binaries (*.pdb).<br><br><br><br>MSBuild Integration Instructions:<br><br><br><br>These instructions definitely work for Visual Studio 2008 C# projects<br>targeting the CSharp3 runtime (it's how I built all the files you're<br>downloading). They almost surely work for the CSharp2 target, but I<br>haven't tried it. They might also work for Visual Studio 2005 or 2010<br>projects, but again I haven't tried it.<br><br><br><br>Extract the contents of the download to $(SolutionDir)\external\antlr.<br>For example, if you have the solution file C:\Something\MyProject.sln,<br>then you would find Antlr3.exe at<br>C:\Something\external\antlr\tool\Antlr3.exe. (The directions can be<br>modified to suit if you want to use a different path.)<br><br><br><br>Open your project file (*.csproj) as an XML or plain text file and<br>locate the line importing Microsoft.CSharp.targets. I've included the<br>line in the following block of code as a reference point for the<br>necessary changes - just add the other lines below that point.<br><br><br><br> &nbsp;&lt;Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /&gt;<br><br> &nbsp;&lt;!-- Include the following immediately *after* the above import (which<br>will already exist in the file) --&gt;<br><br> &nbsp;&lt;PropertyGroup&gt;<br><br> &nbsp;&nbsp;&nbsp;&lt;!-- Folder containing AntlrBuildTask.dll --&gt;<br><br><br>&lt;AntlrBuildTaskPath&gt;$(SolutionDir)external\antlr\msbuild&lt;/AntlrBuildTask<br>Path&gt;<br><br> &nbsp;&nbsp;&nbsp;&lt;!-- Path to the ANTLR Tool itself. --&gt;<br><br><br>&lt;AntlrToolPath&gt;$(SolutionDir)external\antlr\tool\Antlr3.exe&lt;/AntlrToolPa<br>th&gt;<br><br> &nbsp;&lt;/PropertyGroup&gt;<br><br> &nbsp;&lt;Import Project="$(SolutionDir)external\antlr\msbuild\Antlr3.targets"<br>/&gt;<br><br><br><br>When you open the project in Visual Studio, you will be able to select a<br>.g or .g3 file in the project, select right click &gt; Properties, and<br>choose Antlr3 as the Build Action. To add a new grammar to the project,<br>add a new "Text File" with the extension .g or .g3, and set its build<br>action. You no longer have to manually add grammars by editing the<br>project file.<br><br><br><br>Finally, make sure you add a reference to the appropriate ANTLR runtime<br>(CSharp2 or CSharp3).<br><br><br><br>Thank you,<br><br>Sam Harwell<br><br>-------------- next part --------------<br>An HTML attachment was scrubbed...<br>URL: http://www.antlr.org/pipermail/stringtemplate-interest/attachments/20091102/f6323352/attachment.html <br><br>------------------------------<br><br>_______________________________________________<br>stringtemplate-interest mailing list<br>stringtemplate-interest@antlr.org<br>http://www.antlr.org/mailman/listinfo/stringtemplate-interest<br><br><br>End of stringtemplate-interest Digest, Vol 56, Issue 2<br>******************************************************<br></div></blockquote></div><br></body></html>