There are serious style problems in this code. In the same program you're mixing:
* C headers.
* C++ headers.
* UNIX headers (for no easily discernible reason).
* C++ types.
* C-style I/O.
* C-style memory allocation.
* C-style struct declarations.
* (Presumably) C-strings when <string> is being included.
* Global data pretending to be OOP objects.
* Global functions pretending to be methods.
This code is in need of heavy refactoring.
which can generate C/C++ code and includes nifty tools to debug your grammar. If that is not an option and you have to maintain/fix this code, then I would:
2. throw valgrind at it: http://valgrind.org/
3. write a ton of test cases, starting from very simple cases
I know you don't want to hear this, but if the code is ugly enough, it may be more time-efficient to rewrite the code.
I was under the assumption that vectors didn't need to be set to a size. I thought they "grew" with each element added. Anyways, I tried vector<stNodeType> stNodeType_list(20); but I get these errors:
main.cpp:279: error: expected identifier before numeric constant
main.cpp:279: error: expected `,' or `...' before numeric constant
main.cpp:279: error: ISO C++ forbids declaration of `parameter' with no type
SO I tried it using my struct: current_scope->stNodeType_list.resize(20); but I get these errors:
main.cpp:289: error: expected constructor, destructor, or type conversion before '->' token
main.cpp:289: error: expected `,' or `;' before '->' token
They do, but you have to actually add them in order for that to happen. Simply using operator[]() doesn't change the size.
The first set of errors is, IINM, because you tried to add the constructor parameter in the middle of the class declaration, which is illegal.
The second set is hard to tell. Did you put that code in the middle of global scope?