Added optional, defaultvalue and vararg.
authorJacek Caban <jack@itma.pwr.wroc.pl>
Mon, 3 Jan 2005 14:26:17 +0000 (14:26 +0000)
committerAlexandre Julliard <julliard@winehq.org>
Mon, 3 Jan 2005 14:26:17 +0000 (14:26 +0000)
tools/widl/parser.l
tools/widl/parser.y
tools/widl/widltypes.h

index d3c48b9ec771a788797b7651bf49224f288353f9..eadce368177cff87b885833aeb8130d0fbe5a516 100644 (file)
@@ -206,6 +206,7 @@ static struct keyword {
        {"cpp_quote",                   tCPPQUOTE},
 /* ... */
        {"default",                     tDEFAULT},
+       {"defaultvalue",                tDEFAULTVALUE},
 /* ... */
        {"dispinterface",               tDISPINTERFACE},
 /* ... */
@@ -257,6 +258,7 @@ static struct keyword {
        {"odl",                         tODL},
        {"oleautomation",               tOLEAUTOMATION},
 /* ... */
+       {"optional",                    tOPTIONAL},
        {"out",                         tOUT},
 /* ... */
        {"pointer_default",             tPOINTERDEFAULT},
@@ -295,6 +297,7 @@ static struct keyword {
        {"uuid",                        tUUID},
        {"v1_enum",                     tV1ENUM},
 /* ... */
+       {"vararg",                      tVARARG},
        {"version",                     tVERSION},
        {"void",                        tVOID},
        {"wchar_t",                     tWCHAR},
index f8eb10c8b98b06a55b5b7ff98f89c6dd1a48795b..6448d8f520d25a9563adddb54ec5dccb8e660896 100644 (file)
@@ -131,6 +131,7 @@ static type_t std_uhyper = { "MIDL_uhyper" };
 %token tCONST tCONTEXTHANDLE tCONTEXTHANDLENOSERIALIZE
 %token tCONTEXTHANDLESERIALIZE tCONTROL tCPPQUOTE
 %token tDEFAULT
+%token tDEFAULTVALUE
 %token tDISPINTERFACE
 %token tDLLNAME tDOUBLE tDUAL
 %token tENDPOINT
@@ -153,6 +154,7 @@ static type_t std_uhyper = { "MIDL_uhyper" };
 %token tMETHODS
 %token tMODULE
 %token tOBJECT tODL tOLEAUTOMATION
+%token tOPTIONAL
 %token tOUT
 %token tPOINTERDEFAULT
 %token tPROPERTIES
@@ -174,6 +176,7 @@ static type_t std_uhyper = { "MIDL_uhyper" };
 %token tUNSIGNED
 %token tUUID
 %token tV1ENUM
+%token tVARARG
 %token tVERSION
 %token tVOID
 %token tWCHAR tWIREMARSHAL
@@ -341,6 +344,8 @@ attribute:
        | tCONTEXTHANDLENOSERIALIZE             { $$ = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_DONT_SERIALIZE */ }
        | tCONTEXTHANDLESERIALIZE               { $$ = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_SERIALIZE */ }
        | tDEFAULT                              { $$ = make_attr(ATTR_DEFAULT); }
+       | tDEFAULTVALUE '(' expr_const ')'      { $$ = make_attrp(ATTR_DEFAULTVALUE, $3); }
+       | tDEFAULTVALUE '(' aSTRING ')'         { $$ = make_attrp(ATTR_DEFAULTVALUE, $3); }
        | tDLLNAME '(' aSTRING ')'              { $$ = make_attrp(ATTR_DLLNAME, $3); }
        | tDUAL                                 { $$ = make_attr(ATTR_DUAL); }
        | tENDPOINT '(' aSTRING ')'             { $$ = make_attrp(ATTR_ENDPOINT, $3); }
@@ -358,6 +363,7 @@ attribute:
        | tOBJECT                               { $$ = make_attr(ATTR_OBJECT); }
        | tODL                                  { $$ = make_attr(ATTR_ODL); }
        | tOLEAUTOMATION                        { $$ = make_attr(ATTR_OLEAUTOMATION); }
+       | tOPTIONAL                             { $$ = make_attr(ATTR_OPTIONAL); }
        | tOUT                                  { $$ = make_attr(ATTR_OUT); }
        | tPOINTERDEFAULT '(' pointer_type ')'  { $$ = make_attrv(ATTR_POINTERDEFAULT, $3); }
        | tPROPGET                              { $$ = make_attr(ATTR_PROPGET); }
@@ -373,6 +379,7 @@ attribute:
        | tTRANSMITAS '(' type ')'              { $$ = make_attrp(ATTR_TRANSMITAS, type_ref($3)); }
        | tUUID '(' aUUID ')'                   { $$ = make_attrp(ATTR_UUID, $3); }
        | tV1ENUM                               { $$ = make_attr(ATTR_V1ENUM); }
+       | tVARARG                               { $$ = make_attr(ATTR_VARARG); }
        | tVERSION '(' version ')'              { $$ = make_attrv(ATTR_VERSION, $3); }
        | tWIREMARSHAL '(' type ')'             { $$ = make_attrp(ATTR_WIREMARSHAL, type_ref($3)); }
        | pointer_type                          { $$ = make_attrv(ATTR_POINTERTYPE, $1); }
index 433931bdbcbeaf07cd378bed1fe0213e6d89eb81..c6c8ab930126c5f656721afbcfff228d5604403c 100644 (file)
@@ -63,6 +63,7 @@ enum attr_type
     ATTR_CASE,
     ATTR_CONTEXTHANDLE,
     ATTR_DEFAULT,
+    ATTR_DEFAULTVALUE,
     ATTR_DLLNAME,
     ATTR_DUAL,
     ATTR_ENDPOINT,
@@ -80,6 +81,7 @@ enum attr_type
     ATTR_OBJECT,
     ATTR_ODL,
     ATTR_OLEAUTOMATION,
+    ATTR_OPTIONAL,
     ATTR_OUT,
     ATTR_POINTERDEFAULT,
     ATTR_POINTERTYPE,
@@ -96,6 +98,7 @@ enum attr_type
     ATTR_TRANSMITAS,
     ATTR_UUID,
     ATTR_V1ENUM,
+    ATTR_VARARG,
     ATTR_VERSION,
     ATTR_WIREMARSHAL,
     ATTR_DISPINTERFACE