User Comments
This web page contains responses to questionnaires that we put out from
time to time on their opinions of JavaCC and related tools. If you would
like to make a contribution to this web page, please send email to
<a href="mailto:javacc-support@metamata.com">javacc-support@metamata.com</a>.
<P>
<HR>
<PRE>
From ward@c2.com Sun Aug 3 15:06:38 1997
2. Please provide a short one paragraph description of the JavaCC
tools as a recommendation to someone who has never seen or used
our tools before.
Mastering a scanner and parser generator gives a programmer mastery
over structured text. For the Java programmer, JavaCC is the generator
to master.
3. How would you classify your use of JavaCC?
serious product development
At the heart of our application is a schema definition that describes
all of the business objects. From this definition, our JavaCC based
translators produce Java stubs, meta data, and other translators.
4. What are your opinions of JavaCC? At least provide a number from
0(horrible) to 10(the greatest) and then preferably write something
also.
9
I would have given JavaCC a 10, but it keeps getting better.
5. What are your opinions of JJTree? At least provide a number from
0(horrible) to 10(the greatest) and then preferably write something
also.
7
I learned a lot about JavaCC by studying JJTree. I chose not to use
JJTree simply because my colleagues were not skilled in compiler
issues. I wanted to avoid the extra layer of indirection and
complexity. I also found it convenient to pass context through
production arguments and return values. By this means I did
substantial translation before constructing my simplified syntax
trees.
JJTree combined with the "Visitor" design pattern would make an
extreamly versitle multi-target translator.
6. How would you rate support for the JavaCC tools. Please compare it
with other tools - both free tools and those that come with formal
support. At least provide a number from 0(horrible) to 10(the
greatest) and then preferably write something also.
8
Frankly, I am astounded that the developers at (Metamata) find the time
and patience to routinely deliver such thoughtfull replies to both
experts and compiler newbies.
I caught the documentation between generations (in March) but still
found it sufficient to answer every question I had. The prose were
concise and direct -- ideal for someone in a hurry. The examples
complemented these prose with useful techniques that I borrowed
freely. I was able to learn JavaCC and JJTree, and produce a working
translator, in less than a week. And the experience was exhilerating.
8. Have you used other similar tools such as PCCTS, JavaCup, Yacc,
etc.?
Yes, Lex and Yacc.
9. (If answer to 8 is YES) How would you compare JavaCC with these
other tools? At least provide a number from 0(very unfavorable) to
10(very favorable) and then preferably write something also.
10
I've found the LL vs LALR arguments rather accademic. Developers who
are really trying to solve problems don't mind writing the productions
the way that works. When problems occur, I find LL easier to think
through. And, the solution to parsing problems usually involves
moving responsibilities between the scanner and the parser, so JavaCC
wins again by integrating these so nicely.
</PRE>
<HR>
<PRE>
From sjb@research.bell-labs.com Mon Jul 28 12:54:03 1997
2. Please provide a short one paragraph description of the JavaCC
tools as a recommendation to someone who has never seen or used
our tools before.
JavaCC takes a grammatical description of a language and produces a
parser and lexical analyzer for that language. The parser is a
top-down parser with a variable amount of lookahead. The lexer
supports lexical states as well as a powerful (and clever) feature for
keeping the white space and comments from the input without having it
interfere with the parse output.
jjtree is a preprocessor for a javacc grammar file which adds code to
produce an AST (abstract syntax tree) as the result of the parser. It
is very powerful and versatile. It can be used to produce simple
trees with almost no work. It can also be configured to produce
customized trees with user supplied classes for each node type. It
can even be used to produce a parser which takes a factory object at
run time to determine the classes to use to represent the various
non-terminals in the grammar.
3. How would you classify your use of JavaCC?
serious product development
I used javacc and jjtree to produce a parser for a "little language we
designed for our project. The parser was designed to support a
pluggable backend and there are now three different backends in use or
under development.
4. What are your opinions of JavaCC? At least provide a number from
0(horrible) to 10(the greatest) and then preferably write something
also.
10
I have found javacc to be a real pleasure to use. I prefer its
top-down parser to the bottom-up parsers produced by tools like yacc
and bison. In addition, the folks developing javacc seem to be
prescient. Each time I started thinking about adding another feature
to my parser (preservation of comments and white space, better error
handling, etc.), they would announce support for it in the next
release.
5. What are your opinions of JJTree? At least provide a number from
0(horrible) to 10(the greatest) and then preferably write something
also.
10
jjtree is a powerful complement to javacc. It allows you to create a
parser which builds an AST (abstract syntax tree) with little more
work than is required to write the parser itself. jjtree is highly
customizable allowing you to specify a class to associate with each
non-terminal of the grammar and generating code which creates an AST
of these objects. If you don't need this generality, jjtree will
create classes for each non-terminal for you or even build the tree
with each node of the same class but identifying information inside.
There is even support for supplying a factory object at parser
execution time so that a single instance of the parser object can
produce ASTs using different classes on different invocations. I used
this feature to produce my parser with a pluggable backend.
6. How would you rate support for the JavaCC tools. Please compare it
with other tools - both free tools and those that come with formal
support. At least provide a number from 0(horrible) to 10(the
greatest) and then preferably write something also.
10
One of the best things about using javacc and jjtree has been the
support. I've never used a product from a large company which has
been supported like this. All of the folks developing javacc and
jjtree actually read AND REPLY to their mail. They respond to bug
reports telling you whether it really is a bug or if you have goofed.
If it is a bug, they almost always commit to fixing it in the next
release (and they do). If its your mistake, they tell you rather than
just ignoring your mail.
They are also very open to suggestions for changes and/or
enhancements. Again, if you make one, they don't ignore you.
They respond and either accept the idea or tell you why they don't
or can't do it. Amazing!!!
8. Have you used other similar tools such as PCCTS, JavaCup, Yacc,
etc.?
I've used yacc.
9. (If answer to 8 is YES) How would you compare JavaCC with these
other tools? At least provide a number from 0(very unfavorable) to
10(very favorable) and then preferably write something also.
10
I prefer the top-down to the bottom-up model. Also, there is nothing
(to the best of my knowledge) like jjtree for yacc.
10. (If answer to 8 is YES) How would you compare JJTree with these
other tools? At least provide a number from 0(very unfavorable) to
10(very favorable) and then preferably write something also.
10
As far as I know, there is nothing eq
评论0