Well, it might be simpler than you think to switch to the C target (which is a 
lot faster than the 2.7 C++ target) as surely your code is more to do with the 
application than the token access and so on. Even with a C++ runtime, the same 
kind of work would be necessary to move from 2.7 to 3.x. I have moved quite a 
few 2.7 C++ to 3.x C (you don't need to rewrite your C++ unless it is really 
all about using 2.7 objects.



A C++ runtime is probably a good couple of months to get done well. I have not 
had that kind of time lately.



Jim



From: [email protected] [mailto:[email protected]] On 
Behalf Of Robert van der Hulst
Sent: Tuesday, July 13, 2010 3:22 AM
To: [email protected]
Subject: Re: [antlr-dev] Confusing class names in antlr-3.2.jar



Hi Jim,
On Mon, 12 Jul 2010, at 10:28:36 [GMT -0700] (which was 19:28 where I live)
you wrote about: ' Confusing class names in antlr-3.2.jar'

I would also love to have a C++ runtime for Antlr 3.
At this moment we are using Antlr 2.7.6 for our product (a DotNet Compiler ) 
and would love to
switch to Antlr3.
But we have tons of support code that is all in C++ and I would hate to rewrite 
all of that.
We have also considered to move from C++ to C# but I am afraid we will lose too 
much speed when we do so
(and people are compiling really large projects with our product, so speed is 
essential).

How much time would it cost to write a C++ runtime for Antlr 3 do you think ?

--
Robert van der Hulst






Well to be honest with you, if you need documentation to write a target 
runtime, then you probably are not the right person to write it. I will 
definitely write a C++ runtime for v4 but I just have not had the time 
available to write a C++ runtime and as no one seems to be willing to 'pay' for 
the time ;-), then I presume that the demand isn't as high as people think. 
Besides, it isn't difficult to use the C runtime and in terms of performance, 
it will almost always be the case that the C runtime will win.


Interestingly, I used to work in development at McDonnell Douglas - there 
wasn't any good documentation for those operating systems either - you either 
learned everything on the fly or did not work in development. J

Jim

From: [email protected] [mailto:[email protected]] On 
Behalf Of George Shannon
Sent: Sunday, July 11, 2010 8:50 AM
To: Loring Craymer; Ramanand Mandayam; [email protected]; 
[email protected]
Subject: Re: [antlr-dev] Confusing class names in antlr-3.2.jar

It appears that the reason for some confusion is because the documentation is 
not complete in certain key areas, so to speak.

For example, I tried to create a C++ runtime for ANTLR, and got to the point 
where I was ready to test, the final step being creating the StringTemplate for 
the C++ runtime.

This final step, i.e. StringTemplate, was a disaster.  There is hardly any 
documentation available.  I was eventually in the mode of trying to create the 
C++ version using pure trial and error.  I asked Terry about it and the answer 
was that there is not enough demand for documentation to justify the investment 
(that is, no excellent resources like the books he has written for ANTLR).

I assumed StringTemplate documentation was available since I already had 
Terry's books on ANTLR.  I was wrong.

So frankly I dropped the project.

While there is a C runtime available, having a C++ runtime would have been 
awesome for us, and perhaps a few others (one person was very interested), BUT, 
without some serious documentation it ain't gonna happen.

Open source is great, but without serious documentation in ALL the right places 
it is difficult to adopt; "difficult" being equivalent to "expensive" in terms 
of labor and time/lost opportunity.

Please be patient while I digress.

Many years ago I worked as an engineer at what was then McDonnell Douglas (now 
Boeing).  I worked space programs - hypersonic space vehicles, 
single-stage-to-orbit stuff to replace the Space Shuttle.

People in the industry had a saying: "No bucks, no Buck Rogers."

What really makes those birds fly is: funding.

I am suspicious that, in some ways, the same may apply to things like 
documentation (StringTemplate) - no bucks (or free labor), then no 
documentation (and no Buck Rogers).

I make these comments as a small business startup trying to compete with the 
big dogs with deep pockets.

Please note that I'm not criticizing Terry or any of the devoted people working 
on ANTLR and making it an excellent open source product.  They are working hard 
within constraints.

This is just my two cents worth on how the product adds value - to take it to 
the next level may not involve ONLY product development (i.e., new or improved 
functionality).  It may involve simply providing more documentation to help 
make it easy to learn and ADOPT the product in innovative ways.

Best Regards,

George Shannon


  _____

From: [email protected] [mailto:[email protected]] On 
Behalf Of Loring Craymer
Sent: Sunday, July 11, 2010 2:35 AM
To: Ramanand Mandayam; [email protected]
Cc: [email protected]
Subject: Re: [antlr-dev] Confusing class names in antlr-3.2.jar

ANTLR 3 is written in ANTLR 2, so the jar contains both ANTLR 2 under antlr.* 
and ANTLR 3 under org.antlr.*.

--Loring

From: Ramanand Mandayam <[email protected]>
To: [email protected]
Cc: [email protected]
Sent: Sat, July 10, 2010 11:25:22 PM
Subject: [antlr-dev] Confusing class names in antlr-3.2.jar
Hi

I downloaded the latest release (antlr-3.2.jar) of the runtime jar files and 
tried to generate a lexer.
I ran into some errors which I was looking into and found this strange behavior.

If I invoke the main method in the class 'antlr.Tool' as shown in the command 
line below,
    java -cp /usr/local/antlr/antlr-3.2.jar antlr.Tool mylexer.g
the tool assumes that I want to use ANTLR v2.7.7

However, if I invoke teh main method in the class 'org.antlr.Tool' as shown in 
the command line below,
    java -cp /usr/local/antlr/antlr-3.2.jar org.antlr.Tool mylexer.g
the tool assumes that I want to use ANTLR v3.2

This is very confusing and I have not yet  been able to identify any portion of 
the documentation that
describes this difference. Can we perhaps make this distinction clear in either 
the README or some
other equivalent documentation describing the command line?

Cheers

Ramanand






_______________________________________________
antlr-dev mailing list
[email protected]
http://www.antlr.org/mailman/listinfo/antlr-dev

Reply via email to