aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1996-04-20 19:55:24 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1996-04-20 19:55:24 -0400
commit957a1c32939d1e25e76c87ad5323f05be825bc11 (patch)
tree198a96479afb96182b45b3be127c4890eba9ec25
parent5720c7e75b4c01567bf0b0fee33ea6663c4bb44c (diff)
downloadgcc-957a1c32939d1e25e76c87ad5323f05be825bc11.zip
gcc-957a1c32939d1e25e76c87ad5323f05be825bc11.tar.gz
gcc-957a1c32939d1e25e76c87ad5323f05be825bc11.tar.bz2
(typespec): Made <SomeProtocol> equivalent to (id <SomeProtocol>).
(non_empty_protocolrefs): New nonterminal. From-SVN: r11858
-rw-r--r--gcc/c-parse.in14
1 files changed, 12 insertions, 2 deletions
diff --git a/gcc/c-parse.in b/gcc/c-parse.in
index 41fb8aa..a5223cd 100644
--- a/gcc/c-parse.in
+++ b/gcc/c-parse.in
@@ -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
@@ -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;