merge in Winehq changes to reduce noise
[reactos.git] / reactos / tools / widl / parser.y
index ff97fe6..4d27f2f 100644 (file)
 #include "utils.h"
 #include "parser.h"
 #include "header.h"
-#include "proxy.h"
 #include "typelib.h"
-#include "client.h"
-#include "server.h"
 
 #if defined(YYBYACC)
        /* Berkeley yacc (byacc) doesn't seem to know about these */
@@ -172,6 +169,7 @@ static type_t std_uhyper = { "MIDL_uhyper" };
 %token tSHORT
 %token tSIGNED
 %token tSIZEIS tSIZEOF
+%token tSMALL
 %token tSOURCE
 %token tSTDCALL
 %token tSTRING tSTRUCT
@@ -553,7 +551,7 @@ base_type: tBYTE                            { $$ = make_type(RPC_FC_BYTE, NULL); }
        | tSIGNED int_std                       { $$ = $2; $$->sign = 1; }
        | tUNSIGNED int_std                     { $$ = $2; $$->sign = -1;
                                                  switch ($$->type) {
-                                                 case RPC_FC_CHAR:  $$->type = RPC_FC_BYTE; $$->sign = 0; break;
+                                                 case RPC_FC_CHAR: break;
                                                  case RPC_FC_SMALL: $$->type = RPC_FC_USMALL; break;
                                                  case RPC_FC_SHORT: $$->type = RPC_FC_USHORT; break;
                                                  case RPC_FC_LONG:  $$->type = RPC_FC_ULONG;  break;
@@ -565,9 +563,9 @@ base_type: tBYTE                            { $$ = make_type(RPC_FC_BYTE, NULL); }
                                                }
        | tFLOAT                                { $$ = make_type(RPC_FC_FLOAT, NULL); }
        | tDOUBLE                               { $$ = make_type(RPC_FC_DOUBLE, NULL); }
-       | tBOOLEAN                              { $$ = make_type(RPC_FC_BYTE, &std_bool); /* ? */ }
+       | tBOOLEAN                              { $$ = make_type(RPC_FC_SMALL, &std_bool); }
        | tERRORSTATUST                         { $$ = make_type(RPC_FC_ERROR_STATUS_T, NULL); }
-       | tHANDLET                              { $$ = make_type(RPC_FC_BIND_PRIMITIVE, NULL); /* ? */ }
+       | tHANDLET                              { $$ = make_type(RPC_FC_IGNORE, NULL); }
        ;
 
 m_int:
@@ -575,6 +573,7 @@ m_int:
        ;
 
 int_std:  tINT                                 { $$ = make_type(RPC_FC_LONG, &std_int); } /* win32 only */
+       | tSMALL m_int                          { $$ = make_type(RPC_FC_SMALL, NULL); }
        | tSHORT m_int                          { $$ = make_type(RPC_FC_SHORT, NULL); }
        | tLONG m_int                           { $$ = make_type(RPC_FC_LONG, NULL); }
        | tHYPER m_int                          { $$ = make_type(RPC_FC_HYPER, NULL); }