(typespec): Made <SomeProtocol> equivalent to (id <SomeProtocol>).
authorRichard Kenner <kenner@gcc.gnu.org>
Sat, 20 Apr 1996 23:55:24 +0000 (19:55 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Sat, 20 Apr 1996 23:55:24 +0000 (19:55 -0400)
(non_empty_protocolrefs): New nonterminal.

From-SVN: r11858

gcc/c-parse.in

index 41fb8aa..a5223cd 100644 (file)
@@ -224,7 +224,8 @@ ifobjc
 %type <ttype> keywordexpr keywordarglist keywordarg
 %type <ttype> myparms myparm optparmlist reservedwords objcselectorexpr
 %type <ttype> selectorarg keywordnamelist keywordname objcencodeexpr
-%type <ttype> objc_string protocolrefs identifier_list objcprotocolexpr
+%type <ttype> objc_string non_empty_protocolrefs protocolrefs identifier_list objcprotocolexpr
+
 %type <ttype> CLASSNAME OBJC_STRING OBJECTNAME
 end ifobjc
 \f
@@ -1041,6 +1042,11 @@ ifobjc
                { $$ = get_static_reference ($1, $2); }
        | OBJECTNAME protocolrefs
                { $$ = get_object_reference ($2); }
+
+/* Make "<SomeProtocol>" equivalent to "id <SomeProtocol>"
+   - nisse@lysator.liu.se */
+        | non_empty_protocolrefs
+                { $$ = get_object_reference ($1); }
 end ifobjc
        | TYPEOF '(' expr ')'
                { $$ = TREE_TYPE ($3); }
@@ -2440,7 +2446,11 @@ protocolrefs:
                {
                  $$ = NULL_TREE;
                }
-       | ARITHCOMPARE identifier_list ARITHCOMPARE
+       | non_empty_protocolrefs
+       ;
+
+non_empty_protocolrefs:
+         ARITHCOMPARE identifier_list ARITHCOMPARE
                {
                  if ($1 == LT_EXPR && $3 == GT_EXPR)
                    $$ = $2;