>>> Andrew Hyatt <[EMAIL PROTECTED]> seems to think that: [ ... ] >I would be very interested if someone who really knew semantic well >could tell us if it could do the kind of parsing necessary for these >more advanced features. It seems to have more then the advertised >API, since you can get the speedbar to know about types of local >variables, while the advertised API does not go into within-method >information.
Hi, Semantic 1.4 local variable parsing depends on programmers having some mysterious need to declare all local variables before writing any code. As such, it can use the regular tagging parser within a method body scope and do a reasonable job. That particular function is advertised in the manual under context parsing, not under the general tagging information. As Paul mentioned, Semantic 2.0 includes David Ponce's full bison port, and a Java parser that can parse an entire Java file, including method code, faster than the Semantic 1.4 parser could tag the same file. The new incremental parser handles about 90% of common edits without a full reparse. My long term goals include indentation and font lock engines, underlining bad syntax, and all that good stuff. My long term goals could probably keep several people busy for several decades. When I wrote semantic 1.0 I was learning what a parser is as I wrote it, so the road to semantic 2.0 includes a massive renaming campaign to give all the nouns the correct names and reduce confusion. I wrote the thing and it confused me. Now it does not. Anyway, all that's done. The parser API is an elegant thing to behold. The new tag searching and completion engines bring joy to my heart. The parser construction process will bring new languages into the fold. All the wacky new minor modes will lure the young-uns to the glory of Emacs. Well, something like that. Paul gave me a little too much credit perhaps. Your other question was "when?". Here is the inside scoop on Semantic 2.0. Scoop 1: Semantic, EIEIO, Speedbar, EDE, and Corge will all be shipped together as one package called "CEDET 1.0" and have one master Makefile, but each will maintain their own version number and identity, and can be installed one chunk at a time. It cuts down on maintenance since they are all co-dependent. Version number dependencies will be enfoced with a new "inversion" package. Scoop 2: We've been trying to bring the Doc to be at least vaguely relevant to what's in CVS, and get the build harness working to desired parameters (a bit of EDE development there.) That's it before a CEDET 1.0 beta1 is built and published. Note 1: Most major API functions had their names changed. We devised a nice obsoletion mechanism that lets ECB and the JDE work fine with the new version. They just throw lots of warnings during byte-compilation time. (At least I think the JDE works. Isn't that so David?) Note 2: This beta version of semantic will have no indentation or font lock magic in it. The substructure is there, but little attention has been placed on it yet. Note 3: I owe David Ponce a huge debt of gratitude for the amazing things he has done to bring Semantic 2.0 to where it is today. I am also indebted to Richard Kim who has been instrumental to much of the new documentation, and for writing the python parser. Have fun Eric -- Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED] Home: http://www.ludlam.net Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net GNU: www.gnu.org