ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mariusz Nowostawski <>
Subject Optional tasks for external projects
Date Sun, 10 Dec 2000 03:50:15 GMT

I am sorry that I did not follow the thread, but I have removed the
previous messages about XMLC and two comments about putting external
projects tasks to ant or not. 

I think Jon has some good points, and my first impression was that indeed,
all external project tasks should go to the external projects
jars (if only they are shipped as jar files). However, it is not that
perfect, as it makes the external project ant-dependent.  If one uses ANT
to compile the external project, that's fine, but what if one does not?
If I use ANT to compile my project B which uses tools from project A, all
can work well if optional tasks for A are coupled with A. But what if I
need to bootstrap A with A, or what if I
do not use ANT? projects got dependent on ANT and I need to ship ant.jar
for ppl to compile stuff (well, could use optional compilation or
whatever). It also means, that project can get broken with new ANT
releases, etc.

I do not have any particular opinion, and I am waiting for the ANT 2 to
solve all the 'optional tasks' issues ;o). In the meantime, I am looking
forward for the resolution of the discussion about XMLC, because I have
here a ready patch for yet another compiler compiler task, SableCC, which
may be of interest to other ppl. (There are at least two projects which
use both, SableCC and ANT I know of ;o) I can prepare a patch for SableCC
itself, instead of adding it to ANT, but, as pointed before, ANTLR and
Metamata made they optional tasks in ANT, so I am not sure, which is the
correct/consistent way ;o)  (SableCC is a fully object-oriented written in
Java LALR(1) parser generator, accepting grammar files in almost pure
EBNF notation).

Any suggestions?

BTW, ANTLR and SableCC are identical in terms of parameters, both take as
input a grammar (SableCC can take multiple grammars, not sure for
ANTLR) and destination directory as an optional parameter, maybe it would
be good to integrate them both with javacc task? Metamata compilercompiler
would be the default one. Something like:

<javacc target="grammar" outputdirectory="out" compilercompiler="antlr"/>
<javacc target="grammar" outputdirectory="out" compilercompiler="sablecc"/>
<javacc target="grammar" outputdirectory="out" buildparser="yes"  etc all
  other metamata specific options here?

That would reduce number of optional tasks from 3 (at the moment, sure
there are coming new compilercompilers ;o) to 1 (well, a gain only if
optional tasks are kept in some central place). It would also be sort of
consistent with the javac model in ANT. What do you think? I could do it
if you are ok with it, and if javacc and antlr task contributors think it
would be ok with them.


View raw message