 |
|
 |
michael
now that i have excluded the macros it works great.
my next request would be to have not only 'parent/child' relationships but also 'uses/used by' relationships.
what do you think?
|
|
|
|
 |
|
 |
Hello
I've thought about it.
I can understand (in most cases) type of member variable of a class(struct). And make 'contains/contained by' relationship.
I tried to make much better parser for c++ grammar, but I've stoped this project because I am busy. I've started it just to parse functions body and manage defines, typedefs, namespaces and so on. If it would be done, I'll make not only 'uses/used by' but many other relationships.
Currently I am working at adding some more "watch variables during debug" capabilities. May be next step will be 'contains/contained by' relationships.
But 'uses/used by' - it is a distant future.
I am still looking for good ideas/features.
Mike
|
|
|
|
 |
|
 |
i write alot of mfc dll code and have many classes declared similarly to the following:
class _UICOMMON_EXP_ CTimeRuler : public CRuler
{
....
};
unfortunately the tag list does not handle this well and i end up with a lot of classes called _UICOMMON_EXP_
if there is an easy way to fix this (i haven't looked at the source code yet) then i anticipate it being a very handy tool
|
|
|
|
 |
|
 |
I am getting this question so often...
I understand that reading of help file is not so interesting as using friendly interface
There is no obvious (can you suggest one?) way to do this task.
But there are two easy ways to do it:
1. Use popup menu in Tags Managers on any item "_UICOMMON_EXP_" and select "Exclude"->
"Before class" (as described in help file in topic)
than rebuild information (command "Update Tags Info").
2. Or open Options->Exclude tags, press , type _UICOMMON_EXP_ and check "before class" (as described in help file in <Options> topic). than rebuld information.
|
|
|
|
 |
|
 |
mike
thanks. this solution is fine.
nevertheless, an automated solution might still be possible - feel free to correct me if i get anything wrong
consider the following notional class definition:
class/struct EXPORT_MACRO CClass [: public CBaseClass]
if a ':' is present the class name immediately preceeds it else the class name is the last item.
therefore any items between class/struct and the class name can be considered as macros.
now i'm basing this on experience rather than a clear knowledge of the c++ specification. however, it may still be a closer (better?) approximation than the current solution.
if i get some time i may well have a go myself, in which case i would appreciate some guidance on which classes i should focus on.
DanG
|
|
|
|
 |
|
 |
Hello DanG.
Your idea is good. I haven't think in this direction. And I'll try to describe, why.
I can write regular expression for class declaration and than apply your algorithm. But real parsers push in stack all tags they found and compare types of these tags with our grammar templates. The problem to understand type of a tag from its name. So we need to walk up and down our stack. And sometimes look "forward" for some steps (not all engines allow it). Engine I am using allow stack with fixed depth = 2. I am afraid I can't gather all words after keywords as class, struct and so on. I am not sure that you understand my muddled explanations but I hope understand main problem.
2 little examples:
I. templates:
class namespaceName::className1;
class className1::className2;
when we found "class A::B;" - A - is it class or namespace?
II. templates:
1. if (expression) expression1;
2. if (expression) expression1; else expression2;
when we find string "if (true) foo();" that coresponds template(1) should we add found statment or should we know about all other templates add found template(2) that have template(1) inside and continue parsing. If "else" not found we should return back for some steps.
Moreover my algorithm just remove known macros from scan process and we can have such macros anywhere in text. Parser just skip it.
I'll repeat again - your suggestion looks like easy to implement but regrettably it is not so.
Nevertheless, thank you for you attention.
Mike.
|
|
|
|
 |
|
 |
thanks for the explanation.
|
|
|
|
 |
|
 |
I cannot compile, there are several files missing, at least:
- a complete project named BCL with unknown content
- a file named "save.bmp" - ok, I could handle this
Anybody out there who has a working source code version?
The .ru website is down for weeks now :(
|
|
|
|
 |
|
 |
Sorry, I've tried to minimize size of archive .
BCL project - is a new subproject and currently doesn't affect add-in.
New source files available at
http://zmanagers.chat.ru/
Mirror site (located in USA)
http://zmanagers.virtualave.net/
ZMike
|
|
|
|
 |
|
 |
visit http://zmanagers.chat.ru/ for new versio
|
|
|
|
 |
|
 |
Please note that your website is alternately *very* slow or completely inaccessible most (all?) of the time.
|
|
|
|
 |
|
|
 |