[antlr-interest] Beginner need some help

Alexander Landa infal at web.de
Tue Aug 23 18:07:41 PDT 2005


 Dear Mr. Christopher Schultz,
 
 many thanks for your answer.
 
 > This is a BIG BIG task, and very difficult. ANTLR can help you parse the
 > source code, but you're going to have to write a very complicated
 > translator
 
 Maybe I'm completely wrong, but I think about ANTLR as a tool
 to generate translators from a grammars. C++ grammar is also
 present on ANTLR page or "John's PCCTS-based C++ Parser Page".
 So maybe it is only necessary to define some lexical rules with actions,
 that means only expand a given grammar or generated classes with
 user-defined actions. I don't know.
 
 > which knows what type variables are (i.e. for overloading)
 > and all kinds of stuff like that.
 
 
 In one newsgroup message I can read :
 "However, I have built a C++ scarfer for somebody that was 
 able to pick out class members and func defs relatively easily.  There's 
 no short cut for full C++ unfortunately.  Soon the World will fall back on another 
 language (with a sigh) or to a subset (with a snicker). " wroten by Terence J. Parr.
 But no future references to this 
 Maybe You know what this means? This can be very helpfully.
 
 > Why don't you just use CLR's ability to execute compiled C++ code
 > directly? I'm not sure of Mono compiles C++, but the MS compiler
 > certainly does.
 
 No, not really, It is possible to generate "unchecked" (old common) C++ library
 an call functions to that library. But this have for my purposes to much disadvantages.
 1. It is only "ok" to call relative simple functions with simple data
 2. for complex types we must do complex marshaling (which very slow!)
 3. for complex types we must carefully define appropriate types in C# and maybe define proxy-functions in C++ library
 4. for point 3 we must also write a INTEROP "calling" Interface (this is like my first question) for each exported C++ function.
 At this point it can be very complicated to do this marshaling at all, if we use something like std::list<T> (it is much likely generic List<T>) in C# and can be very time and memory expensive.
 5. we have all the disadvantages of C# combined with disadvantages of C++ (i.e. insecure pointers)
 6. no callback possibilities (events, actions) from C++ to C# or I don't know how to do it, but in this case it is necessary to rewrite C++
 library at all
 7. no reasonable debugging possibilities
 8. and of course I wish continue developing of the library later without having of C# and C++ mixing.
 
 I think, it is at a starting point a very big task, but can save a lot of time later.
 
 
 Best regards,
 Alexander Landa
 


_________________________________________________________________________
Mit der Gruppen-SMS von WEB.DE FreeMail können Sie eine SMS an alle 
Freunde gleichzeitig schicken: http://freemail.web.de/features/?mc=021179





More information about the antlr-interest mailing list