Module: wine Branch: master Commit: ab32b3df4df8adcee75e39b8bcc4e2330aa5b2a1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ab32b3df4df8adcee75e39b8bc...
Author: Huw Davies huw@codeweavers.com Date: Mon Oct 26 12:15:23 2009 +0000
widl: Add support for parsing the annotation attribute.
---
tools/widl/parser.l | 1 + tools/widl/parser.y | 4 +++- tools/widl/widltypes.h | 1 + 3 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/tools/widl/parser.l b/tools/widl/parser.l index 55a73c7..f45b228 100644 --- a/tools/widl/parser.l +++ b/tools/widl/parser.l @@ -279,6 +279,7 @@ static const struct keyword attr_keywords[] = { {"aggregatable", tAGGREGATABLE}, {"allocate", tALLOCATE}, + {"annotation", tANNOTATION}, {"appobject", tAPPOBJECT}, {"async", tASYNC}, {"async_uuid", tASYNCUUID}, diff --git a/tools/widl/parser.y b/tools/widl/parser.y index c2f1abc..b12741c 100644 --- a/tools/widl/parser.y +++ b/tools/widl/parser.y @@ -194,7 +194,7 @@ static statement_list_t *append_statement(statement_list_t *list, statement_t *s %token EQUALITY INEQUALITY %token GREATEREQUAL LESSEQUAL %token LOGICALOR LOGICALAND -%token tAGGREGATABLE tALLOCATE tAPPOBJECT tASYNC tASYNCUUID +%token tAGGREGATABLE tALLOCATE tANNOTATION tAPPOBJECT tASYNC tASYNCUUID %token tAUTOHANDLE tBINDABLE tBOOLEAN tBROADCAST tBYTE tBYTECOUNT %token tCALLAS tCALLBACK tCASE tCDECL tCHAR tCOCLASS tCODE tCOMMSTATUS %token tCONST tCONTEXTHANDLE tCONTEXTHANDLENOSERIALIZE @@ -472,6 +472,7 @@ str_list: aSTRING { $$ = append_str( NULL, $1 ); }
attribute: { $$ = NULL; } | tAGGREGATABLE { $$ = make_attr(ATTR_AGGREGATABLE); } + | tANNOTATION '(' aSTRING ')' { $$ = make_attrp(ATTR_ANNOTATION, $3); } | tAPPOBJECT { $$ = make_attr(ATTR_APPOBJECT); } | tASYNC { $$ = make_attr(ATTR_ASYNC); } | tAUTOHANDLE { $$ = make_attr(ATTR_AUTO_HANDLE); } @@ -1872,6 +1873,7 @@ struct allowed_attr allowed_attr[] = { /* attr { D ACF I Fn ARG T En St Un Fi L DI M C <display name> } */ /* ATTR_AGGREGATABLE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "aggregatable" }, + /* ATTR_ANNOTATION */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "annotation" }, /* ATTR_APPOBJECT */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "appobject" }, /* ATTR_ASYNC */ { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "async" }, /* ATTR_AUTO_HANDLE */ { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "auto_handle" }, diff --git a/tools/widl/widltypes.h b/tools/widl/widltypes.h index c1c07ea..e80c7ed 100644 --- a/tools/widl/widltypes.h +++ b/tools/widl/widltypes.h @@ -72,6 +72,7 @@ typedef struct list statement_list_t; enum attr_type { ATTR_AGGREGATABLE, + ATTR_ANNOTATION, ATTR_APPOBJECT, ATTR_ASYNC, ATTR_AUTO_HANDLE,