Original Post
Given the current state of the code-completion/class-browsing (what I call Visual Assist) plugin for Code::Blocks -- very buggy -- and the author's lack of time available to update it, I decided to look into what it would take for me to either fix it up or create my own. I started getting acquainted with the current codebase for the plugin, and found that it's basically a homebrewn parser sewn into the plugin interface. Not the prettiest code, either -- meaning it's not the easiest to familiarize myself with. All of a sudden it's looking, if not easier, at least a lot more fun to go ahead and write my own -- especially for the learning experience. This, of course, led me down a fascinating path into the land of lexing and parsing and whatnot, which I haven't had much previous experience with. I went ahead and read up on Boost::Spirit and have spent most of the day happily messing around creating some sort of EBNF grammar for C and C++ (and I could probably end up spending weeks getting a working prototype of it, let alone filling in the gaps -- and then there's handling the output). My questions to the GameDev community, then, are these: How would you go about parsing C++ code with the end result of full-featured visual assist functionality in mind (think Visual Assist X from Whole Tomato) -- what tools would you use? Have you done anything like this before? Is there already a standard(-ish) library out there that will extract all the information I need for me? I looked at exuberant ctags and it was very promising, but didn't seem to extract all the scoping information I'd need. What other thoughts and suggestions would you have in the general area of providing visual assist functionality? Thanks, Twilight Dragon