diff --git a/reactos/apps/utils/sdkparse/sdkparse.cpp b/reactos/apps/utils/sdkparse/sdkparse.cpp index 213ff9fa1d9..fa1118a47c7 100644 --- a/reactos/apps/utils/sdkparse/sdkparse.cpp +++ b/reactos/apps/utils/sdkparse/sdkparse.cpp @@ -60,8 +60,10 @@ const char* libc_includes[] = "except.h", "limits.h", "stdarg.h", + "stddef.h", "stdlib.h", - "string.h" + "string.h", + "types.h" }; bool is_libc_include ( const string& inc ) diff --git a/reactos/apps/utils/sdkparse/tokenize.cpp b/reactos/apps/utils/sdkparse/tokenize.cpp index 8a8995def39..7e896781146 100644 --- a/reactos/apps/utils/sdkparse/tokenize.cpp +++ b/reactos/apps/utils/sdkparse/tokenize.cpp @@ -165,6 +165,57 @@ void tokenize ( const string& text, vector& tokens ) break; } break; + case '<': + switch ( p[1] ) + { + case '<': + if ( p[2] == '=' ) + tokens.push_back ( string ( p, 3 ) ), p += 3; + else + tokens.push_back ( string ( p, 2 ) ), p += 2; + break; + case '=': + tokens.push_back ( string ( p, 2 ) ); + p += 2; + break; + default: + tokens.push_back ( "<" ); + p++; + break; + } + break; + case '>': + switch ( p[1] ) + { + case '>': + if ( p[2] == '=' ) + tokens.push_back ( string ( p, 3 ) ), p += 3; + else + tokens.push_back ( string ( p, 2 ) ), p += 2; + break; + case '=': + tokens.push_back ( string ( p, 2 ) ); + p += 2; + break; + default: + tokens.push_back ( ">" ); + p++; + break; + } + break; + case '!': + switch ( p[1] ) + { + case '=': + tokens.push_back ( string ( p, 2 ) ); + p += 2; + break; + default: + tokens.push_back ( "!" ); + p++; + break; + } + break; case '=': switch ( p[1] ) {