pidl: parse idl 'pipe' typedefs, but print out a not supported message for now
[ira/wip.git] / pidl / idl.yp
index 399ff74f41f40328242c6d9f4d398c3ef879372e..dc8e293f765046eca4b3bb89e22b7a1b8e9999b7 100644 (file)
@@ -189,6 +189,8 @@ usertype:
        enum
        |
        bitmap
+       |
+       pipe
 ;
 
 typedecl:
@@ -379,6 +381,17 @@ pointers:
        pointers '*'  { $_[1]+1 }
 ;
 
+pipe:
+       property_list 'pipe' type
+       {{
+               "TYPE" => "PIPE",
+               "PROPERTIES" => $_[1],
+               "DATA" => $_[3],
+               "FILE" => $_[0]->YYData->{FILE},
+               "LINE" => $_[0]->YYData->{LINE},
+       }}
+;
+
 element_list1:
        #empty
        { [] }
@@ -603,7 +616,7 @@ again:
                        if ($1 =~
                            /^(coclass|interface|import|importlib
                              |include|cpp_quote|typedef
-                             |union|struct|enum|bitmap
+                             |union|struct|enum|bitmap|pipe
                              |void|const|unsigned|signed)$/x) {
                                return $1;
                        }