build.xmlで次のantスクリプトを使用してチュートリアルを読んでいました
<project name="calculator4" default="generate" basedir=".">
<property name="src" location="src" />
<property name="gen" location="gen" />
<property name="src" location="src" />
<property name="package" value="calculator4" />
<target name="generate">
<mkdir dir="${gen}/${package}" />
<java classname="org.antlr.v4.Tool" classpathref="classpath" fork="true">
<arg value="-o" />
<arg path="${gen}/${package}" />
<arg value="-lib" />
<arg path="${src}/${package}" />
<arg value="-listener" />
<arg value="${src}/${package}/Calculator.g4" />
</java>
</target>
私はantについてあまり知らず、使いたくないので、コマンドを次のようにbashに変換しようとします
java org.antlr.v4.Tool -o gen/calculator4 -lib src/calculator4 -listener src/calculator4/Calculator.g4
しかし、gen/calculator4 でファイルを生成する正しい動作が想定されているように、gen/calculator4/src/calculator4 でファイルを生成するため、これは間違っています。
直接置換以外に ${} で何か特別なことはありますか?