CodeStore info

Other Questions

Hi! I'm very interested in the CodeStore component, for using it in another free/cross-platform IDE for CodeCompletion/ClassBrowser/etc. 

I've been looking for good C++ parsers, and the best I could find were ANTLR (C++ gramar) and Elsa (based on Elkhound). But Elsa currently doesn't works with GCC MinGW32, so the only option is ANTLR.

I would like to see if I could use CodeStore directly, instead of dealing with ANTLR+ucpp (or boost::wave).

 

So, my main questions are:

-What is the CVS branch/trunk which I should use?

-What is the state of completeness of CodeStore right now? 

-The code of CodeStore will be clean C++/STL (not needing any external dependency or library)?

-You'll be using std::string or an Unicode capable string class?

-What are the exact changes you've made to ANTLR and ucpp?

-Do you plan to make more changes in the future to ANTLR/ucpp?

-Are you planning to use the default AST generated by ANTLR or are you writting a custom AST?

Well, that's for the CodeStore specific part.

 

Now, I will list the features of the parser I need, so please tell me if they are according to what you will be doing with CodeStore (take this as my guidelines/personal requeriments only):

-Parsing MUST be done in a separate thread.
-Several threads MAY be used.
-The parser thread(s) MUST have lower priority than the main thread.
-The parser MUST NOT do insane things from the main thread. Events MUST be handed to the worker thread and MUST be handled there.  

- It SHOULD be designed around the class browser: Classes, Functions, Variables, Enums, Preprocessor.

-The code completion plugin MUST hold an in-memory structure (maps, arrays, whatever is necessary) to contain all the tokens. For example, a class would include member variables, methods, and the methods would include the local variables.

-This structure MUST be independent from the GUI. It MUST be a container. All code MUST be done by another class, but it MAY include saving, reading / writing from cache, and necessary functions. 

-There SHOULD be a structure per development language in the project. It's no use mixing C++ and Perl tokens, it would only create confusion.

-The codecompletion plugin MAY have modules for different languages, these modules would consist of thread-safe functions to add the tokens into the main structure.

 

I'm asking these questions to know if CodeStore will fit in the IDE, or I'll have to write a CodeStore-like in my own.

If the former, I'll hope we can cooperate to achieve a great parser! :)

BTW, the IDE is called Code::Blocks and it's about to see the 1.0 final version in a few months.

Thank you very much!