Author |
Topic  |
|
Adequat
Tomato Guru
    
182 Posts |
Posted - May 13 2008 : 10:46:44 AM
|
Have a better C++ parser! I don't really need new features, but I wish better suggestions from VA. In others words, even a higher form of IntelliSense...
|
|
feline
Whole Tomato Software
    
United Kingdom
19179 Posts |
Posted - May 13 2008 : 12:41:14 PM
|
Do you have specific situations where VA has a problem parsing C++ code?
There are cases where VA is automatically going to struggle since it is not compiling the code. A good example is #if, #else, #endif blocks. VA does not know which block is active, and sometimes you need to compile the code to find out.
Bug fixes and improvements to our parser are constant, as you can see from the history of changes:
http://www.wholetomato.com/support/history.asp |
zen is the art of being at one with the two'ness |
 |
|
chrispy
New Member

4 Posts |
Posted - Jun 10 2008 : 05:09:14 AM
|
> Do you have specific situations where VA has a problem parsing C++ code?
I have, try the following in a header file:
class Wall { #define _WALL_DATA_MEMBERS_ \public: \ short pen; \ int index;
_WALL_DATA_MEMBERS_
private: class InnerState { private: friend class Wall;
_WALL_DATA_MEMBERS_ } };
The problem is, that members of Wall - which come from a macro - are not recognized. No Alt+G, no syntax highlighting. |
 |
|
feline
Whole Tomato Software
    
United Kingdom
19179 Posts |
Posted - Jun 10 2008 : 08:51:30 AM
|
chrispy I have tried this test. After setting the two registry flags given in this FAQ entry:
http://docs.wholetomato.com?W363
and telling VA to reparse the header file holding this class VA is seeing these two members in the class Wall. Can you try this and see if it helps for you? |
zen is the art of being at one with the two'ness |
 |
|
chrispy
New Member

4 Posts |
Posted - Jun 12 2008 : 09:07:43 AM
|
Thank you, the registry settings solved the problem.
Another minor nuisance working with Alt+G is this. With the code below when you are in Call.cpp you can go to the header and the macro with Alt+G, but when you are in Call.hpp on CallScript, you can only go to the macro, but not the definition in Call.cpp.
Call.cpp --- #include "Call.h" void CallScript (short foo) { int i = foo; return;
}
Call.hpp --- void CallScript (short foo);
Callbacks.hpp --- #define GS_CALLBACK(a) (a) #define CallScript(a) GS_CALLBACK((*gsCallbacks.callScript)(a))
|
 |
|
feline
Whole Tomato Software
    
United Kingdom
19179 Posts |
Posted - Jun 13 2008 : 10:04:57 AM
|
I am seeing the same effect here. Thank you for the clear description.
case=6388
For now you may find that right clicking and using "Go to declaration" or "Go to definition" help, since these IDE commands are independent of VA's alt-g command. |
zen is the art of being at one with the two'ness |
Edited by - feline on Jun 13 2008 10:06:55 AM |
 |
|
chrispy
New Member

4 Posts |
Posted - Jun 16 2008 : 07:21:07 AM
|
Note these registry settings (http://docs.wholetomato.com?W363) cause a lot of parsing errors, which were correct before. Changing registry back and rebuilding databases correct those parsing errors.
|
 |
|
feline
Whole Tomato Software
    
United Kingdom
19179 Posts |
Posted - Jun 16 2008 : 08:57:41 AM
|
Well that answers the "why are those settings not on by default" question that came up in a different thread.
If you can post a code sample showing the problems you were seeing with these registry flags turned on I can have a look at it. |
zen is the art of being at one with the two'ness |
 |
|
|
Topic  |
|