--------------M-a-i-n--L-o-g--------------
000001. Parse() : Parsing ''
000002. InitTokenizer() : m_Filename='test.h', m_FileSize=226.
000003. Init() : m_Filename='test.h'
000004. DoParse() : Loop:m_Str='', token='typedef'
000005. HandleTypedef() : Typedef start
000006. HandleTypedef() : token=struct, peek={
000007. HandleTypedef() : Before HandleClass m_LastUnnamedTokenName=''
000008. HandleClass() : Found class '{'
000009. DoAddToken() : Created token='UnnamedStruct0', file_idx=1, line=1
000010. GetActualTokenType() : Searching within m_Str=''
000011. GetActualTokenType() : Compensated m_Str=''
000012. GetActualTokenType() : Returning ''
000013. DoAddToken() : Prepending ''
000014. DoAddToken() : Added/updated token 'UnnamedStruct0' (0), type '', actual ''. Parent is (-1)
000015. DoParse() : Loop:m_Str='', token='int'
000016. wxString Tokenizer::ReadBlock(const wxChar&) : line=3, CurrentChar='(', PreviousChar=' ', NextChar='*', leftBrace(()
000017. ReadBlock(): (END) We are now at line 3, CurrentChar='(', PreviousChar=')', NextChar=')'
000018. DoParse() : Loop:m_Str='int', token='(*Load)'
000019. wxString Tokenizer::ReadBlock(const wxChar&) : line=3, CurrentChar='(', PreviousChar=')', NextChar=')', leftBrace(()
000020. ReadBlock(): (END) We are now at line 3, CurrentChar=';', PreviousChar=')', NextChar=' '
000021. HandleFunction() : Adding function '(*Load)': m_Str='int'
000022. HandleFunction() : name='(*Load)', args='()', peek=';'
000023. HandleFunction() : !(Ctor/Dtor) '(*Load)', m_Str='int', localParent='<none>'
000024. HandleFunction() : Adding function '(*Load)', ': m_Str='int', enc_ns='nil'.
000025. HandleFunction() : Add token name='(*Load)', args='()', return type='int'
000026. GetStrippedArgs() : args='()'.
000027. GetStrippedArgs() : stripped_args='()'.
000028. DoAddToken() : Created token='(*Load)', file_idx=1, line=3
000029. GetActualTokenType() : Searching within m_Str='int'
000030. GetActualTokenType() : Compensated m_Str='int'
000031. GetActualTokenType() : Found 'int'
000032. DoAddToken() : Prepending ''
000033. DoAddToken() : Added/updated token '(*Load)' (1), type 'int', actual 'int'. Parent is UnnamedStruct0 (0)
000034. DoParse() : Loop:m_Str='', token=';'
000035. DoParse() : Loop:m_Str='', token='void'
000036. wxString Tokenizer::ReadBlock(const wxChar&) : line=4, CurrentChar='(', PreviousChar=' ', NextChar='*', leftBrace(()
000037. ReadBlock(): (END) We are now at line 4, CurrentChar='(', PreviousChar=')', NextChar=')'
000038. DoParse() : Loop:m_Str='void', token='(*Unload)'
000039. wxString Tokenizer::ReadBlock(const wxChar&) : line=4, CurrentChar='(', PreviousChar=')', NextChar=')', leftBrace(()
000040. ReadBlock(): (END) We are now at line 4, CurrentChar=';', PreviousChar=')', NextChar=' '
000041. HandleFunction() : Adding function '(*Unload)': m_Str='void'
000042. HandleFunction() : name='(*Unload)', args='()', peek=';'
000043. HandleFunction() : !(Ctor/Dtor) '(*Unload)', m_Str='void', localParent='<none>'
000044. HandleFunction() : Adding function '(*Unload)', ': m_Str='void', enc_ns='nil'.
000045. HandleFunction() : Add token name='(*Unload)', args='()', return type='void'
000046. GetStrippedArgs() : args='()'.
000047. GetStrippedArgs() : stripped_args='()'.
000048. DoAddToken() : Created token='(*Unload)', file_idx=1, line=4
000049. GetActualTokenType() : Searching within m_Str='void'
000050. GetActualTokenType() : Compensated m_Str='void'
000051. GetActualTokenType() : Found 'void'
000052. DoAddToken() : Prepending ''
000053. DoAddToken() : Added/updated token '(*Unload)' (2), type 'void', actual 'void'. Parent is UnnamedStruct0 (0)
000054. DoParse() : Loop:m_Str='', token=';'
000055. DoParse() : Loop:m_Str='', token='void'
000056. wxString Tokenizer::ReadBlock(const wxChar&) : line=5, CurrentChar='(', PreviousChar=' ', NextChar='*', leftBrace(()
000057. ReadBlock(): (END) We are now at line 5, CurrentChar='(', PreviousChar=')', NextChar=')'
000058. DoParse() : Loop:m_Str='void', token='(*Manage)'
000059. wxString Tokenizer::ReadBlock(const wxChar&) : line=5, CurrentChar='(', PreviousChar=')', NextChar=')', leftBrace(()
000060. ReadBlock(): (END) We are now at line 5, CurrentChar=';', PreviousChar=')', NextChar=' '
000061. HandleFunction() : Adding function '(*Manage)': m_Str='void'
000062. HandleFunction() : name='(*Manage)', args='()', peek=';'
000063. HandleFunction() : !(Ctor/Dtor) '(*Manage)', m_Str='void', localParent='<none>'
000064. HandleFunction() : Adding function '(*Manage)', ': m_Str='void', enc_ns='nil'.
000065. HandleFunction() : Add token name='(*Manage)', args='()', return type='void'
000066. GetStrippedArgs() : args='()'.
000067. GetStrippedArgs() : stripped_args='()'.
000068. DoAddToken() : Created token='(*Manage)', file_idx=1, line=5
000069. GetActualTokenType() : Searching within m_Str='void'
000070. GetActualTokenType() : Compensated m_Str='void'
000071. GetActualTokenType() : Found 'void'
000072. DoAddToken() : Prepending ''
000073. DoAddToken() : Added/updated token '(*Manage)' (3), type 'void', actual 'void'. Parent is UnnamedStruct0 (0)
000074. DoParse() : Loop:m_Str='', token=';'
000075. DoParse() : Loop:m_Str='', token='MODULE_DATA'
000076. DoParse() : Loop:m_Str='MODULE_DATA ', token='*'
000077. DoParse() : Loop:m_Str='MODULE_DATA ', token='Data'
000078. DoAddToken() : Created token='Data', file_idx=1, line=6
000079. GetActualTokenType() : Searching within m_Str='MODULE_DATA'
000080. GetActualTokenType() : Compensated m_Str='MODULE_DATA'
000081. GetActualTokenType() : Found 'MODULE_DATA'
000082. DoAddToken() : Prepending ''
000083. DoAddToken() : Added/updated token 'Data' (4), type 'MODULE_DATA*', actual 'MODULE_DATA'. Parent is UnnamedStruct0 (0)
000084. DoParse() : Loop:m_Str='MODULE_DATA', token=';'
000085. DoParse() : Loop:m_Str='', token='}'
000086. ReadClsNames() : Adding variable 'MODULE' as '' to '<no-parent>'
000087. DoAddToken() : Created token='MODULE', file_idx=1, line=7
000088. GetActualTokenType() : Searching within m_Str='UnnamedStruct0'
000089. GetActualTokenType() : Compensated m_Str='UnnamedStruct0'
000090. GetActualTokenType() : Found 'UnnamedStruct0'
000091. DoAddToken() : Prepending ''
000092. DoAddToken() : Added/updated token 'MODULE' (5), type 'UnnamedStruct0', actual 'UnnamedStruct0'. Parent is (-1)
000093. HandleTypedef() : After HandleClass m_LastUnnamedTokenName='UnnamedStruct0'
000094. HandleTypedef() : Pushing component='UnnamedStruct0', typedef args=''
000095. + 'UnnamedStruct0'
000096. HandleTypedef() : token=;, peek=
000097. HandleTypedef() : Typedef done
--------------T-r-e-e--L-o-g--------------
000098. +class UnnamedStruct0 {...} [1,1]
000099. (*Load)() [3,0]
000100. (*Unload)() [4,0]
000101. (*Manage)() [5,0]
000102. MODULE_DATA* UnnamedStruct0::Data [6,0]
000103. typedef UnnamedStruct0 MODULE [7,0]
--------------L-i-s-t--L-o-g--------------
000104. class class UnnamedStruct0 {...} [1,1]
000105. function int UnnamedStruct0::(*Load)() [3,0]
000106. function void UnnamedStruct0::(*Unload)() [4,0]
000107. function void UnnamedStruct0::(*Manage)() [5,0]
000108. variable MODULE_DATA* UnnamedStruct0::Data [6,0]
000109. typedef typedef UnnamedStruct0 MODULE [7,0]
So, you can see the List Log here. It is correct now!!!
I will do more test and publish the patch here later.