diff --git a/tools/widl/parser.l b/tools/widl/parser.l index 5639f91ef1d..2e7cd2b14a9 100644 --- a/tools/widl/parser.l +++ b/tools/widl/parser.l @@ -213,6 +213,7 @@ static struct keyword { {"double", tDOUBLE}, {"dual", tDUAL}, /* ... */ + {"endpoint", tENDPOINT}, {"entry", tENTRY}, {"enum", tENUM}, {"error_status_t", tERRORSTATUST}, @@ -282,6 +283,7 @@ static struct keyword { {"switch_is", tSWITCHIS}, {"switch_type", tSWITCHTYPE}, /* ... */ + {"transmit_as", tTRANSMITAS}, {"typedef", tTYPEDEF}, {"union", tUNION}, /* ... */ diff --git a/tools/widl/parser.y b/tools/widl/parser.y index e048e938fc0..1f8f457fb81 100644 --- a/tools/widl/parser.y +++ b/tools/widl/parser.y @@ -132,6 +132,7 @@ static type_t std_uhyper = { "MIDL_uhyper" }; %token tDEFAULT %token tDISPINTERFACE %token tDLLNAME tDOUBLE tDUAL +%token tENDPOINT %token tENTRY tENUM tERRORSTATUST %token tEXTERN %token tFLOAT @@ -164,6 +165,7 @@ static type_t std_uhyper = { "MIDL_uhyper" }; %token tSTDCALL %token tSTRING tSTRUCT %token tSWITCH tSWITCHIS tSWITCHTYPE +%token tTRANSMITAS %token tTYPEDEF %token tUNION %token tUNIQUE @@ -327,6 +329,7 @@ attribute: | tDEFAULT { $$ = make_attr(ATTR_DEFAULT); } | tDLLNAME '(' aSTRING ')' { $$ = make_attrp(ATTR_DLLNAME, $3); } | tDUAL { $$ = make_attr(ATTR_DUAL); } + | tENDPOINT '(' aSTRING ')' { $$ = make_attrp(ATTR_ENDPOINT, $3); } | tENTRY '(' aSTRING ')' { $$ = make_attrp(ATTR_ENTRY_STRING, $3); } | tENTRY '(' expr_const ')' { $$ = make_attrp(ATTR_ENTRY_ORDINAL, $3); } | tHANDLE { $$ = make_attr(ATTR_HANDLE); } @@ -351,6 +354,7 @@ attribute: | tSTRING { $$ = make_attr(ATTR_STRING); } | tSWITCHIS '(' expr ')' { $$ = make_attrp(ATTR_SWITCHIS, $3); } | tSWITCHTYPE '(' type ')' { $$ = make_attrp(ATTR_SWITCHTYPE, type_ref($3)); } + | tTRANSMITAS '(' type ')' { $$ = make_attrp(ATTR_TRANSMITAS, type_ref($3)); } | tUUID '(' aUUID ')' { $$ = make_attrp(ATTR_UUID, $3); } | tV1ENUM { $$ = make_attr(ATTR_V1ENUM); } | tVERSION '(' version ')' { $$ = make_attrv(ATTR_VERSION, $3); } diff --git a/tools/widl/widltypes.h b/tools/widl/widltypes.h index 9d437996870..799d05ba0b6 100644 --- a/tools/widl/widltypes.h +++ b/tools/widl/widltypes.h @@ -65,6 +65,7 @@ enum attr_type ATTR_DEFAULT, ATTR_DLLNAME, ATTR_DUAL, + ATTR_ENDPOINT, ATTR_ENTRY_STRING, ATTR_ENTRY_ORDINAL, ATTR_HANDLE, @@ -90,6 +91,7 @@ enum attr_type ATTR_STRING, ATTR_SWITCHIS, ATTR_SWITCHTYPE, + ATTR_TRANSMITAS, ATTR_UUID, ATTR_V1ENUM, ATTR_VERSION,