|
|
@@ -186,10 +186,356 @@ Example</h3> |
|
|
|
This invokes JJTree on grammar file src/Parser.jjt, writing the generated |
|
|
|
grammar file, Parser.jj, file to build/src. The grammar option NODE_USES_PARSER |
|
|
|
is set to true when invoking JJTree. |
|
|
|
<br> |
|
|
|
|
|
|
|
<h3>Comparison output locations between command line JJTree and different Ant taskdef versions</h3> |
|
|
|
|
|
|
|
<table cellpadding="3" border="1"> |
|
|
|
<tr> |
|
|
|
<td><b>Command Line JJTree options</b> |
|
|
|
<br> <i>and Generated Files</i> (working directory: <code>/tmp</code>)</td> |
|
|
|
<td><b>Ant 1.5.3</b> versus command line</td> |
|
|
|
<td><b>Ant 1.6</b> versus command line</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree grammar.jjt</b> |
|
|
|
/tmp/grammar.jj |
|
|
|
/tmp/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Same</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree relative/grammar.jjt</b> |
|
|
|
/tmp/grammar.jj |
|
|
|
/tmp/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td><pre> |
|
|
|
/tmp/relative/grammar.jj |
|
|
|
/tmp/relative/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree /tmp/absolute/grammar.jjt</b> |
|
|
|
/tmp/grammar.jj |
|
|
|
/tmp/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td><pre> |
|
|
|
/tmp/absolute/grammar.jj |
|
|
|
/tmp/absolute/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_DIRECTORY:relative grammar.jjt</b> |
|
|
|
/tmp/relative/grammar.jj |
|
|
|
/tmp/relative/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Same</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_DIRECTORY:relative relative/grammar.jjt</b> |
|
|
|
/tmp/relative/grammar.jj |
|
|
|
/tmp/relative/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Same</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_DIRECTORY:relative /tmp/absolute/grammar.jjt</b> |
|
|
|
/tmp/relative/grammar.jj |
|
|
|
/tmp/relative/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Same</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_DIRECTORY:/tmp/absolute/ grammar.jjt</b> |
|
|
|
/tmp/absolute/grammar.jj |
|
|
|
/tmp/absolute/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Same</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_DIRECTORY:/tmp/absolute/ relative/grammar.jjt</b> |
|
|
|
/tmp/absolute/grammar.jj |
|
|
|
/tmp/absolute/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Same</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_DIRECTORY:/tmp/absolute/ /tmp/absolute/grammar.jjt</b> |
|
|
|
/tmp/absolute/grammar.jj |
|
|
|
/tmp/absolute/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Same</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:output.jj grammar.jjt</b> |
|
|
|
/tmp/output.jj |
|
|
|
/tmp/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:output.jj relative/grammar.jjt</b> |
|
|
|
/tmp/output.jj |
|
|
|
/tmp/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:output.jj /tmp/absolute/grammar.jjt</b> |
|
|
|
/tmp/output.jj |
|
|
|
/tmp/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:output.jj -OUTPUT_DIRECTORY:relative grammar.jjt</b> |
|
|
|
/tmp/relative/output.jj |
|
|
|
/tmp/relative/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:output.jj -OUTPUT_DIRECTORY:relative relative/grammar.jjt</b> |
|
|
|
/tmp/relative/output.jj |
|
|
|
/tmp/relative/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:output.jj -OUTPUT_DIRECTORY:relative /tmp/absolute/grammar.jjt</b> |
|
|
|
/tmp/relative/output.jj |
|
|
|
/tmp/relative/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:output.jj -OUTPUT_DIRECTORY:/tmp/absolute/ grammar.jjt</b> |
|
|
|
/tmp/absolute/output.jj |
|
|
|
/tmp/absolute/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:output.jj -OUTPUT_DIRECTORY:/tmp/absolute/ relative/grammar.jjt</b> |
|
|
|
/tmp/absolute/output.jj |
|
|
|
/tmp/absolute/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:output.jj -OUTPUT_DIRECTORY:/tmp/absolute/ /tmp/absolute/grammar.jjt</b> |
|
|
|
/tmp/absolute/output.jj |
|
|
|
/tmp/absolute/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:subdir/output.jj grammar.jjt</b> |
|
|
|
/tmp/subdir/output.jj |
|
|
|
/tmp/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:subdir/output.jj relative/grammar.jjt</b> |
|
|
|
/tmp/subdir/output.jj |
|
|
|
/tmp/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:subdir/output.jj /tmp/absolute/grammar.jjt</b> |
|
|
|
/tmp/subdir/output.jj |
|
|
|
/tmp/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:subdir/output.jj -OUTPUT_DIRECTORY:relative grammar.jjt</b> |
|
|
|
/tmp/relative/subdir/output.jj |
|
|
|
/tmp/relative/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:subdir/output.jj -OUTPUT_DIRECTORY:relative relative/grammar.jjt</b> |
|
|
|
/tmp/relative/subdir/output.jj |
|
|
|
/tmp/relative/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:subdir/output.jj -OUTPUT_DIRECTORY:relative /tmp/absolute/grammar.jjt</b> |
|
|
|
/tmp/relative/subdir/output.jj |
|
|
|
/tmp/relative/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:subdir/output.jj -OUTPUT_DIRECTORY:/tmp/absolute/ grammar.jjt</b> |
|
|
|
/tmp/absolute/subdir/output.jj |
|
|
|
/tmp/absolute/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:subdir/output.jj -OUTPUT_DIRECTORY:/tmp/absolute/ relative/grammar.jjt</b> |
|
|
|
/tmp/absolute/subdir/output.jj |
|
|
|
/tmp/absolute/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:subdir/output.jj -OUTPUT_DIRECTORY:/tmp/absolute/ /tmp/absolute/grammar.jjt</b> |
|
|
|
/tmp/absolute/subdir/output.jj |
|
|
|
/tmp/absolute/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:/tmp/subdir/output.jj grammar.jjt</b> |
|
|
|
/tmp/subdir/output.jj |
|
|
|
/tmp/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:/tmp/subdir/output.jj relative/grammar.jjt</b> |
|
|
|
/tmp/subdir/output.jj |
|
|
|
/tmp/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:/tmp/subdir/output.jj /tmp/absolute/grammar.jjt</b> |
|
|
|
/tmp/subdir/output.jj |
|
|
|
/tmp/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:<i><u>D:</u></i>/tmp/subdir/output.jj grammar.jjt</b> |
|
|
|
/tmp/subdir/output.jj |
|
|
|
/tmp/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Not Supported *)</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:<i><u>D:</u></i>/tmp/subdir/output.jj relative/grammar.jjt</b> |
|
|
|
/tmp/subdir/output.jj |
|
|
|
/tmp/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Not Supported *)</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:<i><u>D:</u></i>/tmp/subdir/output.jj /tmp/absolute/grammar.jjt</b> |
|
|
|
/tmp/subdir/output.jj |
|
|
|
/tmp/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Not Supported *)</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:/tmp/subdir/output.jj -OUTPUT_DIRECTORY:relative grammar.jjt</b> |
|
|
|
/tmp/relative/tmp/subdir/output.jj |
|
|
|
/tmp/relative/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:/tmp/subdir/output.jj -OUTPUT_DIRECTORY:relative relative/grammar.jjt</b> |
|
|
|
/tmp/relative/tmp/subdir/output.jj |
|
|
|
/tmp/relative/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:/tmp/subdir/output.jj -OUTPUT_DIRECTORY:relative /tmp/absolute/grammar.jjt</b> |
|
|
|
/tmp/relative/tmp/subdir/output.jj |
|
|
|
/tmp/relative/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:/tmp/subdir/output.jj -OUTPUT_DIRECTORY:/tmp/absolute/ grammar.jjt</b> |
|
|
|
/tmp/absolute/tmp/subdir/output.jj |
|
|
|
/tmp/absolute/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:/tmp/subdir/output.jj -OUTPUT_DIRECTORY:/tmp/absolute/ relative/grammar.jjt</b> |
|
|
|
/tmp/absolute/tmp/subdir/output.jj |
|
|
|
/tmp/absolute/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td><pre><b>jjtree -OUTPUT_FILE:/tmp/subdir/output.jj -OUTPUT_DIRECTORY:/tmp/absolute/ /tmp/absolute/grammar.jjt</b> |
|
|
|
/tmp/absolute/tmp/subdir/output.jj |
|
|
|
/tmp/absolute/<generated>.java</pre> |
|
|
|
</td> |
|
|
|
<td>Not Supported</td> |
|
|
|
<td>Same</td> |
|
|
|
</tr> |
|
|
|
</table> |
|
|
|
|
|
|
|
<p>*) <u>Footnote</u>: When running JJTree with the Ant taskdesk <i>jjtree</i> the option <code>-OUTPUT_DIRECTORY</code> must always |
|
|
|
be set, because the project's basedir and the ant working directory might differ. So even if you don't specify the jjtree taskdef |
|
|
|
<i>outputdirectory</i> JJTree will be called with the <code>-OUTPUT_DIRECTORY</code> set to the project's basedirectory. |
|
|
|
But when the <code>-OUTPUT_DIRECTORY</code> is set, the <code>-OUTPUT_FILE</code> setting is handled as if relative to this |
|
|
|
<code>-OUTPUT_DIRECTORY</code>. Thus when the <code>-OUTPUT_FILE</code> is absolute or contains a drive letter we have a |
|
|
|
problem. |
|
|
|
Therefore absolute <i>outputfile</i>s (when the <i>outputdirectory</i> isn't specified) are made relative to the default directory. |
|
|
|
And for this reason <i>outputfile</i>s that contain a drive letter can't be supported.</p> |
|
|
|
|
|
|
|
<p>By the way: specifying a drive letter in the <code>-OUTPUT_FILE</code> when the <code>-OUTPUT_DIRECTORY</code> is set, also |
|
|
|
results in strange behavior when running JJTree from the command line.</p> |
|
|
|
|
|
|
|
<br> |
|
|
|
<hr> |
|
|
|
<p align="center">Copyright © 2001-2003 Apache Software Foundation. All rights |
|
|
|
Reserved.</p> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</body> |
|
|
|
</html> |
|
|
|
|