[antlr-interest] Why no links to ANTLR 3.0 on
www.antlr.org??
Gerald B. Rosenberg
gbr at newtechlaw.com
Sat Jun 4 01:47:31 PDT 2005
At 12:14 PM 6/3/2005, Terence Parr wrote:
>>I am over the beginner level know (I think and hope), but getting
>>there
>>was very time-consuming: And, isn't a tool like this about saving
>>time?
>
>Why was it time consuming to get through the beginning level? I'll
>need this info when I write the book. Is it because language tools
>are just different from normal programming or does the tool suck?
>Does the intro doc suck?
I will try to take a constructive stab at this. Given that the problem
space and tool are respectively very complex and capable of very complex
operation, the documentation is just too eager. It presents something
basic and then jets off mixing a bunch of fairly complex potential uses
together which makes following and understanding any one very difficult.
For example, under http://www.antlr.org/doc/trees.html#_bb4, there is brief
introduction to marking lexer tokens as roots. Ok. Then some stuff about
building trees. Nothing there about parser tokens as roots. I think that
is what I need for my problem -- I need to understand better how ANTLR
wants to mark and construct parser trees. So, is marking a new parser
token as a root even possible? Well, keep looking down. Token
translation. Ok. Token factories. Ok, I guess. Heterogeneous ASTs. Ok,
real advanced. Fairly certain that is not applicable to my initial needs.
Finally! An first example ("An Expression Tree Example"). Maybe that will
walk me through enough to understand how ANTLR wants me to solve my problem.
Problem statement: a simple value accumulator implemented using a simple
tree. Ok, not really close to my case I think, but sounds like it has a
similar level of complexity so I should be able to learn bunches from it.
OH, NO: Third paragraph, the "formal statement of the explanation of the
solution to follow":
"The AST operator nodes must combine the results of computing the value of
their two subtrees. They must perform a depth-first walk of the tree below
them. For fun and to make the operations more obvious, the operator nodes
define left() and right() instead, making them appear even more different
than the normal child-sibling tree representation. Consequently, these
expression trees can be treated as both homogeneous child-sibling trees and
heterogeneous expression trees."
??? Fun and obvious??? Make them appear more different??? A straight
first example? No. More accurately an advanced transvestite example.
There are so many issues working in this example, I challenge anyone not
already an expert to readily tell what design features pertain to what --
what is there for fun and what select parts are essential for the
particular purposes relevant to a relative new-comer's basic issues of
understanding. The question is, would someone not capable of authoring
this example in the first place, now understand matters well enough to go
back and author the simple, straight-forward version?
Now, don't get me wrong: I am not advocating plodding
documentation. Enthusiasm is a great tool for maintaining interest in the
narrative, particularly on paper. There just needs to be something of a
middle ground (at least for us middle of the road programmers).
HTHs,
Gerald
----
Gerald B. Rosenberg
Certiv Analytics
www.certiv.net
More information about the antlr-interest
mailing list